From 9ba6beda437faac138cfea4e0ae21656c08ea394 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Mon, 12 Dec 2011 16:02:36 +0100 Subject: floating-ip: return UUID of instance rather than ID Returning the database ID seems useless now that instances are identified by UUID. So it seems more reasonable to return UUID here too. Change-Id: I36fa6ded284158facb891dd081aa3d3f45c7c5ee Signed-off-by: Julien Danjou --- nova/api/openstack/v2/contrib/floating_ips.py | 2 +- nova/tests/api/openstack/v2/contrib/test_floating_ips.py | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/nova/api/openstack/v2/contrib/floating_ips.py b/nova/api/openstack/v2/contrib/floating_ips.py index 760ed65ab..f6be55e6e 100644 --- a/nova/api/openstack/v2/contrib/floating_ips.py +++ b/nova/api/openstack/v2/contrib/floating_ips.py @@ -39,7 +39,7 @@ def _translate_floating_ip_view(floating_ip): except (TypeError, KeyError): result['fixed_ip'] = None try: - result['instance_id'] = floating_ip['fixed_ip']['instance_id'] + result['instance_id'] = floating_ip['fixed_ip']['instance']['uuid'] except (TypeError, KeyError): result['instance_id'] = None return {'floating_ip': result} diff --git a/nova/tests/api/openstack/v2/contrib/test_floating_ips.py b/nova/tests/api/openstack/v2/contrib/test_floating_ips.py index 0147abe9f..0c2c652da 100644 --- a/nova/tests/api/openstack/v2/contrib/test_floating_ips.py +++ b/nova/tests/api/openstack/v2/contrib/test_floating_ips.py @@ -25,6 +25,8 @@ from nova import test from nova.tests.api.openstack import fakes from nova import utils +FAKE_UUID = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' + def network_api_get_floating_ip(self, context, id): return {'id': 1, 'address': '10.10.10.10', @@ -33,13 +35,15 @@ def network_api_get_floating_ip(self, context, id): def network_api_get_floating_ip_by_address(self, context, address): return {'id': 1, 'address': '10.10.10.10', - 'fixed_ip': {'address': '10.0.0.1', 'instance_id': 1}} + 'fixed_ip': {'address': '10.0.0.1', + 'instance': {'uuid': FAKE_UUID}}} def network_api_get_floating_ips_by_project(self, context): return [{'id': 1, 'address': '10.10.10.10', - 'fixed_ip': {'address': '10.0.0.1', 'instance_id': 1}}, + 'fixed_ip': {'address': '10.0.0.1', + 'instance': {'uuid': FAKE_UUID}}}, {'id': 2, 'address': '10.10.10.11'}] @@ -155,7 +159,7 @@ class FloatingIpTest(test.TestCase): req = fakes.HTTPRequest.blank('/v2/123/os-floating-ips') res_dict = self.controller.index(req) - response = {'floating_ips': [{'instance_id': 1, + response = {'floating_ips': [{'instance_id': FAKE_UUID, 'ip': '10.10.10.10', 'fixed_ip': '10.0.0.1', 'id': 1}, @@ -176,7 +180,8 @@ class FloatingIpTest(test.TestCase): def test_show_associated_floating_ip(self): def get_floating_ip(self, context, id): return {'id': 1, 'address': '10.10.10.10', - 'fixed_ip': {'address': '10.0.0.1', 'instance_id': 1}} + 'fixed_ip': {'address': '10.0.0.1', + 'instance': {'uuid': FAKE_UUID}}} self.stubs.Set(network.api.API, "get_floating_ip", get_floating_ip) req = fakes.HTTPRequest.blank('/v2/123/os-floating-ips/1') @@ -184,7 +189,7 @@ class FloatingIpTest(test.TestCase): self.assertEqual(res_dict['floating_ip']['id'], 1) self.assertEqual(res_dict['floating_ip']['ip'], '10.10.10.10') - self.assertEqual(res_dict['floating_ip']['instance_id'], 1) + self.assertEqual(res_dict['floating_ip']['instance_id'], FAKE_UUID) # test floating ip allocate/release(deallocate) def test_floating_ip_allocate_no_free_ips(self): -- cgit