summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2012-10-04 16:28:56 +0200
committerJulien Danjou <julien@danjou.info>2012-10-05 13:46:42 +0200
commit8ae8584f99df900c23c1f12b820881de74dcfc9c (patch)
tree739f8fec0d4a366950771eb80187e748d8b2a26e
parent07a90a2290d31b70906eeb887b68ddfb7d73fb6d (diff)
downloadceilometer-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.py15
-rwxr-xr-xsetup.py1
-rw-r--r--tests/compute/test_libvirt.py17
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)
diff --git a/setup.py b/setup.py
index 92881f33..b918d8c7 100755
--- a/setup.py
+++ b/setup.py
@@ -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):