def __load_module(self, alias): """ Load module class by alias :param alias: str :return: class """ if alias in self.modules: return self.modules[alias] mod_conf = self.config.get('modules') if alias not in mod_conf: self.log.info("Possible module aliases: %s", [str(x) for x in sorted(mod_conf.keys())]) raise ValueError("Module alias '%s' not found in module settings" % alias) settings = ensure_is_dict(mod_conf, alias, "class") acopy = copy.deepcopy(settings) BetterDict.traverse(acopy, Configuration.masq_sensitive) self.log.debug("Module config: %s %s", alias, acopy) clsname = settings.get('class', None) if clsname is None: raise ValueError("Class name not found in module settings: %s" % settings) try: self.modules[alias] = load_class(clsname) if not issubclass(self.modules[alias], EngineModule): raise TypeError("Module class does not inherit from EngineModule: %s" % clsname) except BaseException: self.log.debug("Failed to load class %s: %s", clsname, traceback.format_exc()) raise ValueError("Cannot load module '%s' with class %s" % (alias, clsname)) return self.modules[alias]
def __init__(self, crit_cfg_list, feeder): super(CriteriaProcessor, self).__init__() self.criteria = [] self.last_datapoint = None self.log = logging.getLogger(__name__) if isinstance(crit_cfg_list, dict): crit_iter = iteritems(crit_cfg_list) else: crit_iter = enumerate(crit_cfg_list) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = DataCriterion.string_to_config(crit_config) crit_cfg_list[idx] = crit_config crit = load_class( crit_config.get( 'class', DataCriterion.__module__ + "." + DataCriterion.__name__)) crit_instance = crit(crit_config, self) assert isinstance(crit_instance, FailCriterion) if isinstance(idx, string_types): crit_instance.message = idx self.criteria.append(crit_instance) if isinstance(feeder, ResultsProvider): feeder.add_listener(self)
def __load_module(self, alias): """ Load module class by alias :param alias: str :return: class """ if alias in self.modules: return self.modules[alias] mod_conf = self.config.get('modules') if alias not in mod_conf: msg = "Module '%s' not found in list of available aliases %s" % ( alias, sorted(mod_conf.keys())) raise TaurusConfigError(msg) settings = ensure_is_dict(mod_conf, alias, "class") acopy = copy.deepcopy(settings) BetterDict.traverse(acopy, Configuration.masq_sensitive) self.log.debug("Module config: %s %s", alias, acopy) err = TaurusConfigError( "Class name for alias '%s' is not found in module settings: %s" % (alias, settings)) clsname = settings.get('class', err) self.modules[alias] = load_class(clsname) if not issubclass(self.modules[alias], EngineModule): raise TaurusInternalException( "Module class does not inherit from EngineModule: %s" % clsname) return self.modules[alias]
def prepare(self): super(PassFailStatus, self).prepare() # TODO: remove "criterias" support in three months criterias = self.parameters.get("criterias", []) if criterias: self.log.warning('"criterias" section name is deprecated, use "criteria" instead') criteria = self.parameters.get("criteria", criterias) if isinstance(criteria, dict): crit_iter = iteritems(criteria) else: crit_iter = enumerate(criteria) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = DataCriterion.string_to_config(crit_config) self.parameters['criteria'][idx] = crit_config crit = load_class(crit_config.get('class', DataCriterion.__module__ + "." + DataCriterion.__name__)) crit_instance = crit(crit_config, self) assert isinstance(crit_instance, FailCriterion) if isinstance(idx, string_types): crit_instance.message = idx self.criteria.append(crit_instance) if isinstance(self.engine.aggregator, ResultsProvider): self.engine.aggregator.add_listener(self)
def prepare(self): super(PassFailStatus, self).prepare() # TODO: remove "criterias" support in three months criterias = self.parameters.get("criterias", []) if criterias: self.log.warning( '"criterias" section name is deprecated, use "criteria" instead' ) criteria = self.parameters.get("criteria", criterias) if isinstance(criteria, dict): crit_iter = iteritems(criteria) else: crit_iter = enumerate(criteria) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = DataCriterion.string_to_config(crit_config) self.parameters['criteria'][idx] = crit_config crit = load_class( crit_config.get( 'class', DataCriterion.__module__ + "." + DataCriterion.__name__)) crit_instance = crit(crit_config, self) assert isinstance(crit_instance, FailCriterion) if isinstance(idx, string_types): crit_instance.message = idx self.criteria.append(crit_instance) if isinstance(self.engine.aggregator, ResultsProvider): self.engine.aggregator.add_listener(self)
def __load_module(self, alias): if alias in self.modules: return self.modules[alias] mod_conf = self.config.get('modules') if alias not in mod_conf: raise ValueError("Module alias '%s' not found in module settings" % alias) settings = ensure_is_dict(mod_conf, alias, "class") acopy = copy.deepcopy(settings) BetterDict.traverse(acopy, Configuration.masq_sensitive) self.log.debug("Module config: %s %s", alias, acopy) clsname = settings.get('class', None) try: self.modules[alias] = load_class(clsname) if not issubclass(self.modules[alias], EngineModule): raise TypeError( "Module class does not inherit from EngineModule: %s" % clsname) except BaseException as exc: self.log.debug("Failed to load class %s: %s", clsname, traceback.format_exc()) raise ValueError("Cannot load module '%s' with class %s" % (alias, clsname)) return self.modules[alias]
def __load_module(self, alias): """ Load module class by alias :param alias: str :return: class """ if alias in self.modules: return self.modules[alias] mod_conf = self.config.get('modules') if alias not in mod_conf: msg = "Module '%s' not found in list of available aliases %s" % (alias, sorted(mod_conf.keys())) raise TaurusConfigError(msg) settings = ensure_is_dict(mod_conf, alias, "class") acopy = copy.deepcopy(settings) BetterDict.traverse(acopy, Configuration.masq_sensitive) self.log.debug("Module config: %s %s", alias, acopy) err = TaurusConfigError("Class name for alias '%s' is not found in module settings: %s" % (alias, settings)) clsname = settings.get('class', err) self.modules[alias] = load_class(clsname) if not issubclass(self.modules[alias], EngineModule): raise TaurusInternalException("Module class does not inherit from EngineModule: %s" % clsname) return self.modules[alias]
def prepare(self): super(PassFailStatus, self).prepare() for idx, crit_config in enumerate(self.parameters.get("criterias", [])): if isinstance(crit_config, six.string_types): crit_config = FailCriteria.string_to_config(crit_config) self.parameters['criterias'][idx] = crit_config crit = load_class(crit_config.get('type', FailCriteria.__module__ + "." + FailCriteria.__name__)) self.criterias.append(crit(crit_config))
def register_checkers(self, checkers_repo, checkers_enabled): for checker_name in checkers_enabled: checker_fqn = checkers_repo.get(checker_name) if not checker_fqn: raise TaurusConfigError("Checker %r not found" % checker_name) checker_class = load_class(checker_fqn) assert issubclass(checker_class, Checker) checker = checker_class(self) self._checkers.append(checker)
def get_exc(self, param): """ :type param: str :return: """ name = self.settings.get(param, "") if name: cls = load_class(name) return cls() return None
def prepare(self): super(PassFailStatus, self).prepare() for idx, crit_config in enumerate(self.parameters.get("criterias", [])): if isinstance(crit_config, string_types): crit_config = FailCriteria.string_to_config(crit_config) self.parameters['criterias'][idx] = crit_config crit = load_class( crit_config.get( 'type', FailCriteria.__module__ + "." + FailCriteria.__name__)) self.criterias.append(crit(crit_config))
def prepare(self): self.client = ChromeClient(self.log) self.client.engine = self.engine processors = self.settings.get("processors", {}) for proc_name, proc in iteritems(processors): class_fqn = proc.get("class", ValueError("Class for performance processor %s is not specified" % proc_name)) klass = load_class(class_fqn) processor = klass(proc, self.client, self.log) self.client.add_processor(processor) self.client.connect()
def prepare(self): self.client = ChromeClient(self.log) self.client.engine = self.engine processors = self.settings.get("processors", {}) for proc_name, proc in iteritems(processors): msg = "Class for performance processor %s is not specified in %s" class_fqn = proc.get("class", TaurusConfigError(msg % (proc_name, proc))) klass = load_class(class_fqn) processor = klass(proc, self.client, self.log) self.client.add_processor(processor) self.client.connect()
def __init__(self, executor, original=None): """ :type executor: ScenarioExecutor :type original: JMX """ super(JMeterScenarioBuilder, self).__init__(original) self.executor = executor self.scenario = executor.get_scenario() self.engine = executor.engine self.system_props = BetterDict() self.request_compiler = None self.default_protocol = self.executor.settings.get('default-protocol', 'http') self.protocol_handlers = {} for protocol, cls_name in iteritems(self.executor.settings.get("protocol-handlers")): cls_obj = load_class(cls_name) instance = cls_obj(self.system_props) self.protocol_handlers[protocol] = instance
def prepare(self): super(PassFailStatus, self).prepare() criteria = self.parameters.get("criterias", []) if isinstance(criteria, dict): crit_iter = iteritems(criteria) else: crit_iter = enumerate(criteria) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = FailCriteria.string_to_config(crit_config) self.parameters['criterias'][idx] = crit_config crit = load_class(crit_config.get('type', FailCriteria.__module__ + "." + FailCriteria.__name__)) crit_instance = crit(crit_config) assert isinstance(crit_instance, FailCriteria) if isinstance(idx, string_types): crit_instance.message = idx self.criterias.append(crit_instance)
def prepare(self): super(PassFailStatus, self).prepare() criteria = self.parameters.get("criterias", []) if isinstance(criteria, dict): crit_iter = iteritems(criteria) else: crit_iter = enumerate(criteria) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = DataCriteria.string_to_config(crit_config) self.parameters['criterias'][idx] = crit_config crit = load_class(crit_config.get('class', DataCriteria.__module__ + "." + DataCriteria.__name__)) crit_instance = crit(crit_config, self) assert isinstance(crit_instance, FailCriteria) if isinstance(idx, string_types): crit_instance.message = idx self.criterias.append(crit_instance) if isinstance(self.engine.aggregator, ResultsProvider): self.engine.aggregator.add_listener(self)
def prepare(self): super(PassFailStatus, self).prepare() criteria = self.parameters.get("criterias", []) if isinstance(criteria, dict): crit_iter = iteritems(criteria) else: crit_iter = enumerate(criteria) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = FailCriteria.string_to_config(crit_config) self.parameters['criterias'][idx] = crit_config crit = load_class( crit_config.get( 'type', FailCriteria.__module__ + "." + FailCriteria.__name__)) crit_instance = crit(crit_config) assert isinstance(crit_instance, FailCriteria) if isinstance(idx, string_types): crit_instance.message = idx self.criterias.append(crit_instance)
def prepare(self): super(PassFailStatus, self).prepare() criteria = self.parameters.get("criteria", []) if isinstance(criteria, dict): crit_iter = iteritems(criteria) else: crit_iter = enumerate(criteria) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = DataCriterion.string_to_config(crit_config) self.parameters['criteria'][idx] = crit_config crit = load_class(crit_config.get('class', DataCriterion.__module__ + "." + DataCriterion.__name__)) crit_instance = crit(crit_config, self) assert isinstance(crit_instance, FailCriterion) if isinstance(idx, string_types): crit_instance.message = idx self.criteria.append(crit_instance) if isinstance(self.engine.aggregator, ResultsProvider): self.engine.aggregator.add_listener(self)
def __init__(self, crit_cfg_list, feeder): super(CriteriaProcessor, self).__init__() self.criteria = [] self.last_datapoint = None self.log = logging.getLogger(__name__) if isinstance(crit_cfg_list, dict): crit_iter = iteritems(crit_cfg_list) else: crit_iter = enumerate(crit_cfg_list) for idx, crit_config in crit_iter: if isinstance(crit_config, string_types): crit_config = DataCriterion.string_to_config(crit_config) crit_cfg_list[idx] = crit_config crit = load_class(crit_config.get('class', DataCriterion.__module__ + "." + DataCriterion.__name__)) crit_instance = crit(crit_config, self) assert isinstance(crit_instance, FailCriterion) if isinstance(idx, string_types): crit_instance.message = idx self.criteria.append(crit_instance) if isinstance(feeder, ResultsProvider): feeder.add_listener(self)
def instantiate_extractors(self, extractors): for extractor_fqn in extractors: extractor_class = load_class(extractor_fqn) extractor = extractor_class(self, self.log) self.extractors.append(extractor)