summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Wolf <throughnothing@gmail.com>2011-09-19 21:53:21 -0400
committerWilliam Wolf <throughnothing@gmail.com>2011-09-19 21:53:21 -0400
commita0e705359353cb6a9b0c3fc8178e714e4350c585 (patch)
tree83aa6fc4632eaeb7a5cb8dd9ac9a9b0b35462d61
parentc7f04b68ba752766fa2fc1edb68e6fb0219606e3 (diff)
oops, add project_id and 'servers' to next links
-rw-r--r--nova/api/openstack/views/servers.py4
-rw-r--r--nova/tests/api/openstack/test_servers.py15
2 files changed, 12 insertions, 7 deletions
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index bb8bb0972..61480da70 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -236,7 +236,9 @@ class ViewBuilderV11(ViewBuilder):
def generate_next_link(self, server_id, params, is_detail=False):
""" Return an href string with proper limit and marker params"""
params['marker'] = server_id
- return "%s?%s" % (self.base_url, common.dict_to_query_str(params))
+ return "%s?%s" % (
+ os.path.join(self.base_url, self.project_id, "servers"),
+ common.dict_to_query_str(params))
def generate_href(self, server_id):
"""Create an url that refers to a specific server id."""
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index 160335d80..b3e4ad0cf 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -1161,8 +1161,9 @@ class ServersTest(test.TestCase):
self.assertEqual([s['id'] for s in servers], [0, 1, 2])
self.assertEqual(servers_links[0]['rel'], 'next')
- qs = urlparse.urlparse(servers_links[0]['href']).query
- params = urlparse.parse_qs(qs)
+ href_parts = urlparse.urlparse(servers_links[0]['href'])
+ self.assertEqual('/v1.1/fake/servers', href_parts.path)
+ params = urlparse.parse_qs(href_parts.query)
self.assertDictMatch({'limit': ['3'], 'marker': ['2']}, params)
req = webob.Request.blank('/v1.1/fake/servers?limit=aaa')
@@ -1178,8 +1179,9 @@ class ServersTest(test.TestCase):
self.assertEqual([s['id'] for s in servers], [0, 1, 2])
self.assertEqual(servers_links[0]['rel'], 'next')
- qs = urlparse.urlparse(servers_links[0]['href']).query
- params = urlparse.parse_qs(qs)
+ href_parts = urlparse.urlparse(servers_links[0]['href'])
+ self.assertEqual('/v1.1/fake/servers', href_parts.path)
+ params = urlparse.parse_qs(href_parts.query)
self.assertDictMatch({'limit': ['3'], 'marker': ['2']}, params)
req = webob.Request.blank('/v1.1/fake/servers/detail?limit=aaa')
@@ -1195,8 +1197,9 @@ class ServersTest(test.TestCase):
self.assertEqual([s['id'] for s in servers], [0, 1, 2])
self.assertEqual(servers_links[0]['rel'], 'next')
- qs = urlparse.urlparse(servers_links[0]['href']).query
- params = urlparse.parse_qs(qs)
+ href_parts = urlparse.urlparse(servers_links[0]['href'])
+ self.assertEqual('/v1.1/fake/servers', href_parts.path)
+ params = urlparse.parse_qs(href_parts.query)
self.assertDictMatch({'limit': ['3'], 'blah': ['2:t'],
'marker': ['2']}, params)