diff options
author | Julien Danjou <julien@danjou.info> | 2012-10-04 16:28:56 +0200 |
---|---|---|
committer | Julien Danjou <julien@danjou.info> | 2012-10-05 13:46:42 +0200 |
commit | 8ae8584f99df900c23c1f12b820881de74dcfc9c (patch) | |
tree | 739f8fec0d4a366950771eb80187e748d8b2a26e | |
parent | 07a90a2290d31b70906eeb887b68ddfb7d73fb6d (diff) | |
download | ceilometer-8ae8584f99df900c23c1f12b820881de74dcfc9c.tar.gz |
Move instance counter into its own pollster
There's no need to emit a counter in a specific pollster doing something
else like CPU polling.
Change-Id: If2adc861be4fec3b414d9688cf36219f6a7b04e8
Signed-off-by: Julien Danjou <julien@danjou.info>
-rw-r--r-- | ceilometer/compute/libvirt.py | 15 | ||||
-rwxr-xr-x | setup.py | 1 | ||||
-rw-r--r-- | tests/compute/test_libvirt.py | 17 |
3 files changed, 28 insertions, 5 deletions
diff --git a/ceilometer/compute/libvirt.py b/ceilometer/compute/libvirt.py index 0defdcaf..fd198844 100644 --- a/ceilometer/compute/libvirt.py +++ b/ceilometer/compute/libvirt.py @@ -79,6 +79,16 @@ def make_vnic_counter(instance, name, type, volume, vnic_data): ) +class InstancePollster(plugin.ComputePollster): + + def get_counters(self, manager, instance): + yield make_counter_from_instance(instance, + name='instance', + type=counter.TYPE_CUMULATIVE, + volume=1, + ) + + class DiskIOPollster(plugin.ComputePollster): LOG = log.getLogger(__name__ + '.diskio') @@ -150,11 +160,6 @@ class CPUPollster(plugin.ComputePollster): type=counter.TYPE_CUMULATIVE, volume=cpu_info['cpu_time'], ) - yield make_counter_from_instance(instance, - name='instance', - type=counter.TYPE_CUMULATIVE, - volume=1, - ) except Exception as err: self.LOG.error('could not get CPU time for %s: %s', instance.uuid, err) @@ -65,6 +65,7 @@ setuptools.setup( libvirt_diskio = ceilometer.compute.libvirt:DiskIOPollster libvirt_cpu = ceilometer.compute.libvirt:CPUPollster libvirt_net = ceilometer.compute.libvirt:NetPollster + libvirt_instance = ceilometer.compute.libvirt:InstancePollster [ceilometer.poll.central] network_floatingip = ceilometer.network.floatingip:FloatingIPPollster diff --git a/tests/compute/test_libvirt.py b/tests/compute/test_libvirt.py index 1205c0f9..d91f6705 100644 --- a/tests/compute/test_libvirt.py +++ b/tests/compute/test_libvirt.py @@ -41,6 +41,23 @@ import mox import re +class TestInstancePollster(unittest.TestCase): + + @skip.skip_if(libvirt_missing, 'Test requires libvirt') + def setUp(self): + self.manager = manager.AgentManager() + self.pollster = libvirt.InstancePollster() + super(TestInstancePollster, self).setUp() + self.instance = mock.MagicMock() + self.instance.name = 'instance-00000001' + self.instance.id = 1 + flags.FLAGS.compute_driver = 'libvirt.LibvirtDriver' + flags.FLAGS.connection_type = 'libvirt' + + def test_get_counter(self): + list(self.pollster.get_counters(self.manager, self.instance)) + + class TestDiskIOPollster(unittest.TestCase): def setUp(self): |