Don't truncate osapi_volume_link prefixes
When osapi_volume_link_prefix is defined and used to update the links return in API responses, do not drop the path component of the overriding link prefix. Change-Id: Ic84e16cdfa989d4af7f076a4c244808be2ca4dce Closes-Bug: #1304099
This commit is contained in:
parent
f794e8f47f
commit
4edfd79265
@ -353,7 +353,9 @@ class ViewBuilder(object):
|
|||||||
url_parts = list(urlparse.urlsplit(orig_url))
|
url_parts = list(urlparse.urlsplit(orig_url))
|
||||||
prefix_parts = list(urlparse.urlsplit(prefix))
|
prefix_parts = list(urlparse.urlsplit(prefix))
|
||||||
url_parts[0:2] = prefix_parts[0:2]
|
url_parts[0:2] = prefix_parts[0:2]
|
||||||
return urlparse.urlunsplit(url_parts)
|
url_parts[2] = prefix_parts[2] + url_parts[2]
|
||||||
|
|
||||||
|
return urlparse.urlunsplit(url_parts).rstrip('/')
|
||||||
|
|
||||||
|
|
||||||
class MetadataDeserializer(wsgi.MetadataXMLDeserializer):
|
class MetadataDeserializer(wsgi.MetadataXMLDeserializer):
|
||||||
|
@ -547,3 +547,21 @@ class TestCollectionLinks(test.TestCase):
|
|||||||
self._validate_next_link(href_link_mock, item_count,
|
self._validate_next_link(href_link_mock, item_count,
|
||||||
osapi_max_limit,
|
osapi_max_limit,
|
||||||
limit, should_link_exist)
|
limit, should_link_exist)
|
||||||
|
|
||||||
|
|
||||||
|
class LinkPrefixTest(test.TestCase):
|
||||||
|
def test_update_link_prefix(self):
|
||||||
|
vb = common.ViewBuilder()
|
||||||
|
result = vb._update_link_prefix("http://192.168.0.243:24/",
|
||||||
|
"http://127.0.0.1/volume")
|
||||||
|
self.assertEqual("http://127.0.0.1/volume", result)
|
||||||
|
|
||||||
|
result = vb._update_link_prefix("http://foo.x.com/v1",
|
||||||
|
"http://new.prefix.com")
|
||||||
|
self.assertEqual("http://new.prefix.com/v1", result)
|
||||||
|
|
||||||
|
result = vb._update_link_prefix(
|
||||||
|
"http://foo.x.com/v1",
|
||||||
|
"http://new.prefix.com:20455/new_extra_prefix")
|
||||||
|
self.assertEqual("http://new.prefix.com:20455/new_extra_prefix/v1",
|
||||||
|
result)
|
||||||
|
Loading…
Reference in New Issue
Block a user