diff options
author | Lin Hua Cheng <lin-hua.cheng@hp.com> | 2012-06-20 19:37:19 +0000 |
---|---|---|
committer | Lin Hua Cheng <lin-hua.cheng@hp.com> | 2012-06-20 22:07:00 +0000 |
commit | 52fd1536a897a24ba07b5f4459edb15e581b7adc (patch) | |
tree | 533f55bdc9c198373d837fba937960482061a999 /nova | |
parent | cf1854946838bf14607d05acd6f347702372b744 (diff) | |
download | nova-52fd1536a897a24ba07b5f4459edb15e581b7adc.tar.gz nova-52fd1536a897a24ba07b5f4459edb15e581b7adc.tar.xz nova-52fd1536a897a24ba07b5f4459edb15e581b7adc.zip |
Add instance_id in Usage API response.
Fixes bug 1003093.
Required to fix horizon bug 1003299.
Add the instance_id in the server usage
response. The value of the id is the UUID
of the instance.
Change-Id: I77e0f64db456b4c80a03fa922dd18146b94d1187
Diffstat (limited to 'nova')
-rw-r--r-- | nova/api/openstack/compute/contrib/simple_tenant_usage.py | 7 | ||||
-rw-r--r-- | nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py | 15 |
2 files changed, 17 insertions, 5 deletions
diff --git a/nova/api/openstack/compute/contrib/simple_tenant_usage.py b/nova/api/openstack/compute/contrib/simple_tenant_usage.py index 0179ea75b..7879cf381 100644 --- a/nova/api/openstack/compute/contrib/simple_tenant_usage.py +++ b/nova/api/openstack/compute/contrib/simple_tenant_usage.py @@ -44,9 +44,9 @@ def make_usage(elem): server_usages = xmlutil.SubTemplateElement(elem, 'server_usages') server_usage = xmlutil.SubTemplateElement(server_usages, 'server_usage', selector='server_usages') - for subelem_tag in ('name', 'hours', 'memory_mb', 'local_gb', 'vcpus', - 'tenant_id', 'flavor', 'started_at', 'ended_at', - 'state', 'uptime'): + for subelem_tag in ('instance_id', 'name', 'hours', 'memory_mb', + 'local_gb', 'vcpus', 'tenant_id', 'flavor', + 'started_at', 'ended_at', 'state', 'uptime'): subelem = xmlutil.SubTemplateElement(server_usage, subelem_tag) subelem.text = subelem_tag @@ -133,6 +133,7 @@ class SimpleTenantUsageController(object): flavor = flavors[flavor_type] + info['instance_id'] = instance['uuid'] info['name'] = instance['display_name'] info['memory_mb'] = flavor['memory_mb'] diff --git a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py index d9a069b6e..b842d718e 100644 --- a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py +++ b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py @@ -57,6 +57,7 @@ def fake_instance_type_get(self, context, instance_type_id): def get_fake_db_instance(start, end, instance_id, tenant_id): return {'id': instance_id, + 'uuid': '00000000-0000-0000-0000-00000000000000%02d' % instance_id, 'image_ref': '1', 'project_id': tenant_id, 'user_id': 'fakeuser', @@ -149,10 +150,11 @@ class SimpleTenantUsageTest(test.TestCase): self.assertEqual(usages[i].get('server_usages'), None) def test_verify_show(self): + tenant_id = 0 req = webob.Request.blank( '/v2/faketenant_0/os-simple-tenant-usage/' - 'faketenant_0?start=%s&end=%s' % - (START.isoformat(), STOP.isoformat())) + 'faketenant_%s?start=%s&end=%s' % + (tenant_id, START.isoformat(), STOP.isoformat())) req.method = "GET" req.headers["content-type"] = "application/json" @@ -164,11 +166,14 @@ class SimpleTenantUsageTest(test.TestCase): usage = res_dict['tenant_usage'] servers = usage['server_usages'] self.assertEqual(len(usage['server_usages']), SERVERS) + uuids = ['00000000-0000-0000-0000-00000000000000%02d' % + (x + (tenant_id * SERVERS)) for x in xrange(SERVERS)] for j in xrange(SERVERS): delta = STOP - START uptime = delta.days * 24 * 3600 + delta.seconds self.assertEqual(int(servers[j]['uptime']), uptime) self.assertEqual(int(servers[j]['hours']), HOURS) + self.assertTrue(servers[j]['instance_id'] in uuids) def test_verify_show_cant_view_other_tenant(self): req = webob.Request.blank( @@ -237,6 +242,7 @@ class SimpleTenantUsageSerializerTest(test.TestCase): start=yesterday, stop=today, server_usages=[dict( + instance_id='00000000-0000-0000-0000-0000000000000000', name='test', hours=24, memory_mb=1024, @@ -249,6 +255,7 @@ class SimpleTenantUsageSerializerTest(test.TestCase): state='terminated', uptime=86400), dict( + instance_id='00000000-0000-0000-0000-0000000000000002', name='test2', hours=12, memory_mb=512, @@ -283,6 +290,7 @@ class SimpleTenantUsageSerializerTest(test.TestCase): start=yesterday, stop=today, server_usages=[dict( + instance_id='00000000-0000-0000-0000-0000000000000001', name='test1', hours=24, memory_mb=1024, @@ -295,6 +303,7 @@ class SimpleTenantUsageSerializerTest(test.TestCase): state='terminated', uptime=86400), dict( + instance_id='00000000-0000-0000-0000-0000000000000002', name='test2', hours=42, memory_mb=4201, @@ -317,6 +326,7 @@ class SimpleTenantUsageSerializerTest(test.TestCase): start=today, stop=yesterday, server_usages=[dict( + instance_id='00000000-0000-0000-0000-0000000000000003', name='test3', hours=24, memory_mb=1024, @@ -329,6 +339,7 @@ class SimpleTenantUsageSerializerTest(test.TestCase): state='terminated', uptime=86400), dict( + instance_id='00000000-0000-0000-0000-0000000000000002', name='test2', hours=42, memory_mb=4201, |