def test_gauge(self): """Test Gauge can be initialized.""" os.environ['GAUGE_CONFIG'] = '/dev/null' self.os_ken_app = gauge.Gauge(dpset={}, reg=CollectorRegistry()) self.os_ken_app.reload_config(None) self.assertFalse(self.os_ken_app._config_files_changed()) self.os_ken_app._update_watcher(None, self._fake_event()) self.os_ken_app._start_watchers(self._fake_dp(), {}, time.time()) for event_handler in (self.os_ken_app._datapath_connect, self.os_ken_app._datapath_disconnect): event_handler(self._fake_event())
def test_gauge_config(self): """Test Gauge minimal config.""" tmpdir = tempfile.mkdtemp() os.environ['FAUCET_CONFIG'] = os.path.join(tmpdir, 'faucet.yaml') os.environ['GAUGE_CONFIG'] = os.path.join(tmpdir, 'gauge.yaml') with open(os.environ['FAUCET_CONFIG'], 'w') as faucet_config: faucet_config.write( """ vlans: 100: description: "100" dps: dp1: dp_id: 0x1 interfaces: 1: description: "1" native_vlan: 100 """) os.environ['GAUGE_CONFIG'] = os.path.join(tmpdir, 'gauge.yaml') with open(os.environ['GAUGE_CONFIG'], 'w') as gauge_config: gauge_config.write( """ faucet_configs: - '%s' watchers: port_status_poller: type: 'port_state' all_dps: True db: 'prometheus' port_stats_poller: type: 'port_stats' all_dps: True interval: 10 db: 'prometheus' flow_table_poller: type: 'flow_table' all_dps: True interval: 60 db: 'prometheus' dbs: prometheus: type: 'prometheus' prometheus_addr: '0.0.0.0' prometheus_port: 0 """ % os.environ['FAUCET_CONFIG']) ryu_app = gauge.Gauge( dpset={}, reg=CollectorRegistry()) ryu_app.reload_config(None) self.assertTrue(ryu_app.watchers) ryu_app.reload_config(None) self.assertTrue(ryu_app.watchers) shutil.rmtree(tmpdir)
def test_gauge_config(self): """Test Gauge minimal config.""" faucet_conf1 = """ vlans: 100: description: "100" dps: dp1: dp_id: 0x1 interfaces: 1: description: "1" native_vlan: 100 """ faucet_conf2 = """ vlans: 100: description: "200" dps: dp1: dp_id: 0x1 interfaces: 2: description: "2" native_vlan: 100 """ os.environ['FAUCET_CONFIG'] = os.path.join(self.tmpdir, 'faucet.yaml') self._write_config(os.environ['FAUCET_CONFIG'], faucet_conf1) os.environ['GAUGE_CONFIG'] = os.path.join(self.tmpdir, 'gauge.yaml') gauge_conf = """ faucet_configs: - '%s' watchers: port_status_poller: type: 'port_state' all_dps: True db: 'prometheus' port_stats_poller: type: 'port_stats' all_dps: True interval: 10 db: 'prometheus' flow_table_poller: type: 'flow_table' all_dps: True interval: 60 db: 'prometheus' dbs: prometheus: type: 'prometheus' prometheus_addr: '0.0.0.0' prometheus_port: 0 """ % os.environ['FAUCET_CONFIG'] self._write_config(os.environ['GAUGE_CONFIG'], gauge_conf) self.os_ken_app = gauge.Gauge(dpset={}, reg=CollectorRegistry()) self.os_ken_app.reload_config(None) self.assertFalse(self.os_ken_app._config_files_changed()) self.assertTrue(self.os_ken_app.watchers) self.os_ken_app.reload_config(None) self.assertTrue(self.os_ken_app.watchers) self.assertFalse(self.os_ken_app._config_files_changed()) # Load a new FAUCET config. self._write_config(os.environ['FAUCET_CONFIG'], faucet_conf2) self.assertTrue(self.os_ken_app._config_files_changed()) self.os_ken_app.reload_config(None) self.assertTrue(self.os_ken_app.watchers) self.assertFalse(self.os_ken_app._config_files_changed()) # Load an invalid Gauge config self._write_config(os.environ['GAUGE_CONFIG'], 'invalid') self.assertTrue(self.os_ken_app._config_files_changed()) self.os_ken_app.reload_config(None) self.assertTrue(self.os_ken_app.watchers) # Keep trying to load a valid version. self.assertTrue(self.os_ken_app._config_files_changed()) # Load good Gauge config back self._write_config(os.environ['GAUGE_CONFIG'], gauge_conf) self.assertTrue(self.os_ken_app._config_files_changed()) self.os_ken_app.reload_config(None) self.assertTrue(self.os_ken_app.watchers) self.assertFalse(self.os_ken_app._config_files_changed())