From 0c4aee00d9374253b76567987027cdf0cbc91e81 Mon Sep 17 00:00:00 2001 From: Eoghan Glynn Date: Mon, 7 Jul 2014 09:39:05 +0000 Subject: [PATCH] Add testcase for multiple discovery-driven sources This test was intended to reproduce the reported issue around resources discovered for one pollster bleeding into the resource list passed to an unrelated pollster with the same interval. However the observed behaviour seems correct. Related-bug: #1335986 Change-Id: Ifb608246ad2ee2d858b4268ae2e8dc6faaff025c --- ceilometer/tests/agentbase.py | 33 ++++++++++++++++++++++++ ceilometer/tests/compute/test_manager.py | 4 +-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/ceilometer/tests/agentbase.py b/ceilometer/tests/agentbase.py index 598f9c3698..00a938fab4 100644 --- a/ceilometer/tests/agentbase.py +++ b/ceilometer/tests/agentbase.py @@ -487,3 +487,36 @@ class BaseAgentManagerTestCase(base.BaseTestCase): published = pipe_line.publishers[0].samples[0] self.assertEqual(amalgamated_resources, set(published.resource_metadata['resources'])) + + def test_multiple_sources_different_discoverers(self): + self.Discovery.resources = ['discovered_1', 'discovered_2'] + self.DiscoveryAnother.resources = ['discovered_3', 'discovered_4'] + sources = [{'name': 'test_source_1', + 'interval': 60, + 'counters': ['test'], + 'discovery': ['testdiscovery'], + 'sinks': ['test_sink_1']}, + {'name': 'test_source_2', + 'interval': 60, + 'counters': ['testanother'], + 'discovery': ['testdiscoveryanother'], + 'sinks': ['test_sink_2']}] + sinks = [{'name': 'test_sink_1', + 'transformers': [], + 'publishers': ['test://']}, + {'name': 'test_sink_2', + 'transformers': [], + 'publishers': ['test://']}] + self.pipeline_cfg = {'sources': sources, 'sinks': sinks} + self.mgr.discovery_manager = self.create_discovery_manager() + self.setup_pipeline() + polling_tasks = self.mgr.setup_polling_tasks() + self.assertEqual(1, len(polling_tasks)) + self.assertTrue(60 in polling_tasks.keys()) + self.mgr.interval_task(polling_tasks.get(60)) + self.assertEqual(1, len(self.Pollster.samples)) + self.assertEqual(['discovered_1', 'discovered_2'], + self.Pollster.resources) + self.assertEqual(1, len(self.PollsterAnother.samples)) + self.assertEqual(['discovered_3', 'discovered_4'], + self.PollsterAnother.resources) diff --git a/ceilometer/tests/compute/test_manager.py b/ceilometer/tests/compute/test_manager.py index 1d9685191f..e8f60aece5 100644 --- a/ceilometer/tests/compute/test_manager.py +++ b/ceilometer/tests/compute/test_manager.py @@ -83,11 +83,11 @@ class TestRunTasks(agentbase.BaseAgentManagerTestCase): polling_task = agent.PollingTask(mgr) polling_task.poll_and_publish() - def self_local_instances_default_agent_discovery(self): + def test_local_instances_default_agent_discovery(self): self.setup_pipeline() self.assertEqual(self.mgr.default_discovery, ['local_instances']) polling_tasks = self.mgr.setup_polling_tasks() self.mgr.interval_task(polling_tasks.get(60)) - self._verify_discovery_params([None]) + self._verify_discovery_params([]) self.assertEqual(set(self.Pollster.resources), set(self.instances))