Merge "Do not loose url queries on redirects"

This commit is contained in:
Zuul 2022-08-11 18:42:56 +00:00 committed by Gerrit Code Review
commit befcca345b
2 changed files with 20 additions and 2 deletions

View File

@ -105,18 +105,26 @@ class StoreLocation(glance_store.location.StoreLocation):
self.user = self.specs.get('user')
self.password = self.specs.get('password')
self.path = self.specs.get('path')
self.query = self.spec.get('query')
def _get_credstring(self):
if self.user:
return '%s:%s@' % (self.user, self.password)
return ''
def _get_query_string(self):
if self.query:
return "?%s" % self.query
return ""
def get_uri(self):
return "%s://%s%s%s" % (
return "%s://%s%s%s%s" % (
self.scheme,
self._get_credstring(),
self.netloc,
self.path)
self.path,
self._get_query_string()
)
def parse_uri(self, uri):
"""
@ -164,6 +172,7 @@ class StoreLocation(glance_store.location.StoreLocation):
self.netloc = netloc
self.path = path
self.query = pieces.query
def http_response_iterator(conn, response, size):

View File

@ -184,6 +184,15 @@ class TestHttpStore(base.StoreBaseTest,
self.assertRaises(exceptions.BadStoreUri,
location.get_location_from_uri, uri)
def test_http_store_location_get_uri(self):
"""Test for HTTP URI with and without query"""
uris = ["http://netloc/path/to/file.tar.gz"
"http://netloc/path/to/file.tar.gz?query=text",
]
for uri in uris:
loc = location.get_location_from_uri(uri, conf=self.conf)
self.assertEqual(uri, loc.store_location.get_uri())
def test_http_get_raises_remote_service_unavailable(self):
"""Test http store raises RemoteServiceUnavailable."""
uri = "http://netloc/path/to/file.tar.gz"