diff options
author | liu-sheng <liusheng@huawei.com> | 2015-08-27 11:14:42 +0800 |
---|---|---|
committer | liu-sheng <liusheng@huawei.com> | 2015-08-31 09:37:40 +0800 |
commit | bec2e27dd5bb18f5912f95a160f8258e3d813e9e (patch) | |
tree | 20016fadc8ba79e6a239404c2bf52c2b873df542 | |
parent | 268c8034165639f56a857ba266ba4bc892d7cc22 (diff) | |
download | ceilometer-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.py | 3 | ||||
-rw-r--r-- | ceilometer/tests/compute/pollsters/test_instance.py | 9 | ||||
-rw-r--r-- | ceilometer/tests/compute/pollsters/test_location_metadata.py | 3 |
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, |