summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliu-sheng <liusheng@huawei.com>2015-08-27 11:14:42 +0800
committerliu-sheng <liusheng@huawei.com>2015-08-31 09:37:40 +0800
commitbec2e27dd5bb18f5912f95a160f8258e3d813e9e (patch)
tree20016fadc8ba79e6a239404c2bf52c2b873df542
parent268c8034165639f56a857ba266ba4bc892d7cc22 (diff)
downloadceilometer-bec2e27dd5bb18f5912f95a160f8258e3d813e9e.tar.gz
Keep the instance_type meta from polling and notification consistent
The metadata.instance_type from polling is set to flavor id, but from notifications, it is set to flavor name. Change-Id: I4f260e5c7e29fa7bf890930abc8be4ec5b611554 Closes-Bug: 1489132 (cherry picked from commit 4dfce21e07052ac9518fa169bd6d4ca80e9373ef)
-rw-r--r--ceilometer/compute/pollsters/util.py3
-rw-r--r--ceilometer/tests/compute/pollsters/test_instance.py9
-rw-r--r--ceilometer/tests/compute/pollsters/test_location_metadata.py3
3 files changed, 13 insertions, 2 deletions
diff --git a/ceilometer/compute/pollsters/util.py b/ceilometer/compute/pollsters/util.py
index 719818d0..f5e9a80b 100644
--- a/ceilometer/compute/pollsters/util.py
+++ b/ceilometer/compute/pollsters/util.py
@@ -33,10 +33,11 @@ INSTANCE_PROPERTIES = [
def _get_metadata_from_object(instance):
"""Return a metadata dictionary for the instance."""
+ instance_type = instance.flavor['name'] if instance.flavor else None
metadata = {
'display_name': instance.name,
'name': getattr(instance, 'OS-EXT-SRV-ATTR:instance_name', u''),
- 'instance_type': (instance.flavor['id'] if instance.flavor else None),
+ 'instance_type': instance_type,
'host': instance.hostId,
'flavor': instance.flavor,
'status': instance.status.lower(),
diff --git a/ceilometer/tests/compute/pollsters/test_instance.py b/ceilometer/tests/compute/pollsters/test_instance.py
index eaa144d2..246fdcb4 100644
--- a/ceilometer/tests/compute/pollsters/test_instance.py
+++ b/ceilometer/tests/compute/pollsters/test_instance.py
@@ -75,3 +75,12 @@ class TestInstancePollster(base.TestPollsterBase):
pollster = pollsters_instance.InstancePollster()
samples = list(pollster.get_samples(mgr, {}, [self.instance]))
self.assertNotIn('user_metadata', samples[0].resource_metadata)
+
+ @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock())
+ def test_get_flavor_name_as_metadata_instance_type(self):
+ mgr = manager.AgentManager()
+ pollster = pollsters_instance.InstancePollster()
+ samples = list(pollster.get_samples(mgr, {}, [self.instance]))
+ self.assertEqual(1, len(samples))
+ self.assertEqual('m1.small',
+ samples[0].resource_metadata['instance_type'])
diff --git a/ceilometer/tests/compute/pollsters/test_location_metadata.py b/ceilometer/tests/compute/pollsters/test_location_metadata.py
index 6faa4619..5ac3c846 100644
--- a/ceilometer/tests/compute/pollsters/test_location_metadata.py
+++ b/ceilometer/tests/compute/pollsters/test_location_metadata.py
@@ -66,7 +66,8 @@ class TestLocationMetadata(base.BaseTestCase):
'links': [{"rel": "bookmark",
'href': 2}]},
'hostId': '1234-5678',
- 'flavor': {'id': 1,
+ 'flavor': {'name': 'm1.tiny',
+ 'id': 1,
'disk': 20,
'ram': 512,
'vcpus': 2,