summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Meade <alex.meade@rackspace.com>2011-07-14 17:35:10 -0400
committerAlex Meade <alex.meade@rackspace.com>2011-07-14 17:35:10 -0400
commit6cbce0442cf15d31e7ab05b808939bdc3a244f1b (patch)
tree73df8d4e5661cca71e649e731b9556c3de3e02e4
parentc7f8807ab545362c31be91a0f4081c7ef412f1e8 (diff)
Added ServersTestv1_1 test case
Changed servers links to use uuid instead of id
-rw-r--r--nova/api/openstack/views/servers.py4
-rw-r--r--nova/tests/api/openstack/test_servers.py129
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)