def test_poller(self): """Test the update method to see if it pushes port stats""" datapath = create_mock_datapath(2) conf = mock.Mock(dp=datapath, type='', interval=1, prometheus_port=9303, prometheus_addr='localhost', use_test_thread=True) prom_poller = gauge_prom.GaugePortStatsPrometheusPoller( conf, '__name__', self.prom_client) prom_poller._running = True msg = port_stats_msg(datapath) prom_poller.update(time.time(), msg) prom_lines = self.get_prometheus_stats(conf.prometheus_addr, conf.prometheus_port) prom_lines = self.parse_prom_output(prom_lines) for port_num, port in datapath.ports.items(): port_stats = msg.body[int(port_num) - 1] stats = prom_lines[(datapath.dp_id, port.name)] stats_found = set() for stat_name, stat_val in stats: self.assertAlmostEqual(stat_val, getattr(port_stats, stat_name)) stats_found.add(stat_name) self.assertEqual(stats_found, set(gauge_prom.PROM_PORT_VARS))
def test_poller(self): """Test the update method to see if it pushes port stats""" prom_client = gauge_prom.GaugePrometheusClient() datapath = create_mock_datapath(2) conf = mock.Mock(dp=datapath, type='', interval=1, prometheus_port=9303, prometheus_addr='localhost') prom_poller = gauge_prom.GaugePortStatsPrometheusPoller( conf, '__name__', prom_client) port1 = parser.OFPPortStats(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 100, 50) port2 = parser.OFPPortStats(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 100, 50) message = parser.OFPPortStatsReply(datapath, body=[port1, port2]) dp_id = 1 prom_poller.update(time.time(), dp_id, message) prom_lines = self.get_prometheus_stats(conf.prometheus_addr, conf.prometheus_port) prom_lines = self.parse_prom_output(prom_lines) for port_num, port in datapath.ports.items(): stats = prom_lines[(dp_id, port.name)] stats_found = set() for stat_name, stat_val in stats: self.assertAlmostEqual(stat_val, port_num) stats_found.add(stat_name) self.assertEqual(stats_found, set(gauge_prom.PROM_PORT_VARS))