From e1eca2190b66c745b425579affd2407e0ffd11c6 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Wed, 13 Jul 2011 15:59:05 -0400 Subject: beginning server detail spec 1.1 fixup --- nova/api/openstack/common.py | 23 +++++++ nova/api/openstack/views/servers.py | 27 ++++++-- nova/tests/api/openstack/test_common.py | 12 ++++ nova/tests/api/openstack/test_servers.py | 103 ++++++++++++++++++++++++++----- 4 files changed, 143 insertions(+), 22 deletions(-) diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index 79969d393..26b8c1946 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -136,6 +136,29 @@ def get_id_from_href(href): raise ValueError(_('could not parse id from href')) +def get_uuid_from_href(href): + """Return the uuid portion of a url. + + Given: 'http://www.foo.com/bar/123?q=4' + Returns: '123' + + In order to support local hrefs, the href argument can be just an id: + Given: '123' + Returns: '123' + + """ + if not '/' in href: + return href + try: + href = urlparse(href).path.split('/')[-1] + if href == '': + raise Exception + return href + except: + LOG.debug(_("Error extracting uuid from href: %s") % href) + raise ValueError(_('could not parse uuid from href')) + + def remove_version_from_href(href): """Removes the api version from the href. diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 67fb6a84e..7fb180246 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -50,7 +50,7 @@ class ViewBuilder(object): else: server = self._build_simple(inst) - self._build_extra(server, inst) + self._build_extra(server['server'], inst) return server @@ -99,7 +99,6 @@ class ViewBuilder(object): self._build_image(inst_dict, inst) self._build_flavor(inst_dict, inst) - inst_dict['uuid'] = inst['uuid'] return dict(server=inst_dict) def _build_image(self, response, inst): @@ -117,6 +116,9 @@ class ViewBuilder(object): class ViewBuilderV10(ViewBuilder): """Model an Openstack API V1.0 server response.""" + def _build_extra(self, response, inst): + response['uuid'] = inst['uuid'] + def _build_image(self, response, inst): if 'image_ref' in dict(inst): image_ref = inst['image_ref'] @@ -143,16 +145,31 @@ class ViewBuilderV11(ViewBuilder): image_href = inst['image_ref'] if str(image_href).isdigit(): image_href = int(image_href) - response['imageRef'] = image_href + response['image'] = { + "id": common.get_uuid_from_href(image_href), + "links": [ + { + "rel": "self", + "href": image_href, + }, + { + "rel": "bookmark", + "href": common.remove_version_from_href(image_href), + }, + ] + } def _build_flavor(self, response, inst): if "instance_type" in dict(inst): flavor_id = inst["instance_type"]['flavorid'] flavor_ref = self.flavor_builder.generate_href(flavor_id) - response["flavorRef"] = flavor_ref + response["flavor"] = { + "id": common.get_uuid_from_href(flavor_ref), + } def _build_extra(self, response, inst): self._build_links(response, inst) + response['id'] = inst['uuid'] def _build_links(self, response, inst): href = self.generate_href(inst["id"]) @@ -169,7 +186,7 @@ class ViewBuilderV11(ViewBuilder): }, ] - response["server"]["links"] = links + response["links"] = links def generate_href(self, server_id): """Create an url that refers to a specific server id.""" diff --git a/nova/tests/api/openstack/test_common.py b/nova/tests/api/openstack/test_common.py index 7440bccfb..864bbd8cc 100644 --- a/nova/tests/api/openstack/test_common.py +++ b/nova/tests/api/openstack/test_common.py @@ -223,3 +223,15 @@ class MiscFunctionsTest(test.TestCase): self.assertRaises(ValueError, common.get_id_from_href, fixture) + + def test_get_uuid_from_href(self): + fixture = 'http://www.testsite.com/dir/45' + actual = common.get_uuid_from_href(fixture) + expected = '45' + self.assertEqual(actual, expected) + + def test_get_uuid_from_href_bad_request(self): + fixture = 'http://' + self.assertRaises(ValueError, + common.get_uuid_from_href, + fixture) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 775f66ad0..0d122762b 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -124,11 +124,11 @@ def instance_addresses(context, instance_id): def stub_instance(id, user_id=1, private_address=None, public_addresses=None, host=None, power_state=0, reservation_id="", - uuid=FAKE_UUID): + uuid=FAKE_UUID, image_ref="10", flavor_ref="1"): metadata = [] metadata.append(InstanceMetadata(key='seq', value=id)) - inst_type = instance_types.get_instance_type_by_flavor_id(1) + inst_type = instance_types.get_instance_type_by_flavor_id(int(flavor_ref)) if public_addresses is None: public_addresses = list() @@ -146,7 +146,7 @@ def stub_instance(id, user_id=1, private_address=None, public_addresses=None, "admin_pass": "", "user_id": user_id, "project_id": "", - "image_ref": "10", + "image_ref": image_ref, "kernel_id": "", "ramdisk_id": "", "launch_index": 0, @@ -277,24 +277,93 @@ class ServersTest(test.TestCase): self.assertEqual(res_dict['server']['name'], 'server1') def test_get_server_by_id_v1_1(self): + self.maxDiff = None + image_ref = "http://localhost/v1.1/images/10" + image_bookmark = "http://localhost/images/10" + #flavor_ref = "http://localhost/v1.1/flavors/1" + flavor_ref = "1" + flavor_bookmark = "http://localhost/flavors/1" + private = "192.168.0.3" + public = ["1.2.3.4"] + def _return_server(context, id): + + return stub_instance(1, + private_address=private, + public_addresses=public, + power_state=0, + image_ref=image_ref, + flavor_ref=flavor_ref, + ) + self.stubs.Set(nova.db.api, 'instance_get', _return_server) + req = webob.Request.blank('/v1.1/servers/1') res = req.get_response(fakes.wsgi_app()) res_dict = json.loads(res.body) - self.assertEqual(res_dict['server']['id'], 1) - self.assertEqual(res_dict['server']['name'], 'server1') - - expected_links = [ - { - "rel": "self", - "href": "http://localhost/v1.1/servers/1", - }, - { - "rel": "bookmark", - "href": "http://localhost/servers/1", - }, - ] + expected_server = { + "server": { + "id": FAKE_UUID, + #"updated": "FIXME", + #"created": "FIXME", + "name": "server1", + "status": "BUILD", + "hostId": '', + "image": { + "id": "10", + "links": [ + { + "rel": "self", + "href": image_ref, + }, + { + "rel": "bookmark", + "href": image_bookmark, + }, + ], + }, + "flavor": { + "id": "1", + #"links": [ + #{ + #"rel": "self", + #"href": flavor_ref, + #}, + #{ + #"rel": "bookmark", + #"href": flavor_bookmark, + #}, + #], + }, + "addresses": { + "public": [ + { + "version": 4, + "addr": public[0], + }, + ], + "private":[ + { + "version": 4, + "addr": private, + }, + ], + }, + "metadata": { + "seq": "1", + }, + "links": [ + { + "rel": "self", + "href": "http://localhost/v1.1/servers/1", + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/1", + }, + ], + } + } - self.assertEqual(res_dict['server']['links'], expected_links) + self.assertDictEqual(res_dict, expected_server) def test_get_server_by_id_with_addresses_xml(self): private = "192.168.0.3" -- cgit From 38f949608fc3faaae855bf91719a074c1c545a1d Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Wed, 13 Jul 2011 16:22:55 -0400 Subject: updated to support and check for flavor links in server detail response --- nova/api/openstack/views/servers.py | 11 +++++++++++ nova/tests/api/openstack/test_servers.py | 31 ++++++++++++++++--------------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 7fb180246..e17edd6b6 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -163,8 +163,19 @@ class ViewBuilderV11(ViewBuilder): if "instance_type" in dict(inst): flavor_id = inst["instance_type"]['flavorid'] flavor_ref = self.flavor_builder.generate_href(flavor_id) + flavor_bookmark = self.flavor_builder.generate_bookmark(flavor_id) response["flavor"] = { "id": common.get_uuid_from_href(flavor_ref), + "links": [ + { + "rel": "self", + "href": flavor_ref, + }, + { + "rel": "bookmark", + "href": flavor_bookmark, + }, + ] } def _build_extra(self, response, inst): diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 0d122762b..ab24b328a 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -124,11 +124,12 @@ def instance_addresses(context, instance_id): def stub_instance(id, user_id=1, private_address=None, public_addresses=None, host=None, power_state=0, reservation_id="", - uuid=FAKE_UUID, image_ref="10", flavor_ref="1"): + uuid=FAKE_UUID, image_ref="10", flavor_id="1"): metadata = [] metadata.append(InstanceMetadata(key='seq', value=id)) - inst_type = instance_types.get_instance_type_by_flavor_id(int(flavor_ref)) + + inst_type = instance_types.get_instance_type_by_flavor_id(int(flavor_id)) if public_addresses is None: public_addresses = list() @@ -280,8 +281,8 @@ class ServersTest(test.TestCase): self.maxDiff = None image_ref = "http://localhost/v1.1/images/10" image_bookmark = "http://localhost/images/10" - #flavor_ref = "http://localhost/v1.1/flavors/1" - flavor_ref = "1" + flavor_ref = "http://localhost/v1.1/flavors/1" + flavor_id = "1" flavor_bookmark = "http://localhost/flavors/1" private = "192.168.0.3" public = ["1.2.3.4"] @@ -292,7 +293,7 @@ class ServersTest(test.TestCase): public_addresses=public, power_state=0, image_ref=image_ref, - flavor_ref=flavor_ref, + flavor_id=flavor_id, ) self.stubs.Set(nova.db.api, 'instance_get', _return_server) @@ -322,16 +323,16 @@ class ServersTest(test.TestCase): }, "flavor": { "id": "1", - #"links": [ - #{ - #"rel": "self", - #"href": flavor_ref, - #}, - #{ - #"rel": "bookmark", - #"href": flavor_bookmark, - #}, - #], + "links": [ + { + "rel": "self", + "href": flavor_ref, + }, + { + "rel": "bookmark", + "href": flavor_bookmark, + }, + ], }, "addresses": { "public": [ -- cgit From 11f05e040ad50c64e4de46dc8f8e6246956f774b Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Thu, 14 Jul 2011 10:31:42 -0400 Subject: add updated and created to servers detail test, and make it work --- nova/api/openstack/views/servers.py | 2 ++ nova/tests/api/openstack/test_servers.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index e17edd6b6..5d906f3df 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -181,6 +181,8 @@ class ViewBuilderV11(ViewBuilder): def _build_extra(self, response, inst): self._build_links(response, inst) response['id'] = inst['uuid'] + response['created'] = inst['created_at'] + response['updated'] = inst['updated_at'] def _build_links(self, response, inst): href = self.generate_href(inst["id"]) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index ab24b328a..4385e1c14 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -144,6 +144,8 @@ def stub_instance(id, user_id=1, private_address=None, public_addresses=None, instance = { "id": int(id), + "created_at": "2010-10-10T12:00:00Z", + "updated_at": "2010-11-11T11:00:00Z", "admin_pass": "", "user_id": user_id, "project_id": "", @@ -303,8 +305,8 @@ class ServersTest(test.TestCase): expected_server = { "server": { "id": FAKE_UUID, - #"updated": "FIXME", - #"created": "FIXME", + "updated": "2010-11-11T11:00:00Z", + "created": "2010-10-10T12:00:00Z", "name": "server1", "status": "BUILD", "hostId": '', -- cgit From 3041f2e9eb90e447adbb48827c2c85ca27d436e6 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Thu, 14 Jul 2011 13:25:40 -0400 Subject: Added progress attribute to servers responses --- nova/api/openstack/views/servers.py | 4 ++ nova/tests/api/openstack/test_servers.py | 99 +++++++++++++++++++++++++++++++- 2 files changed, 101 insertions(+), 2 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 5d906f3df..3f13e469a 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -183,6 +183,10 @@ class ViewBuilderV11(ViewBuilder): response['id'] = inst['uuid'] response['created'] = inst['created_at'] response['updated'] = inst['updated_at'] + if response['status'] == "ACTIVE": + response['progress'] = 100 + elif response['status'] == "BUILD": + response['progress'] = 0 def _build_links(self, response, inst): href = self.generate_href(inst["id"]) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 4385e1c14..e00dd825e 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -307,22 +307,117 @@ class ServersTest(test.TestCase): "id": FAKE_UUID, "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", + "progress": 0, "name": "server1", "status": "BUILD", "hostId": '', + #"accessIPv4" : "67.23.10.132", + #"accessIPv6" : "::babe:67.23.10.132", "image": { "id": "10", + "links": [ + { + "rel": "self", + "href": image_ref, + }, + { + "rel": "bookmark", + "href": image_bookmark, + }, + ], + }, + "flavor": { + "id": "1", "links": [ { "rel": "self", - "href": image_ref, + "href": flavor_ref, }, { "rel": "bookmark", - "href": image_bookmark, + "href": flavor_bookmark, }, ], }, + "addresses": { + "public": [ + { + "version": 4, + "addr": public[0], + }, + ], + "private":[ + { + "version": 4, + "addr": private, + }, + ], + }, + "metadata": { + "seq": "1", + }, + "links": [ + { + "rel": "self", + "href": "http://localhost/v1.1/servers/1", + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/1", + }, + ], + } + } + + self.assertDictEqual(res_dict, expected_server) + + def test_get_server_with_active_status_by_id_v1_1(self): + self.maxDiff = None + image_ref = "http://localhost/v1.1/images/10" + image_bookmark = "http://localhost/images/10" + flavor_ref = "http://localhost/v1.1/flavors/1" + flavor_id = "1" + flavor_bookmark = "http://localhost/flavors/1" + private = "192.168.0.3" + public = ["1.2.3.4"] + def _return_server(context, id): + + return stub_instance(1, + private_address=private, + public_addresses=public, + power_state=1, + image_ref=image_ref, + flavor_id=flavor_id, + ) + self.stubs.Set(nova.db.api, 'instance_get', _return_server) + + req = webob.Request.blank('/v1.1/servers/1') + res = req.get_response(fakes.wsgi_app()) + res_dict = json.loads(res.body) + expected_server = { + "server": { + "id": FAKE_UUID, + "updated": "2010-11-11T11:00:00Z", + "created": "2010-10-10T12:00:00Z", + "progress": 100, + "name": "server1", + "status": "ACTIVE", + "hostId": '', + #"accessIPv4" : "67.23.10.132", + #"accessIPv6" : "::babe:67.23.10.132", + "image": { + "id": "10", + "links": [ + { + "rel": "self", + "href": image_ref, + }, + { + "rel": "bookmark", + "href": image_bookmark, + }, + ], + }, "flavor": { "id": "1", "links": [ -- cgit From 7044080daf2e487a92bba2a9f9b99e3cdb874e88 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Thu, 14 Jul 2011 14:01:04 -0400 Subject: updated image entity for servers requests --- nova/api/openstack/views/servers.py | 37 +++++++----- nova/tests/api/openstack/test_servers.py | 98 ++++++++++++++++++++++++++++---- 2 files changed, 109 insertions(+), 26 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 3f13e469a..968a904d9 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -143,21 +143,28 @@ class ViewBuilderV11(ViewBuilder): def _build_image(self, response, inst): if 'image_ref' in dict(inst): image_href = inst['image_ref'] - if str(image_href).isdigit(): - image_href = int(image_href) - response['image'] = { - "id": common.get_uuid_from_href(image_href), - "links": [ - { - "rel": "self", - "href": image_href, - }, - { - "rel": "bookmark", - "href": common.remove_version_from_href(image_href), - }, - ] - } + #if id is a uuid do: + if image_href == common.get_uuid_from_href(image_href): + image_id = image_href + _bookmark = self.image_builder.generate_bookmark(image_href) + response['image'] = { + "id": image_id, + "links": [ + { + "rel": "bookmark", + "href": _bookmark, + }, + ] + } + else: + response['image'] = { + "links": [ + { + "rel": "bookmark", + "href": image_href, + }, + ] + } def _build_flavor(self, response, inst): if "instance_type" in dict(inst): diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index e00dd825e..2fe236291 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -281,7 +281,6 @@ class ServersTest(test.TestCase): def test_get_server_by_id_v1_1(self): self.maxDiff = None - image_ref = "http://localhost/v1.1/images/10" image_bookmark = "http://localhost/images/10" flavor_ref = "http://localhost/v1.1/flavors/1" flavor_id = "1" @@ -294,7 +293,7 @@ class ServersTest(test.TestCase): private_address=private, public_addresses=public, power_state=0, - image_ref=image_ref, + image_ref=image_bookmark, flavor_id=flavor_id, ) self.stubs.Set(nova.db.api, 'instance_get', _return_server) @@ -314,12 +313,93 @@ class ServersTest(test.TestCase): #"accessIPv4" : "67.23.10.132", #"accessIPv6" : "::babe:67.23.10.132", "image": { - "id": "10", "links": [ { - "rel": "self", - "href": image_ref, + "rel": "bookmark", + "href": image_bookmark, + }, + ], + }, + "flavor": { + "id": "1", + "links": [ + { + "rel": "self", + "href": flavor_ref, + }, + { + "rel": "bookmark", + "href": flavor_bookmark, + }, + ], + }, + "addresses": { + "public": [ + { + "version": 4, + "addr": public[0], }, + ], + "private":[ + { + "version": 4, + "addr": private, + }, + ], + }, + "metadata": { + "seq": "1", + }, + "links": [ + { + "rel": "self", + "href": "http://localhost/v1.1/servers/1", + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/1", + }, + ], + } + } + + self.assertDictEqual(res_dict, expected_server) + + def test_get_server_with_active_status_by_id_v1_1(self): + self.maxDiff = None + image_bookmark = "http://localhost/images/10" + flavor_ref = "http://localhost/v1.1/flavors/1" + flavor_id = "1" + flavor_bookmark = "http://localhost/flavors/1" + private = "192.168.0.3" + public = ["1.2.3.4"] + def _return_server(context, id): + + return stub_instance(1, + private_address=private, + public_addresses=public, + power_state=1, + image_ref=image_bookmark, + flavor_id=flavor_id, + ) + self.stubs.Set(nova.db.api, 'instance_get', _return_server) + + req = webob.Request.blank('/v1.1/servers/1') + res = req.get_response(fakes.wsgi_app()) + res_dict = json.loads(res.body) + expected_server = { + "server": { + "id": FAKE_UUID, + "updated": "2010-11-11T11:00:00Z", + "created": "2010-10-10T12:00:00Z", + "progress": 100, + "name": "server1", + "status": "ACTIVE", + "hostId": '', + #"accessIPv4" : "67.23.10.132", + #"accessIPv6" : "::babe:67.23.10.132", + "image": { + "links": [ { "rel": "bookmark", "href": image_bookmark, @@ -371,9 +451,9 @@ class ServersTest(test.TestCase): self.assertDictEqual(res_dict, expected_server) - def test_get_server_with_active_status_by_id_v1_1(self): + def test_get_server_with_id_image_ref_by_id_v1_1(self): self.maxDiff = None - image_ref = "http://localhost/v1.1/images/10" + image_ref = "10" image_bookmark = "http://localhost/images/10" flavor_ref = "http://localhost/v1.1/flavors/1" flavor_id = "1" @@ -408,10 +488,6 @@ class ServersTest(test.TestCase): "image": { "id": "10", "links": [ - { - "rel": "self", - "href": image_ref, - }, { "rel": "bookmark", "href": image_bookmark, -- cgit From 11e76f0e36f9da1840a9356b2e0a0dba87df3040 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Thu, 14 Jul 2011 14:35:11 -0400 Subject: removed self links from flavors --- nova/api/openstack/views/servers.py | 13 +++++-------- nova/tests/api/openstack/test_servers.py | 14 +------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 968a904d9..9d6699ed0 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -174,10 +174,6 @@ class ViewBuilderV11(ViewBuilder): response["flavor"] = { "id": common.get_uuid_from_href(flavor_ref), "links": [ - { - "rel": "self", - "href": flavor_ref, - }, { "rel": "bookmark", "href": flavor_bookmark, @@ -190,10 +186,11 @@ class ViewBuilderV11(ViewBuilder): response['id'] = inst['uuid'] response['created'] = inst['created_at'] response['updated'] = inst['updated_at'] - if response['status'] == "ACTIVE": - response['progress'] = 100 - elif response['status'] == "BUILD": - response['progress'] = 0 + if 'status' in response: + if response['status'] == "ACTIVE": + response['progress'] = 100 + elif response['status'] == "BUILD": + response['progress'] = 0 def _build_links(self, response, inst): href = self.generate_href(inst["id"]) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 2fe236291..c925514a6 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -323,11 +323,7 @@ class ServersTest(test.TestCase): "flavor": { "id": "1", "links": [ - { - "rel": "self", - "href": flavor_ref, - }, - { + { "rel": "bookmark", "href": flavor_bookmark, }, @@ -409,10 +405,6 @@ class ServersTest(test.TestCase): "flavor": { "id": "1", "links": [ - { - "rel": "self", - "href": flavor_ref, - }, { "rel": "bookmark", "href": flavor_bookmark, @@ -497,10 +489,6 @@ class ServersTest(test.TestCase): "flavor": { "id": "1", "links": [ - { - "rel": "self", - "href": flavor_ref, - }, { "rel": "bookmark", "href": flavor_bookmark, -- cgit From 8435ffcaa7c154809c2687e011911cf1507497f2 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Thu, 14 Jul 2011 15:55:47 -0400 Subject: Updated old tests --- nova/tests/api/openstack/test_servers.py | 99 +++++++++++++++++++++++++------- 1 file changed, 79 insertions(+), 20 deletions(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index c925514a6..279a149d3 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -649,7 +649,7 @@ class ServersTest(test.TestCase): req = webob.Request.blank('/v1.1/servers/1') res = req.get_response(fakes.wsgi_app()) res_dict = json.loads(res.body) - self.assertEqual(res_dict['server']['id'], 1) + self.assertEqual(res_dict['server']['id'], FAKE_UUID) self.assertEqual(res_dict['server']['name'], 'server1') addresses = res_dict['server']['addresses'] # RM(4047): Figure otu what is up with the 1.1 api and multi-nic @@ -729,9 +729,9 @@ class ServersTest(test.TestCase): res_dict = json.loads(res.body) for i, s in enumerate(res_dict['servers']): - self.assertEqual(s['id'], i) + self.assertEqual(s['id'], FAKE_UUID) self.assertEqual(s['name'], 'server%d' % i) - self.assertEqual(s.get('imageId', None), None) + self.assertEqual(s.get('image', None), None) expected_links = [ { @@ -790,13 +790,13 @@ class ServersTest(test.TestCase): req = webob.Request.blank('/v1.1/servers?marker=2') res = req.get_response(fakes.wsgi_app()) servers = json.loads(res.body)['servers'] - self.assertEqual([s['id'] for s in servers], [3, 4]) + self.assertEqual([s['name'] for s in servers], ["server3", "server4"]) def test_get_servers_with_limit_and_marker(self): req = webob.Request.blank('/v1.1/servers?limit=2&marker=1') res = req.get_response(fakes.wsgi_app()) servers = json.loads(res.body)['servers'] - self.assertEqual([s['id'] for s in servers], [2, 3]) + self.assertEqual([s['name'] for s in servers], ['server2', 'server3']) def test_get_servers_with_bad_marker(self): req = webob.Request.blank('/v1.1/servers?limit=2&marker=asdf') @@ -807,8 +807,16 @@ class ServersTest(test.TestCase): def _setup_for_create_instance(self): """Shared implementation for tests below that create instance""" def instance_create(context, inst): - return {'id': 1, 'display_name': 'server_test', - 'uuid': FAKE_UUID} + inst_type = instance_types.get_instance_type_by_flavor_id(3) + image_ref = 'http://localhost/images/2' + return {'id': 1, + 'display_name': 'server_test', + 'uuid': FAKE_UUID, + 'instance_type': dict(inst_type), + 'image_ref': image_ref, + 'created_at': '2010-10-10T12:00:00Z', + 'updated_at': '2010-11-11T11:00:00Z', + } def server_update(context, id, params): return instance_create(context, id) @@ -996,8 +1004,25 @@ class ServersTest(test.TestCase): def test_create_instance_v1_1(self): self._setup_for_create_instance() - image_href = 'http://localhost/v1.1/images/2' - flavor_ref = 'http://localhost/v1.1/flavors/3' + image_href = 'http://localhost/images/2' + flavor_ref = 'http://localhost/flavors/3' + expected_flavor = { + "id": "3", + "links": [ + { + "rel": "bookmark", + "href": 'http://localhost/flavors/3', + }, + ], + } + expected_image = { + "links": [ + { + "rel": "bookmark", + "href": 'http://localhost/images/2', + }, + ], + } body = { 'server': { 'name': 'server_test', @@ -1021,9 +1046,8 @@ class ServersTest(test.TestCase): server = json.loads(res.body)['server'] self.assertEqual(16, len(server['adminPass'])) self.assertEqual('server_test', server['name']) - self.assertEqual(1, server['id']) - self.assertEqual(flavor_ref, server['flavorRef']) - self.assertEqual(image_href, server['imageRef']) + self.assertEqual(expected_flavor, server['flavor']) + self.assertEqual(expected_image, server['image']) self.assertEqual(res.status_int, 200) def test_create_instance_v1_1_bad_href(self): @@ -1045,8 +1069,26 @@ class ServersTest(test.TestCase): def test_create_instance_v1_1_local_href(self): self._setup_for_create_instance() - image_id = 2 - flavor_ref = 'http://localhost/v1.1/flavors/3' + image_id = "2" + flavor_ref = 'http://localhost/flavors/3' + expected_flavor = { + "id": "3", + "links": [ + { + "rel": "bookmark", + "href": 'http://localhost/flavors/3', + }, + ], + } + expected_image = { + "id": "2", + "links": [ + { + "rel": "bookmark", + "href": 'http://localhost/images/2', + }, + ], + } body = { 'server': { 'name': 'server_test', @@ -1063,9 +1105,8 @@ class ServersTest(test.TestCase): res = req.get_response(fakes.wsgi_app()) server = json.loads(res.body)['server'] - self.assertEqual(1, server['id']) - self.assertEqual(flavor_ref, server['flavorRef']) - self.assertEqual(image_id, server['imageRef']) + self.assertEqual(expected_flavor, server['flavor']) + self.assertEqual(expected_image, server['image']) self.assertEqual(res.status_int, 200) def test_create_instance_with_admin_pass_v1_0(self): @@ -1274,16 +1315,34 @@ class ServersTest(test.TestCase): self.assertEqual(s['metadata']['seq'], str(i)) def test_get_all_server_details_v1_1(self): + expected_flavor = { + "id": "1", + "links": [ + { + "rel": "bookmark", + "href": 'http://localhost/flavors/1', + }, + ], + } + expected_image = { + "id": "10", + "links": [ + { + "rel": "bookmark", + "href": 'http://localhost/images/10', + }, + ], + } req = webob.Request.blank('/v1.1/servers/detail') res = req.get_response(fakes.wsgi_app()) res_dict = json.loads(res.body) for i, s in enumerate(res_dict['servers']): - self.assertEqual(s['id'], i) + self.assertEqual(s['id'], FAKE_UUID) self.assertEqual(s['hostId'], '') self.assertEqual(s['name'], 'server%d' % i) - self.assertEqual(s['imageRef'], 10) - self.assertEqual(s['flavorRef'], 'http://localhost/v1.1/flavors/1') + self.assertEqual(s['image'], expected_image) + self.assertEqual(s['flavor'], expected_flavor) self.assertEqual(s['status'], 'BUILD') self.assertEqual(s['metadata']['seq'], str(i)) -- cgit From c7f8807ab545362c31be91a0f4081c7ef412f1e8 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Thu, 14 Jul 2011 16:02:52 -0400 Subject: pep8 --- nova/tests/api/openstack/test_servers.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 279a149d3..6c6e3f042 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -128,7 +128,6 @@ def stub_instance(id, user_id=1, private_address=None, public_addresses=None, metadata = [] metadata.append(InstanceMetadata(key='seq', value=id)) - inst_type = instance_types.get_instance_type_by_flavor_id(int(flavor_id)) if public_addresses is None: @@ -287,11 +286,12 @@ class ServersTest(test.TestCase): flavor_bookmark = "http://localhost/flavors/1" private = "192.168.0.3" public = ["1.2.3.4"] + def _return_server(context, id): return stub_instance(1, - private_address=private, - public_addresses=public, + private_address=private, + public_addresses=public, power_state=0, image_ref=image_bookmark, flavor_id=flavor_id, @@ -336,7 +336,7 @@ class ServersTest(test.TestCase): "addr": public[0], }, ], - "private":[ + "private": [ { "version": 4, "addr": private, @@ -369,11 +369,12 @@ class ServersTest(test.TestCase): flavor_bookmark = "http://localhost/flavors/1" private = "192.168.0.3" public = ["1.2.3.4"] + def _return_server(context, id): return stub_instance(1, - private_address=private, - public_addresses=public, + private_address=private, + public_addresses=public, power_state=1, image_ref=image_bookmark, flavor_id=flavor_id, @@ -418,7 +419,7 @@ class ServersTest(test.TestCase): "addr": public[0], }, ], - "private":[ + "private": [ { "version": 4, "addr": private, @@ -452,11 +453,12 @@ class ServersTest(test.TestCase): flavor_bookmark = "http://localhost/flavors/1" private = "192.168.0.3" public = ["1.2.3.4"] + def _return_server(context, id): return stub_instance(1, - private_address=private, - public_addresses=public, + private_address=private, + public_addresses=public, power_state=1, image_ref=image_ref, flavor_id=flavor_id, @@ -502,7 +504,7 @@ class ServersTest(test.TestCase): "addr": public[0], }, ], - "private":[ + "private": [ { "version": 4, "addr": private, -- cgit From 6cbce0442cf15d31e7ab05b808939bdc3a244f1b Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Thu, 14 Jul 2011 17:35:10 -0400 Subject: Added ServersTestv1_1 test case Changed servers links to use uuid instead of id --- nova/api/openstack/views/servers.py | 4 +- nova/tests/api/openstack/test_servers.py | 129 +++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 2 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 9d6699ed0..45209d9e2 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -193,8 +193,8 @@ class ViewBuilderV11(ViewBuilder): response['progress'] = 0 def _build_links(self, response, inst): - href = self.generate_href(inst["id"]) - bookmark = self.generate_bookmark(inst["id"]) + href = self.generate_href(inst["uuid"]) + bookmark = self.generate_bookmark(inst["uuid"]) links = [ { diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 6c6e3f042..01dec3f5f 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -2532,3 +2532,132 @@ class TestGetKernelRamdiskFromImage(test.TestCase): kernel_id, ramdisk_id = create_instance_helper.CreateInstanceHelper. \ _do_get_kernel_ramdisk_from_image(image_meta) return kernel_id, ramdisk_id + + +class ServersTestv1_1(test.TestCase): + + def setUp(self): + super(ServersTestv1_1, self).setUp() + self.stubs = stubout.StubOutForTesting() + + fakes.FakeAuthManager.reset_fake_data() + fakes.FakeAuthDatabase.data = {} + fakes.stub_out_networking(self.stubs) + fakes.stub_out_rate_limiting(self.stubs) + fakes.stub_out_auth(self.stubs) + fakes.stub_out_key_pair_funcs(self.stubs) + fakes.stub_out_image_service(self.stubs) + + self.stubs.Set(nova.db.api, 'instance_get', self._return_server) + + def tearDown(self): + self.stubs.UnsetAll() + super(ServersTestv1_1, self).tearDown() + + def _return_server(self, context, id): + return self._stub_instance_v1_1() + + def _stub_instance_v1_1(self): + instance = { + "id": 1, + "created_at": "2010-10-10T12:00:00Z", + "updated_at": "2010-11-11T11:00:00Z", + "admin_pass": "", + "user_id": "", + "project_id": "", + "image_ref": "5", + "kernel_id": "", + "ramdisk_id": "", + "launch_index": 0, + "key_name": "", + "key_data": "", + "state": 0, + "state_description": "", + "memory_mb": 0, + "vcpus": 0, + "local_gb": 0, + "hostname": "", + "host": "", + "instance_type": { + "flavorid": 1, + }, + "user_data": "", + "reservation_id": "", + "mac_address": "", + "scheduled_at": utils.utcnow(), + "launched_at": utils.utcnow(), + "terminated_at": utils.utcnow(), + "availability_zone": "", + "display_name": "test_server", + "display_description": "", + "locked": False, + "metadata": {}, + #"address": , + #"floating_ips": [{"address":ip} for ip in public_addresses]} + "uuid": "deadbeef-feed-edee-beef-d0ea7beefedd"} + + return instance + + def test_get_server(self): + self.maxDiff = None + instance = self._stub_instance_v1_1() + req = webob.Request.blank('/v1.1/servers/1') + res = req.get_response(fakes.wsgi_app()) + res_dict = json.loads(res.body) + + image_bookmark = "http://localhost/images/5" + flavor_bookmark = "http://localhost/flavors/1" + expected_server = { + "server": { + "id": instance['uuid'], + "updated": "2010-11-11T11:00:00Z", + "created": "2010-10-10T12:00:00Z", + "progress": 0, + "name": "test_server", + "status": "BUILD", + "hostId": '', + #"accessIPv4" : "67.23.10.132", + #"accessIPv6" : "::babe:67.23.10.132", + "image": { + "id": "5", + "links": [ + { + "rel": "bookmark", + "href": image_bookmark, + }, + ], + }, + "flavor": { + "id": "1", + "links": [ + { + "rel": "bookmark", + "href": flavor_bookmark, + }, + ], + }, + "addresses": { + "public": [], + "private": [], + }, + "metadata": {}, + "links": [ + { + "rel": "self", + "href": "http://localhost/v1.1/servers/%s" % + instance['uuid'], + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/%s" % + instance['uuid'], + }, + ], + } + } + + import pprint + pp = pprint.PrettyPrinter() + pp.pprint(res_dict) + pp.pprint(expected_server) + self.assertDictEqual(res_dict, expected_server) -- cgit From 8d0ab9a9e927a82160f668ead2bd4daff481796c Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 09:57:28 -0400 Subject: fix issues with uuid and old tests --- nova/tests/api/openstack/test_servers.py | 44 +++++++++++++++----------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 01dec3f5f..87f5e8e6b 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -349,17 +349,17 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/1", + "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), }, { "rel": "bookmark", - "href": "http://localhost/servers/1", + "href": "http://localhost/servers/%s" % (FAKE_UUID), }, ], } } - self.assertDictEqual(res_dict, expected_server) + self.assertDictMatch(res_dict, expected_server) def test_get_server_with_active_status_by_id_v1_1(self): self.maxDiff = None @@ -432,17 +432,17 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/1", + "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), }, { "rel": "bookmark", - "href": "http://localhost/servers/1", + "href": "http://localhost/servers/%s" % (FAKE_UUID), }, ], } } - self.assertDictEqual(res_dict, expected_server) + self.assertDictMatch(res_dict, expected_server) def test_get_server_with_id_image_ref_by_id_v1_1(self): self.maxDiff = None @@ -517,17 +517,17 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/1", + "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), }, { "rel": "bookmark", - "href": "http://localhost/servers/1", + "href": "http://localhost/servers/%s" % (FAKE_UUID), }, ], } } - self.assertDictEqual(res_dict, expected_server) + self.assertDictMatch(res_dict, expected_server) def test_get_server_by_id_with_addresses_xml(self): private = "192.168.0.3" @@ -736,17 +736,17 @@ class ServersTest(test.TestCase): self.assertEqual(s.get('image', None), None) expected_links = [ - { - "rel": "self", - "href": "http://localhost/v1.1/servers/%d" % (i,), - }, - { - "rel": "bookmark", - "href": "http://localhost/servers/%d" % (i,), - }, - ] + { + "rel": "self", + "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/%s" % (FAKE_UUID), + }, + ] - self.assertEqual(s['links'], expected_links) + self.assertEqual(s['links'], expected_links) def test_get_servers_with_limit(self): req = webob.Request.blank('/v1.0/servers?limit=3') @@ -2656,8 +2656,4 @@ class ServersTestv1_1(test.TestCase): } } - import pprint - pp = pprint.PrettyPrinter() - pp.pprint(res_dict) - pp.pprint(expected_server) - self.assertDictEqual(res_dict, expected_server) + self.assertDictMatch(res_dict, expected_server) -- cgit From a36d93372db8556b70d28cf52644da38c7f9a02f Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Fri, 15 Jul 2011 10:29:06 -0400 Subject: Added ViewBuilderV11 tests Fixed bug with build detail --- nova/api/openstack/views/servers.py | 19 ++++--- nova/tests/api/openstack/test_servers.py | 85 +++++++++++++++++++------------- 2 files changed, 64 insertions(+), 40 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 45209d9e2..570488cfa 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -140,6 +140,18 @@ class ViewBuilderV11(ViewBuilder): self.image_builder = image_builder self.base_url = base_url + def _build_detail(self, inst): + response = super(ViewBuilderV11, self)._build_detail(inst) + response['server']['created'] = inst['created_at'] + response['server']['updated'] = inst['updated_at'] + if 'status' in response['server']: + if response['server']['status'] == "ACTIVE": + response['server']['progress'] = 100 + elif response['server']['status'] == "BUILD": + response['server']['progress'] = 0 + return response + + def _build_image(self, response, inst): if 'image_ref' in dict(inst): image_href = inst['image_ref'] @@ -184,13 +196,6 @@ class ViewBuilderV11(ViewBuilder): def _build_extra(self, response, inst): self._build_links(response, inst) response['id'] = inst['uuid'] - response['created'] = inst['created_at'] - response['updated'] = inst['updated_at'] - if 'status' in response: - if response['status'] == "ACTIVE": - response['progress'] = 100 - elif response['status'] == "BUILD": - response['progress'] = 0 def _build_links(self, response, inst): href = self.generate_href(inst["uuid"]) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 01dec3f5f..70e99daa5 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -32,6 +32,7 @@ from nova import utils import nova.api.openstack from nova.api.openstack import servers from nova.api.openstack import create_instance_helper +from nova.api.openstack import wsgi import nova.compute.api from nova.compute import instance_types from nova.compute import power_state @@ -2534,30 +2535,16 @@ class TestGetKernelRamdiskFromImage(test.TestCase): return kernel_id, ramdisk_id -class ServersTestv1_1(test.TestCase): +class ServersViewBuilderV11Test(test.TestCase): def setUp(self): - super(ServersTestv1_1, self).setUp() - self.stubs = stubout.StubOutForTesting() - - fakes.FakeAuthManager.reset_fake_data() - fakes.FakeAuthDatabase.data = {} - fakes.stub_out_networking(self.stubs) - fakes.stub_out_rate_limiting(self.stubs) - fakes.stub_out_auth(self.stubs) - fakes.stub_out_key_pair_funcs(self.stubs) - fakes.stub_out_image_service(self.stubs) - - self.stubs.Set(nova.db.api, 'instance_get', self._return_server) + self.instance = self._get_instance() + self.view_builder = self._get_view_builder() def tearDown(self): - self.stubs.UnsetAll() - super(ServersTestv1_1, self).tearDown() - - def _return_server(self, context, id): - return self._stub_instance_v1_1() - - def _stub_instance_v1_1(self): + pass + + def _get_instance(self): instance = { "id": 1, "created_at": "2010-10-10T12:00:00Z", @@ -2598,18 +2585,53 @@ class ServersTestv1_1(test.TestCase): return instance - def test_get_server(self): + def _get_view_builder(self): + base_url = "http://localhost/v1.1" + views = nova.api.openstack.views + address_builder = views.addresses.ViewBuilderV11() + flavor_builder = views.flavors.ViewBuilderV11(base_url) + image_builder = views.images.ViewBuilderV11(base_url) + + view_builder = nova.api.openstack.views.servers.ViewBuilderV11( + address_builder, + flavor_builder, + image_builder, + base_url + ) + return view_builder + + def test_build_server(self): self.maxDiff = None - instance = self._stub_instance_v1_1() - req = webob.Request.blank('/v1.1/servers/1') - res = req.get_response(fakes.wsgi_app()) - res_dict = json.loads(res.body) + expected_server = { + "server": { + "id": self.instance['uuid'], + "name": "test_server", + "links": [ + { + "rel": "self", + "href": "http://localhost/v1.1/servers/%s" % + self.instance['uuid'], + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/%s" % + self.instance['uuid'], + }, + ], + } + } + + output = self.view_builder.build(self.instance, False) + print output + self.assertDictEqual(output, expected_server) + def test_build_server_detail(self): + self.maxDiff = None image_bookmark = "http://localhost/images/5" flavor_bookmark = "http://localhost/flavors/1" expected_server = { "server": { - "id": instance['uuid'], + "id": self.instance['uuid'], "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", "progress": 0, @@ -2645,19 +2667,16 @@ class ServersTestv1_1(test.TestCase): { "rel": "self", "href": "http://localhost/v1.1/servers/%s" % - instance['uuid'], + self.instance['uuid'], }, { "rel": "bookmark", "href": "http://localhost/servers/%s" % - instance['uuid'], + self.instance['uuid'], }, ], } } - import pprint - pp = pprint.PrettyPrinter() - pp.pprint(res_dict) - pp.pprint(expected_server) - self.assertDictEqual(res_dict, expected_server) + output = self.view_builder.build(self.instance, True) + self.assertDictEqual(output, expected_server) -- cgit From 70e4516173ed0e3efa5a4a6c88dafe8869530e06 Mon Sep 17 00:00:00 2001 From: Alex Meade Date: Fri, 15 Jul 2011 10:48:09 -0400 Subject: Added more view builder tests --- nova/tests/api/openstack/test_servers.py | 124 ++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 1 deletion(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 559e4d316..3389b378a 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -2578,7 +2578,7 @@ class ServersViewBuilderV11Test(test.TestCase): "display_name": "test_server", "display_description": "", "locked": False, - "metadata": {}, + "metadata": [], #"address": , #"floating_ips": [{"address":ip} for ip in public_addresses]} "uuid": "deadbeef-feed-edee-beef-d0ea7beefedd"} @@ -2680,3 +2680,125 @@ class ServersViewBuilderV11Test(test.TestCase): output = self.view_builder.build(self.instance, True) self.assertDictEqual(output, expected_server) + + def test_build_server_detail_active_status(self): + #set the power state of the instance to running + self.instance['state'] = 1 + image_bookmark = "http://localhost/images/5" + flavor_bookmark = "http://localhost/flavors/1" + expected_server = { + "server": { + "id": self.instance['uuid'], + "updated": "2010-11-11T11:00:00Z", + "created": "2010-10-10T12:00:00Z", + "progress": 100, + "name": "test_server", + "status": "ACTIVE", + "hostId": '', + #"accessIPv4" : "67.23.10.132", + #"accessIPv6" : "::babe:67.23.10.132", + "image": { + "id": "5", + "links": [ + { + "rel": "bookmark", + "href": image_bookmark, + }, + ], + }, + "flavor": { + "id": "1", + "links": [ + { + "rel": "bookmark", + "href": flavor_bookmark, + }, + ], + }, + "addresses": { + "public": [], + "private": [], + }, + "metadata": {}, + "links": [ + { + "rel": "self", + "href": "http://localhost/v1.1/servers/%s" % + self.instance['uuid'], + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/%s" % + self.instance['uuid'], + }, + ], + } + } + + output = self.view_builder.build(self.instance, True) + self.assertDictEqual(output, expected_server) + + def test_build_server_detail_with_metadata(self): + self.maxDiff = None + + metadata = [] + metadata.append(InstanceMetadata(key="Open", value="Stack")) + metadata.append(InstanceMetadata(key="Number", value=1)) + self.instance['metadata'] = metadata + + image_bookmark = "http://localhost/images/5" + flavor_bookmark = "http://localhost/flavors/1" + expected_server = { + "server": { + "id": self.instance['uuid'], + "updated": "2010-11-11T11:00:00Z", + "created": "2010-10-10T12:00:00Z", + "progress": 0, + "name": "test_server", + "status": "BUILD", + "hostId": '', + #"accessIPv4" : "67.23.10.132", + #"accessIPv6" : "::babe:67.23.10.132", + "image": { + "id": "5", + "links": [ + { + "rel": "bookmark", + "href": image_bookmark, + }, + ], + }, + "flavor": { + "id": "1", + "links": [ + { + "rel": "bookmark", + "href": flavor_bookmark, + }, + ], + }, + "addresses": { + "public": [], + "private": [], + }, + "metadata": { + "Open": "Stack", + "Number": "1", + }, + "links": [ + { + "rel": "self", + "href": "http://localhost/v1.1/servers/%s" % + self.instance['uuid'], + }, + { + "rel": "bookmark", + "href": "http://localhost/servers/%s" % + self.instance['uuid'], + }, + ], + } + } + + output = self.view_builder.build(self.instance, True) + self.assertDictEqual(output, expected_server) -- cgit From 1e7b21452a2e622b94531bea59c68e6abcded40a Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 12:44:40 -0400 Subject: return id and uuid for now --- nova/api/openstack/views/servers.py | 3 ++- nova/tests/api/openstack/test_servers.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index a4c9dd95a..53ded4312 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -206,7 +206,8 @@ class ViewBuilderV11(ViewBuilder): def _build_extra(self, response, inst): self._build_links(response, inst) - response['id'] = inst['uuid'] + response['id'] = inst['id'] + response['uuid'] = inst['uuid'] def _build_links(self, response, inst): href = self.generate_href(inst["uuid"]) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index bca3dad1d..bb650ca62 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -332,7 +332,8 @@ class ServersTest(test.TestCase): res_dict = json.loads(res.body) expected_server = { "server": { - "id": FAKE_UUID, + "id": 1, + "uuid": FAKE_UUID, "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", "progress": 0, @@ -377,6 +378,7 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", + #FIXME(wwolf) Do we want the links to be id or uuid? "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), }, { @@ -421,7 +423,8 @@ class ServersTest(test.TestCase): res_dict = json.loads(res.body) expected_server = { "server": { - "id": FAKE_UUID, + "id": 1, + "uuid": FAKE_UUID, "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", "progress": 100, @@ -515,7 +518,8 @@ class ServersTest(test.TestCase): res_dict = json.loads(res.body) expected_server = { "server": { - "id": FAKE_UUID, + "id": 1, + "uuid": FAKE_UUID, "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", "progress": 100, @@ -712,7 +716,7 @@ class ServersTest(test.TestCase): res = req.get_response(fakes.wsgi_app()) res_dict = json.loads(res.body) - self.assertEqual(res_dict['server']['id'], FAKE_UUID) + self.assertEqual(res_dict['server']['id'], 1) self.assertEqual(res_dict['server']['name'], 'server1') addresses = res_dict['server']['addresses'] expected = { @@ -905,7 +909,7 @@ class ServersTest(test.TestCase): res_dict = json.loads(res.body) for i, s in enumerate(res_dict['servers']): - self.assertEqual(s['id'], FAKE_UUID) + self.assertEqual(s['id'], i) self.assertEqual(s['name'], 'server%d' % i) self.assertEqual(s.get('image', None), None) @@ -1516,7 +1520,7 @@ class ServersTest(test.TestCase): res_dict = json.loads(res.body) for i, s in enumerate(res_dict['servers']): - self.assertEqual(s['id'], FAKE_UUID) + self.assertEqual(s['id'], i) self.assertEqual(s['hostId'], '') self.assertEqual(s['name'], 'server%d' % i) self.assertEqual(s['image'], expected_image) -- cgit From 14b5361d975ee017d95c159a9249d7e6dac662d9 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 13:45:56 -0400 Subject: fix ServersViewBuilderV11Tests --- nova/tests/api/openstack/test_servers.py | 45 +++++++++++--------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index bb650ca62..cb2bfc8f4 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -431,8 +431,6 @@ class ServersTest(test.TestCase): "name": "server1", "status": "ACTIVE", "hostId": '', - #"accessIPv4" : "67.23.10.132", - #"accessIPv6" : "::babe:67.23.10.132", "image": { "id" : "10", "links": [ @@ -526,8 +524,6 @@ class ServersTest(test.TestCase): "name": "server1", "status": "ACTIVE", "hostId": '', - #"accessIPv4" : "67.23.10.132", - #"accessIPv6" : "::babe:67.23.10.132", "image": { "id": "10", "links": [ @@ -2783,7 +2779,8 @@ class ServersViewBuilderV11Test(test.TestCase): self.maxDiff = None expected_server = { "server": { - "id": self.instance['uuid'], + "id": 1, + "uuid": self.instance['uuid'], "name": "test_server", "links": [ { @@ -2801,7 +2798,7 @@ class ServersViewBuilderV11Test(test.TestCase): } output = self.view_builder.build(self.instance, False) - self.assertDictEqual(output, expected_server) + self.assertDictMatch(output, expected_server) def test_build_server_detail(self): self.maxDiff = None @@ -2809,15 +2806,14 @@ class ServersViewBuilderV11Test(test.TestCase): flavor_bookmark = "http://localhost/flavors/1" expected_server = { "server": { - "id": self.instance['uuid'], + "id": 1, + "uuid": self.instance['uuid'], "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", "progress": 0, "name": "test_server", "status": "BUILD", "hostId": '', - #"accessIPv4" : "67.23.10.132", - #"accessIPv6" : "::babe:67.23.10.132", "image": { "id": "5", "links": [ @@ -2836,10 +2832,7 @@ class ServersViewBuilderV11Test(test.TestCase): }, ], }, - "addresses": { - "public": [], - "private": [], - }, + "addresses": { }, "metadata": {}, "links": [ { @@ -2857,7 +2850,7 @@ class ServersViewBuilderV11Test(test.TestCase): } output = self.view_builder.build(self.instance, True) - self.assertDictEqual(output, expected_server) + self.assertDictMatch(output, expected_server) def test_build_server_detail_active_status(self): #set the power state of the instance to running @@ -2866,15 +2859,14 @@ class ServersViewBuilderV11Test(test.TestCase): flavor_bookmark = "http://localhost/flavors/1" expected_server = { "server": { - "id": self.instance['uuid'], + "id": 1, + "uuid": self.instance['uuid'], "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", "progress": 100, "name": "test_server", "status": "ACTIVE", "hostId": '', - #"accessIPv4" : "67.23.10.132", - #"accessIPv6" : "::babe:67.23.10.132", "image": { "id": "5", "links": [ @@ -2893,10 +2885,7 @@ class ServersViewBuilderV11Test(test.TestCase): }, ], }, - "addresses": { - "public": [], - "private": [], - }, + "addresses": { }, "metadata": {}, "links": [ { @@ -2914,7 +2903,7 @@ class ServersViewBuilderV11Test(test.TestCase): } output = self.view_builder.build(self.instance, True) - self.assertDictEqual(output, expected_server) + self.assertDictMatch(output, expected_server) def test_build_server_detail_with_metadata(self): self.maxDiff = None @@ -2928,15 +2917,14 @@ class ServersViewBuilderV11Test(test.TestCase): flavor_bookmark = "http://localhost/flavors/1" expected_server = { "server": { - "id": self.instance['uuid'], + "id": 1, + "uuid": self.instance['uuid'], "updated": "2010-11-11T11:00:00Z", "created": "2010-10-10T12:00:00Z", "progress": 0, "name": "test_server", "status": "BUILD", "hostId": '', - #"accessIPv4" : "67.23.10.132", - #"accessIPv6" : "::babe:67.23.10.132", "image": { "id": "5", "links": [ @@ -2955,10 +2943,7 @@ class ServersViewBuilderV11Test(test.TestCase): }, ], }, - "addresses": { - "public": [], - "private": [], - }, + "addresses": { }, "metadata": { "Open": "Stack", "Number": "1", @@ -2979,4 +2964,4 @@ class ServersViewBuilderV11Test(test.TestCase): } output = self.view_builder.build(self.instance, True) - self.assertDictEqual(output, expected_server) + self.assertDictMatch(output, expected_server) -- cgit From 054f828d341b6cc576e30744a39d443af7784fd9 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 14:05:26 -0400 Subject: pep8 fixes --- nova/api/openstack/views/servers.py | 1 - nova/tests/api/openstack/test_servers.py | 35 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 53ded4312..a1aba20fc 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -158,7 +158,6 @@ class ViewBuilderV11(ViewBuilder): response['server']['progress'] = 0 return response - def _build_image(self, response, inst): if 'image_ref' in dict(inst): image_href = inst['image_ref'] diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index cb2bfc8f4..38c4e6be3 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -143,7 +143,8 @@ def instance_addresses(context, instance_id): def stub_instance(id, user_id=1, private_address=None, public_addresses=None, host=None, power_state=0, reservation_id="", - uuid=FAKE_UUID, image_ref="10", flavor_id="1", interfaces=None): + uuid=FAKE_UUID, image_ref="10", flavor_id="1", + interfaces=None): metadata = [] metadata.append(InstanceMetadata(key='seq', value=id)) @@ -341,7 +342,7 @@ class ServersTest(test.TestCase): "status": "BUILD", "hostId": '', "image": { - "id":"10", + "id": "10", "links": [ { "rel": "bookmark", @@ -379,11 +380,11 @@ class ServersTest(test.TestCase): { "rel": "self", #FIXME(wwolf) Do we want the links to be id or uuid? - "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), + "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % (FAKE_UUID), + "href": "http://localhost/servers/%s" % FAKE_UUID, }, ], } @@ -432,7 +433,7 @@ class ServersTest(test.TestCase): "status": "ACTIVE", "hostId": '', "image": { - "id" : "10", + "id": "10", "links": [ { "rel": "bookmark", @@ -469,11 +470,11 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), + "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % (FAKE_UUID), + "href": "http://localhost/servers/%s" % FAKE_UUID, }, ], } @@ -562,11 +563,11 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), + "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % (FAKE_UUID), + "href": "http://localhost/servers/%s" % FAKE_UUID, }, ], } @@ -912,11 +913,11 @@ class ServersTest(test.TestCase): expected_links = [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % (FAKE_UUID), + "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % (FAKE_UUID), + "href": "http://localhost/servers/%s" % FAKE_UUID, }, ] @@ -2718,7 +2719,7 @@ class ServersViewBuilderV11Test(test.TestCase): def tearDown(self): pass - + def _get_instance(self): instance = { "id": 1, @@ -2741,7 +2742,7 @@ class ServersViewBuilderV11Test(test.TestCase): "hostname": "", "host": "", "instance_type": { - "flavorid": 1, + "flavorid": 1, }, "user_data": "", "reservation_id": "", @@ -2757,7 +2758,7 @@ class ServersViewBuilderV11Test(test.TestCase): #"address": , #"floating_ips": [{"address":ip} for ip in public_addresses]} "uuid": "deadbeef-feed-edee-beef-d0ea7beefedd"} - + return instance def _get_view_builder(self): @@ -2832,7 +2833,7 @@ class ServersViewBuilderV11Test(test.TestCase): }, ], }, - "addresses": { }, + "addresses": {}, "metadata": {}, "links": [ { @@ -2885,7 +2886,7 @@ class ServersViewBuilderV11Test(test.TestCase): }, ], }, - "addresses": { }, + "addresses": {}, "metadata": {}, "links": [ { @@ -2943,7 +2944,7 @@ class ServersViewBuilderV11Test(test.TestCase): }, ], }, - "addresses": { }, + "addresses": {}, "metadata": { "Open": "Stack", "Number": "1", -- cgit From 1c6837c7940ed979a05a063595f4d7e7a2154ee9 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 14:43:33 -0400 Subject: use id in links instead of uuid --- nova/api/openstack/views/servers.py | 4 ++-- nova/tests/api/openstack/test_servers.py | 40 +++++++++++++------------------- 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index a1aba20fc..71d685171 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -209,8 +209,8 @@ class ViewBuilderV11(ViewBuilder): response['uuid'] = inst['uuid'] def _build_links(self, response, inst): - href = self.generate_href(inst["uuid"]) - bookmark = self.generate_bookmark(inst["uuid"]) + href = self.generate_href(inst["id"]) + bookmark = self.generate_bookmark(inst["id"]) links = [ { diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 38c4e6be3..ee5ebc948 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -380,11 +380,11 @@ class ServersTest(test.TestCase): { "rel": "self", #FIXME(wwolf) Do we want the links to be id or uuid? - "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, + "href": "http://localhost/v1.1/servers/1", }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % FAKE_UUID, + "href": "http://localhost/servers/1", }, ], } @@ -470,11 +470,11 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, + "href": "http://localhost/v1.1/servers/1", }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % FAKE_UUID, + "href": "http://localhost/servers/1", }, ], } @@ -563,11 +563,11 @@ class ServersTest(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, + "href": "http://localhost/v1.1/servers/1", }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % FAKE_UUID, + "href": "http://localhost/servers/1", }, ], } @@ -913,11 +913,11 @@ class ServersTest(test.TestCase): expected_links = [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % FAKE_UUID, + "href": "http://localhost/v1.1/servers/%s" % s['id'], }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % FAKE_UUID, + "href": "http://localhost/servers/%s" % s['id'], }, ] @@ -2786,13 +2786,11 @@ class ServersViewBuilderV11Test(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/v1.1/servers/1", }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/servers/1", }, ], } @@ -2838,13 +2836,11 @@ class ServersViewBuilderV11Test(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/v1.1/servers/1", }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/servers/1", }, ], } @@ -2891,13 +2887,11 @@ class ServersViewBuilderV11Test(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/v1.1/servers/1", }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/servers/1", }, ], } @@ -2952,13 +2946,11 @@ class ServersViewBuilderV11Test(test.TestCase): "links": [ { "rel": "self", - "href": "http://localhost/v1.1/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/v1.1/servers/1", }, { "rel": "bookmark", - "href": "http://localhost/servers/%s" % - self.instance['uuid'], + "href": "http://localhost/servers/1", }, ], } -- cgit From 63d9a592823cdb2e120514137a1d71d838b336d7 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 15:08:31 -0400 Subject: stop using get_uuid_from_href for now --- nova/api/openstack/views/servers.py | 36 ++++++++++++-------------------- nova/tests/api/openstack/test_servers.py | 1 + 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 71d685171..a9db8357e 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -161,28 +161,18 @@ class ViewBuilderV11(ViewBuilder): def _build_image(self, response, inst): if 'image_ref' in dict(inst): image_href = inst['image_ref'] - #if id is a uuid do: - if image_href == common.get_uuid_from_href(image_href): - image_id = image_href - _bookmark = self.image_builder.generate_bookmark(image_href) - response['image'] = { - "id": image_id, - "links": [ - { - "rel": "bookmark", - "href": _bookmark, - }, - ] - } - else: - response['image'] = { - "links": [ - { - "rel": "bookmark", - "href": image_href, - }, - ] - } + image_id = str(common.get_id_from_href(image_href)) + print "IMAGE ID:", image_id + _bookmark = self.image_builder.generate_bookmark(image_id) + response['image'] = { + "id": image_id, + "links": [ + { + "rel": "bookmark", + "href": _bookmark, + }, + ] + } def _build_flavor(self, response, inst): if "instance_type" in dict(inst): @@ -190,7 +180,7 @@ class ViewBuilderV11(ViewBuilder): flavor_ref = self.flavor_builder.generate_href(flavor_id) flavor_bookmark = self.flavor_builder.generate_bookmark(flavor_id) response["flavor"] = { - "id": common.get_uuid_from_href(flavor_ref), + "id": str(common.get_id_from_href(flavor_ref)), "links": [ { "rel": "bookmark", diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index ee5ebc948..f0f6c045f 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -1193,6 +1193,7 @@ class ServersTest(test.TestCase): ], } expected_image = { + "id": "2", "links": [ { "rel": "bookmark", -- cgit From 1e16da70134537ae53d0c79214e70f0f06b14dd2 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 15:10:15 -0400 Subject: remove get_uuid_from_href and tests --- nova/api/openstack/common.py | 23 ----------------------- nova/api/openstack/views/servers.py | 1 - nova/tests/api/openstack/test_common.py | 12 ------------ 3 files changed, 36 deletions(-) diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index e7aa7d693..8e12ce0c0 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -136,29 +136,6 @@ def get_id_from_href(href): raise ValueError(_('could not parse id from href')) -def get_uuid_from_href(href): - """Return the uuid portion of a url. - - Given: 'http://www.foo.com/bar/123?q=4' - Returns: '123' - - In order to support local hrefs, the href argument can be just an id: - Given: '123' - Returns: '123' - - """ - if not '/' in href: - return href - try: - href = urlparse(href).path.split('/')[-1] - if href == '': - raise Exception - return href - except: - LOG.debug(_("Error extracting uuid from href: %s") % href) - raise ValueError(_('could not parse uuid from href')) - - def remove_version_from_href(href): """Removes the first api version from the href. diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index a9db8357e..6d6ebbafd 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -195,7 +195,6 @@ class ViewBuilderV11(ViewBuilder): def _build_extra(self, response, inst): self._build_links(response, inst) - response['id'] = inst['id'] response['uuid'] = inst['uuid'] def _build_links(self, response, inst): diff --git a/nova/tests/api/openstack/test_common.py b/nova/tests/api/openstack/test_common.py index 7a5beb006..4c4d03995 100644 --- a/nova/tests/api/openstack/test_common.py +++ b/nova/tests/api/openstack/test_common.py @@ -247,15 +247,3 @@ class MiscFunctionsTest(test.TestCase): self.assertRaises(ValueError, common.get_id_from_href, fixture) - - def test_get_uuid_from_href(self): - fixture = 'http://www.testsite.com/dir/45' - actual = common.get_uuid_from_href(fixture) - expected = '45' - self.assertEqual(actual, expected) - - def test_get_uuid_from_href_bad_request(self): - fixture = 'http://' - self.assertRaises(ValueError, - common.get_uuid_from_href, - fixture) -- cgit From 86ff6760b33671bd8bd9ddf808c7252f434d0931 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 15:14:58 -0400 Subject: put maxDiff in setUp --- nova/tests/api/openstack/test_servers.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index f0f6c045f..c0ccb3ef2 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -227,6 +227,7 @@ class MockSetAdminPassword(object): class ServersTest(test.TestCase): def setUp(self): + self.maxDiff = None super(ServersTest, self).setUp() self.stubs = stubout.StubOutForTesting() fakes.FakeAuthManager.reset_fake_data() @@ -303,7 +304,6 @@ class ServersTest(test.TestCase): self.assertEqual(res_dict['server']['name'], 'server1') def test_get_server_by_id_v1_1(self): - self.maxDiff = None image_bookmark = "http://localhost/images/10" flavor_ref = "http://localhost/v1.1/flavors/1" flavor_id = "1" @@ -393,7 +393,6 @@ class ServersTest(test.TestCase): self.assertDictMatch(res_dict, expected_server) def test_get_server_with_active_status_by_id_v1_1(self): - self.maxDiff = None image_bookmark = "http://localhost/images/10" flavor_ref = "http://localhost/v1.1/flavors/1" flavor_id = "1" @@ -483,7 +482,6 @@ class ServersTest(test.TestCase): self.assertDictMatch(res_dict, expected_server) def test_get_server_with_id_image_ref_by_id_v1_1(self): - self.maxDiff = None image_ref = "10" image_bookmark = "http://localhost/images/10" flavor_ref = "http://localhost/v1.1/flavors/1" @@ -2778,7 +2776,6 @@ class ServersViewBuilderV11Test(test.TestCase): return view_builder def test_build_server(self): - self.maxDiff = None expected_server = { "server": { "id": 1, @@ -2801,7 +2798,6 @@ class ServersViewBuilderV11Test(test.TestCase): self.assertDictMatch(output, expected_server) def test_build_server_detail(self): - self.maxDiff = None image_bookmark = "http://localhost/images/5" flavor_bookmark = "http://localhost/flavors/1" expected_server = { @@ -2902,7 +2898,6 @@ class ServersViewBuilderV11Test(test.TestCase): self.assertDictMatch(output, expected_server) def test_build_server_detail_with_metadata(self): - self.maxDiff = None metadata = [] metadata.append(InstanceMetadata(key="Open", value="Stack")) -- cgit From 910dd2124123d8e1989ce85d57bcc2a245e39683 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 16:04:41 -0400 Subject: take out print statements --- nova/api/openstack/views/servers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py index 6d6ebbafd..817e6ddfc 100644 --- a/nova/api/openstack/views/servers.py +++ b/nova/api/openstack/views/servers.py @@ -162,7 +162,6 @@ class ViewBuilderV11(ViewBuilder): if 'image_ref' in dict(inst): image_href = inst['image_ref'] image_id = str(common.get_id_from_href(image_href)) - print "IMAGE ID:", image_id _bookmark = self.image_builder.generate_bookmark(image_id) response['image'] = { "id": image_id, -- cgit From ae7bd07b67b8d7feedbe01a62ebabca217473f13 Mon Sep 17 00:00:00 2001 From: William Wolf Date: Fri, 15 Jul 2011 16:37:20 -0400 Subject: got rid of return_server_with_interfaces and added return_server_with_attributes --- nova/tests/api/openstack/test_servers.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index c0ccb3ef2..eee0cbba0 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -78,16 +78,16 @@ def return_virtual_interface_instance_nonexistant(interfaces): return _return_virtual_interface_by_instance -def return_server_with_addresses(private, public): +def return_server_with_attributes(**kwargs): def _return_server(context, id): - return stub_instance(id, private_address=private, - public_addresses=public) + return stub_instance(id, **kwargs) return _return_server -def return_server_with_interfaces(interfaces, **kwargs): +def return_server_with_addresses(private, public): def _return_server(context, id): - return stub_instance(id, interfaces=interfaces, **kwargs) + return stub_instance(id, private_address=private, + public_addresses=public) return _return_server @@ -325,7 +325,7 @@ class ServersTest(test.TestCase): ], }, ] - new_return_server = return_server_with_interfaces(interfaces) + new_return_server = return_server_with_attributes(interfaces=interfaces) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') @@ -414,7 +414,7 @@ class ServersTest(test.TestCase): ], }, ] - new_return_server = return_server_with_interfaces(interfaces, + new_return_server = return_server_with_attributes(interfaces=interfaces, power_state=1) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) @@ -504,7 +504,7 @@ class ServersTest(test.TestCase): ], }, ] - new_return_server = return_server_with_interfaces(interfaces, + new_return_server = return_server_with_attributes(interfaces=interfaces, power_state=1, image_ref=image_ref, flavor_id=flavor_id) @@ -704,7 +704,7 @@ class ServersTest(test.TestCase): ], }, ] - new_return_server = return_server_with_interfaces(interfaces) + new_return_server = return_server_with_attributes(interfaces=interfaces) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') -- cgit From bdc31739b24fbcb07d05f413c2ba6554046a6b0e Mon Sep 17 00:00:00 2001 From: William Wolf Date: Tue, 26 Jul 2011 09:25:34 -0400 Subject: fix issue with failing test --- nova/tests/api/openstack/test_servers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 54d86e0bb..31045e454 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -706,7 +706,7 @@ class ServersTest(test.TestCase): 'fixed_ipv6': '2001:4860::12', }, ] - new_return_server = return_server_with_interfaces(interfaces) + new_return_server = return_server_with_attributes(interfaces=interfaces) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') -- cgit From ff5aa1a167459b922cc8195c1e6e1368a442610d Mon Sep 17 00:00:00 2001 From: William Wolf Date: Tue, 26 Jul 2011 09:29:50 -0400 Subject: fix pep8 issues --- nova/tests/api/openstack/test_servers.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 31045e454..fa7fbab20 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -325,7 +325,8 @@ class ServersTest(test.TestCase): ], }, ] - new_return_server = return_server_with_attributes(interfaces=interfaces) + new_return_server = return_server_with_attributes( + interfaces=interfaces) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') @@ -414,8 +415,8 @@ class ServersTest(test.TestCase): ], }, ] - new_return_server = return_server_with_attributes(interfaces=interfaces, - power_state=1) + new_return_server = return_server_with_attributes( + interfaces=interfaces, power_state=1) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') @@ -504,10 +505,9 @@ class ServersTest(test.TestCase): ], }, ] - new_return_server = return_server_with_attributes(interfaces=interfaces, - power_state=1, - image_ref=image_ref, - flavor_id=flavor_id) + new_return_server = return_server_with_attributes( + interfaces=interfaces, power_state=1, image_ref=image_ref, + flavor_id=flavor_id) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') @@ -706,7 +706,8 @@ class ServersTest(test.TestCase): 'fixed_ipv6': '2001:4860::12', }, ] - new_return_server = return_server_with_attributes(interfaces=interfaces) + new_return_server = return_server_with_attributes( + interfaces=interfaces) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') @@ -749,7 +750,8 @@ class ServersTest(test.TestCase): 'fixed_ipv6': '2001:4860::12', }, ] - new_return_server = return_server_with_attributes(interfaces=interfaces) + new_return_server = return_server_with_attributes( + interfaces=interfaces) self.stubs.Set(nova.db.api, 'instance_get', new_return_server) req = webob.Request.blank('/v1.1/servers/1') -- cgit