summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorLin Hua Cheng <lin-hua.cheng@hp.com>2012-06-20 19:37:19 +0000
committerLin Hua Cheng <lin-hua.cheng@hp.com>2012-06-20 22:07:00 +0000
commit52fd1536a897a24ba07b5f4459edb15e581b7adc (patch)
tree533f55bdc9c198373d837fba937960482061a999 /nova
parentcf1854946838bf14607d05acd6f347702372b744 (diff)
downloadnova-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.py7
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py15
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,