def init_pipeline_refresh(self): """Initializes pipeline refresh state.""" self.clear_pipeline_validation_status() self.refresh_pipeline_periodic = None if (self.conf.refresh_pipeline_cfg or self.conf.refresh_event_pipeline_cfg): self.refresh_pipeline_periodic = utils.create_periodic( target=self.refresh_pipeline, spacing=self.conf.pipeline_polling_interval) utils.spawn_thread(self.refresh_pipeline_periodic.start)
def init_pipeline_refresh(self): """Initializes pipeline refresh state.""" self.clear_pipeline_validation_status() if cfg.CONF.refresh_pipeline_cfg: self.set_pipeline_mtime(pipeline.get_pipeline_mtime()) self.set_pipeline_hash(pipeline.get_pipeline_hash()) if cfg.CONF.refresh_event_pipeline_cfg: self.set_pipeline_mtime(pipeline.get_pipeline_mtime( pipeline.EVENT_TYPE), pipeline.EVENT_TYPE) self.set_pipeline_hash(pipeline.get_pipeline_hash( pipeline.EVENT_TYPE), pipeline.EVENT_TYPE) self.refresh_pipeline_periodic = None if (cfg.CONF.refresh_pipeline_cfg or cfg.CONF.refresh_event_pipeline_cfg): self.refresh_pipeline_periodic = utils.create_periodic( target=self.refresh_pipeline, spacing=cfg.CONF.pipeline_polling_interval) utils.spawn_thread(self.refresh_pipeline_periodic.start)
def init_pipeline_refresh(self): """Initializes pipeline refresh state.""" self.clear_pipeline_validation_status() if cfg.CONF.refresh_pipeline_cfg: self.set_pipeline_mtime(pipeline.get_pipeline_mtime()) self.set_pipeline_hash(pipeline.get_pipeline_hash()) if cfg.CONF.refresh_event_pipeline_cfg: self.set_pipeline_mtime( pipeline.get_pipeline_mtime(pipeline.EVENT_TYPE), pipeline.EVENT_TYPE) self.set_pipeline_hash( pipeline.get_pipeline_hash(pipeline.EVENT_TYPE), pipeline.EVENT_TYPE) self.refresh_pipeline_periodic = None if (cfg.CONF.refresh_pipeline_cfg or cfg.CONF.refresh_event_pipeline_cfg): self.refresh_pipeline_periodic = utils.create_periodic( target=self.refresh_pipeline, spacing=cfg.CONF.pipeline_polling_interval) utils.spawn_thread(self.refresh_pipeline_periodic.start)
def __init__(self, namespaces=None, pollster_list=None, worker_id=0): namespaces = namespaces or ['compute', 'central'] pollster_list = pollster_list or [] group_prefix = cfg.CONF.polling.partitioning_group_prefix # features of using coordination and pollster-list are exclusive, and # cannot be used at one moment to avoid both samples duplication and # samples being lost if pollster_list and cfg.CONF.coordination.backend_url: raise PollsterListForbidden() super(AgentManager, self).__init__(worker_id) def _match(pollster): """Find out if pollster name matches to one of the list.""" return any(fnmatch.fnmatch(pollster.name, pattern) for pattern in pollster_list) if type(namespaces) is not list: namespaces = [namespaces] # we'll have default ['compute', 'central'] here if no namespaces will # be passed extensions = (self._extensions('poll', namespace).extensions for namespace in namespaces) # get the extensions from pollster builder extensions_fb = (self._extensions_from_builder('poll', namespace) for namespace in namespaces) if pollster_list: extensions = (moves.filter(_match, exts) for exts in extensions) extensions_fb = (moves.filter(_match, exts) for exts in extensions_fb) self.extensions = list(itertools.chain(*list(extensions))) + list( itertools.chain(*list(extensions_fb))) if self.extensions == []: raise EmptyPollstersList() discoveries = (self._extensions('discover', namespace).extensions for namespace in namespaces) self.discoveries = list(itertools.chain(*list(discoveries))) self.polling_periodics = None self.partition_coordinator = coordination.PartitionCoordinator() self.heartbeat_timer = utils.create_periodic( target=self.partition_coordinator.heartbeat, spacing=cfg.CONF.coordination.heartbeat, run_immediately=True) # Compose coordination group prefix. # We'll use namespaces as the basement for this partitioning. namespace_prefix = '-'.join(sorted(namespaces)) self.group_prefix = ('%s-%s' % (namespace_prefix, group_prefix) if group_prefix else namespace_prefix) self.notifier = oslo_messaging.Notifier( messaging.get_transport(), driver=cfg.CONF.publisher_notifier.telemetry_driver, publisher_id="ceilometer.polling") self._keystone = None self._keystone_last_exception = None
def __init__(self, worker_id, conf, namespaces=None, pollster_list=None, ): namespaces = namespaces or ['compute', 'central'] pollster_list = pollster_list or [] group_prefix = conf.polling.partitioning_group_prefix # features of using coordination and pollster-list are exclusive, and # cannot be used at one moment to avoid both samples duplication and # samples being lost if pollster_list and conf.coordination.backend_url: raise PollsterListForbidden() super(AgentManager, self).__init__(worker_id, conf) def _match(pollster): """Find out if pollster name matches to one of the list.""" return any(fnmatch.fnmatch(pollster.name, pattern) for pattern in pollster_list) if type(namespaces) is not list: namespaces = [namespaces] # we'll have default ['compute', 'central'] here if no namespaces will # be passed extensions = (self._extensions('poll', namespace, self.conf).extensions for namespace in namespaces) # get the extensions from pollster builder extensions_fb = (self._extensions_from_builder('poll', namespace) for namespace in namespaces) if pollster_list: extensions = (moves.filter(_match, exts) for exts in extensions) extensions_fb = (moves.filter(_match, exts) for exts in extensions_fb) self.extensions = list(itertools.chain(*list(extensions))) + list( itertools.chain(*list(extensions_fb))) if self.extensions == []: raise EmptyPollstersList() discoveries = (self._extensions('discover', namespace, self.conf).extensions for namespace in namespaces) self.discoveries = list(itertools.chain(*list(discoveries))) self.polling_periodics = None self.partition_coordinator = coordination.PartitionCoordinator( self.conf) self.heartbeat_timer = utils.create_periodic( target=self.partition_coordinator.heartbeat, spacing=self.conf.coordination.heartbeat, run_immediately=True) # Compose coordination group prefix. # We'll use namespaces as the basement for this partitioning. namespace_prefix = '-'.join(sorted(namespaces)) self.group_prefix = ('%s-%s' % (namespace_prefix, group_prefix) if group_prefix else namespace_prefix) self.notifier = oslo_messaging.Notifier( messaging.get_transport(self.conf), driver=self.conf.publisher_notifier.telemetry_driver, publisher_id="ceilometer.polling") self._keystone = None self._keystone_last_exception = None