def _load_definitions(self): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') meters_cfg = declarative.load_definitions( self.manager.conf, {}, self.manager.conf.meter.meter_definitions_cfg_file, pkg_resources.resource_filename(__name__, "data/meters.yaml")) definitions = {} disable_non_metric_meters = ( self.manager.conf.notification.disable_non_metric_meters) for meter_cfg in reversed(meters_cfg['metric']): if meter_cfg.get('name') in definitions: # skip duplicate meters LOG.warning( _LW("Skipping duplicate meter definition %s") % meter_cfg) continue if (meter_cfg.get('volume') != 1 or not disable_non_metric_meters): try: md = MeterDefinition(meter_cfg, plugin_manager) except declarative.DefinitionException as e: errmsg = _LE("Error loading meter definition: %s") LOG.error(errmsg, six.text_type(e)) else: definitions[meter_cfg['name']] = md return definitions.values()
def _load_resources_definitions(cls, conf): plugin_manager = extension.ExtensionManager(namespace="ceilometer.event.trait_plugin") data = declarative.load_definitions({}, conf.dispatcher_gnocchi.resources_definition_file) return [ ResourcesDefinition(r, conf.dispatcher_gnocchi.archive_policy, plugin_manager) for r in data.get("resources", []) ]
def _load_definitions(): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') meters_cfg = declarative.load_definitions( {}, cfg.CONF.meter.meter_definitions_cfg_file, pkg_resources.resource_filename(__name__, "data/meters.yaml")) definitions = {} for meter_cfg in reversed(meters_cfg['metric']): if meter_cfg.get('name') in definitions: # skip duplicate meters LOG.warning(_LW("Skipping duplicate meter definition %s") % meter_cfg) continue if (meter_cfg.get('volume') != 1 or not cfg.CONF.notification.disable_non_metric_meters): try: md = MeterDefinition(meter_cfg, plugin_manager) except declarative.DefinitionException as me: errmsg = (_LE("Error loading meter definition : %(err)s") % dict(err=six.text_type(me))) LOG.error(errmsg) else: definitions[meter_cfg['name']] = md return definitions.values()
def setup_events(trait_plugin_mgr): """Setup the event definitions from yaml config file.""" return NotificationEventsConverter( declarative.load_definitions(cfg.CONF, [], cfg.CONF.event.definitions_cfg_file), trait_plugin_mgr, add_catchall=not cfg.CONF.event.drop_unmatched_notifications)
def setup_events(conf, trait_plugin_mgr): """Setup the event definitions from yaml config file.""" return NotificationEventsConverter( conf, declarative.load_definitions(conf, [], conf.event.definitions_cfg_file), trait_plugin_mgr)
def _load_definitions(self): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') definitions = {} mfs = [] for dir in self.manager.conf.meter.meter_definitions_dirs: for filepath in sorted(glob.glob(os.path.join(dir, "*.yaml"))): if filepath is not None: mfs.append(filepath) if self.manager.conf.meter.meter_definitions_cfg_file is not None: mfs.append( pkg_resources.resource_filename( self.manager.conf.meter.meter_definitions_cfg_file)) for mf in mfs: meters_cfg = declarative.load_definitions(self.manager.conf, {}, mf) for meter_cfg in reversed(meters_cfg['metric']): if meter_cfg.get('name') in definitions: # skip duplicate meters LOG.warning("Skipping duplicate meter definition %s" % meter_cfg) continue try: md = MeterDefinition(meter_cfg, self.manager.conf, plugin_manager) except declarative.DefinitionException as e: errmsg = "Error loading meter definition: %s" LOG.error(errmsg, six.text_type(e)) else: definitions[meter_cfg['name']] = md return definitions.values()
def _load_resources_definitions(cls, conf): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') data = declarative.load_definitions( {}, conf.dispatcher_gnocchi.resources_definition_file) return [ResourcesDefinition(r, conf.dispatcher_gnocchi.archive_policy, plugin_manager) for r in data.get('resources', [])]
def setup_events(conf, trait_plugin_mgr): """Setup the event definitions from yaml config file.""" return NotificationEventsConverter( conf, declarative.load_definitions( conf, [], conf.event.definitions_cfg_file, pkg_resources.resource_filename( 'ceilometer', "pipeline/data/event_definitions.yaml")), trait_plugin_mgr)
def _setup_meter_def_file(self, cfg): cfg = cfg.encode('utf-8') meter_cfg_file = fileutils.write_to_tempfile(content=cfg, prefix="snmp", suffix="yaml") self.conf.set_override('meter_definitions_file', meter_cfg_file, group='hardware') cfg = declarative.load_definitions( self.conf, {}, self.conf.hardware.meter_definitions_file) return cfg
def _setup_meter_def_file(self, cfg): if six.PY3: cfg = cfg.encode('utf-8') meter_cfg_file = fileutils.write_to_tempfile(content=cfg, prefix="snmp", suffix="yaml") self.conf.set_override( 'meter_definitions_file', meter_cfg_file, group='hardware') cfg = declarative.load_definitions( {}, self.conf.hardware.meter_definitions_file) return cfg
def build_pollsters(cls): if not cls.mapping: definition_cfg = declarative.load_definitions( {}, cfg.CONF.hardware.meter_definitions_file, pkg_resources.resource_filename(__name__, "data/snmp.yaml")) cls.mapping = load_definition(definition_cfg) pollsters = [] for name in cls.mapping: pollster = cls() pollster._update_meter_definition(cls.mapping[name]) pollsters.append((name, pollster)) return pollsters
def build_pollsters(cls, conf): if not cls.mapping: definition_cfg = declarative.load_definitions( conf, {}, conf.hardware.meter_definitions_file, pkg_resources.resource_filename(__name__, "data/snmp.yaml")) cls.mapping = load_definition(definition_cfg) pollsters = [] for name in cls.mapping: pollster = cls(conf) pollster._update_meter_definition(cls.mapping[name]) pollsters.append((name, pollster)) return pollsters
def _load_resources_definitions(cls, conf): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') data = declarative.load_definitions( {}, conf.dispatcher_gnocchi.resources_definition_file) resource_defs = [] for resource in data.get('resources', []): try: resource_defs.append( ResourcesDefinition(resource, conf.dispatcher_gnocchi.archive_policy, plugin_manager)) except Exception as exc: LOG.error(_LE("Failed to load resource due to error %s") % exc) return resource_defs
def _load_resources_definitions(cls, conf): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') data = declarative.load_definitions( {}, conf.dispatcher_gnocchi.resources_definition_file) resource_defs = [] for resource in data.get('resources', []): try: resource_defs.append(ResourcesDefinition( resource, conf.dispatcher_gnocchi.archive_policy, plugin_manager)) except Exception as exc: LOG.error(_LE("Failed to load resource due to error %s") % exc) return resource_defs
def _load_resources_definitions(conf, archive_policy, resources_definition_file): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') data = declarative.load_definitions( conf, {}, resources_definition_file, pkg_resources.resource_filename(__name__, "data/gnocchi_resources.yaml")) resource_defs = [] for resource in data.get('resources', []): try: resource_defs.append( ResourcesDefinition(resource, archive_policy, plugin_manager)) except Exception as exc: LOG.error("Failed to load resource due to error %s" % exc) return resource_defs
def _load_definitions(): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') meters_cfg = declarative.load_definitions( {}, cfg.CONF.meter.meter_definitions_cfg_file, pkg_resources.resource_filename(__name__, "data/meters.yaml")) definitions = [] for meter_cfg in reversed(meters_cfg['metric']): if (meter_cfg['volume'] != 1 or not cfg.CONF.notification.disable_non_metric_meters): try: md = MeterDefinition(meter_cfg, plugin_manager) except declarative.DefinitionException as me: errmsg = (_LE("Error loading meter definition : %(err)s") % dict(err=six.text_type(me))) LOG.error(errmsg) else: definitions.append(md) return definitions
def _load_definitions(conf, archive_policy_override, resources_definition_file): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') data = declarative.load_definitions( conf, {}, resources_definition_file, pkg_resources.resource_filename(__name__, "data/gnocchi_resources.yaml")) archive_policy_default = data.get("archive_policy_default", "ceilometer-low") resource_defs = [] for resource in data.get('resources', []): try: resource_defs.append( ResourcesDefinition(resource, archive_policy_default, archive_policy_override, plugin_manager)) except Exception: LOG.error("Failed to load resource due to error", exc_info=True) return resource_defs, data.get("archive_policies", [])
def _load_definitions(conf, archive_policy_override, resources_definition_file): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') data = declarative.load_definitions( conf, {}, resources_definition_file, pkg_resources.resource_filename(__name__, "data/gnocchi_resources.yaml")) archive_policy_default = data.get("archive_policy_default", "ceilometer-low") resource_defs = [] for resource in data.get('resources', []): try: resource_defs.append(ResourcesDefinition( resource, archive_policy_default, archive_policy_override, plugin_manager)) except Exception: LOG.error("Failed to load resource due to error", exc_info=True) return resource_defs, data.get("archive_policies", [])
def _load_definitions(self): plugin_manager = extension.ExtensionManager( namespace='ceilometer.event.trait_plugin') meters_cfg = declarative.load_definitions( self.manager.conf, {}, self.manager.conf.meter.meter_definitions_cfg_file, pkg_resources.resource_filename(__name__, "data/meters.yaml")) definitions = {} for meter_cfg in reversed(meters_cfg['metric']): if meter_cfg.get('name') in definitions: # skip duplicate meters LOG.warning(_LW("Skipping duplicate meter definition %s") % meter_cfg) continue try: md = MeterDefinition(meter_cfg, plugin_manager) except declarative.DefinitionException as e: errmsg = _LE("Error loading meter definition: %s") LOG.error(errmsg, six.text_type(e)) else: definitions[meter_cfg['name']] = md return definitions.values()
def setup_events(trait_plugin_mgr): """Setup the event definitions from yaml config file.""" return NotificationEventsConverter( declarative.load_definitions([], cfg.CONF.event.definitions_cfg_file), trait_plugin_mgr, add_catchall=not cfg.CONF.event.drop_unmatched_notifications)
def create_dynamic_pollsters(self): """Creates dynamic pollsters This method Creates dynamic pollsters based on configurations placed on 'pollsters_definitions_dirs' :return: a list with the dynamic pollsters defined by the operator. """ pollsters_definitions_dirs = self.conf.pollsters_definitions_dirs if not pollsters_definitions_dirs: LOG.info("Variable 'pollsters_definitions_dirs' not defined.") return [] LOG.info("Looking for dynamic pollsters configurations at [%s].", pollsters_definitions_dirs) pollsters_definitions_files = [] for directory in pollsters_definitions_dirs: files = glob.glob(os.path.join(directory, "*.yaml")) if not files: LOG.info("No dynamic pollsters found in folder [%s].", directory) continue for filepath in sorted(files): if filepath is not None: pollsters_definitions_files.append(filepath) if not pollsters_definitions_files: LOG.info("No dynamic pollsters file found in dirs [%s].", pollsters_definitions_dirs) return [] pollsters_definitions = {} for pollsters_definitions_file in pollsters_definitions_files: pollsters_cfg = declarative.load_definitions( self.conf, {}, pollsters_definitions_file) LOG.info("File [%s] has [%s] dynamic pollster configurations.", pollsters_definitions_file, len(pollsters_cfg)) for pollster_cfg in pollsters_cfg: pollster_name = pollster_cfg['name'] if pollster_name not in pollsters_definitions: LOG.info("Loading dynamic pollster [%s] from file [%s].", pollster_name, pollsters_definitions_file) try: pollsters_definitions[pollster_name] =\ dynamic_pollster.DynamicPollster( pollster_cfg, self.conf) except Exception as e: LOG.error( "Error [%s] while loading dynamic pollster [%s].", e, pollster_name) else: LOG.info( "Dynamic pollster [%s] is already defined." "Therefore, we are skipping it.", pollster_name) LOG.debug("Total of dynamic pollsters [%s] loaded.", len(pollsters_definitions)) return pollsters_definitions.values()