def configure_logging(cfg, spec): """ Configure logging using properties file :type cfg: :class:`configparser.SafeConfigParser` :param cfg: Provider configuration :type spec: :class:`str` :param spec: Provider configuration file name. Need this for Python versions older than 3.4 """ if config.Sections.LOGGERS in cfg.sections(): major, minor, _, _, _ = sys.version_info if major == 3 and minor >= 4: logging.config.fileConfig(cfg, disable_existing_loggers=False) else: # SafeConfigParser instance is not accepted in fileConfig in # versions older than 3.4 and hence need to pass filename logging.config.fileConfig(spec, disable_existing_loggers=False) else: configure_default_logging = True if config.Sections.LOGGING in cfg.sections(): default = cfg.get(config.Sections.LOGGING, 'default') if default.lower() == 'false': configure_default_logging = False if configure_default_logging: handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.INFO) # TODO Add opId to default format once we know it is working well formatter = logging.Formatter( '%(asctime)s %(levelname)-8s %(name)-15s %(message)s') handler.setFormatter(formatter) # Configure the root logger root_logger = logging.getLogger() root_logger.setLevel(logging.INFO) root_logger.addHandler(handler) global logger logger = get_vapi_logger('vmware.vapi.server.vapid')
""" Privilege Validator interface """ __author__ = 'VMware, Inc.' __copyright__ = 'Copyright 2018 VMware, Inc. All rights reserved. -- VMware Confidential' # pylint: disable=line-too-long from vmware.vapi.lib.log import get_vapi_logger # Configure logging logger = get_vapi_logger(__name__) class PrivilegeValidator(object): """ Interface for Privilege Validation """ def validate(self, user_identity, required_privileges): """ Validate the privileges required for a given user identity """ raise NotImplementedError def __hash__(self): return str(self).__hash__() # Privilege Validator instance _privilege_validator = None