def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.watchers = {} self.config_watcher = ConfigWatcher() self.faucet_config_watchers = [] self.prom_client = GaugePrometheusClient(reg=self._reg) self.thread_managers = (self.prom_client, )
def _load_config(self): """Load Gauge config.""" try: conf_hash, _faucet_config_files, faucet_conf_hashes, new_confs = watcher_parser( self.config_file, self.logname, self.prom_client) watchers = [ watcher_factory(watcher_conf)(watcher_conf, self.logname, self.prom_client) for watcher_conf in new_confs ] self.prom_client.reregister_nonflow_vars() except InvalidConfigError as err: self.config_watcher.update(self.config_file) self.logger.error('invalid config: %s', err) return for old_watchers in self.watchers.values(): self._stop_watchers(old_watchers) new_watchers = {} for watcher in watchers: watcher_dpid = watcher.dp.dp_id watcher_type = watcher.conf.type if watcher_dpid not in new_watchers: new_watchers[watcher_dpid] = {} if watcher_type not in new_watchers[watcher_dpid]: new_watchers[watcher_dpid][watcher_type] = [] new_watchers[watcher_dpid][watcher_type].append(watcher) timestamp = time.time() for watcher_dpid, watchers in new_watchers.items(): ryu_dp = self.dpset.get(watcher_dpid) if ryu_dp: self._start_watchers(ryu_dp, watchers, timestamp) self.watchers = new_watchers self.config_watcher.update(self.config_file, {self.config_file: conf_hash}) self.faucet_config_watchers = [] for faucet_config_file, faucet_conf_hash in faucet_conf_hashes.items(): faucet_config_watcher = ConfigWatcher() faucet_config_watcher.update(faucet_config_file, faucet_conf_hash) self.faucet_config_watchers.append(faucet_config_watcher) self.logger.info('watching FAUCET config %s', faucet_config_file) self.logger.info('config complete')
def __init__(self, *args, **kwargs): super(Gauge, self).__init__(*args, **kwargs) self.prom_client = GaugePrometheusClient() self.watchers = {} self.config_watcher = ConfigWatcher()