diff --git a/openstack/session.py b/openstack/session.py index 5786748a..9dc18389 100644 --- a/openstack/session.py +++ b/openstack/session.py @@ -35,7 +35,8 @@ def parse_url(filt, url): path = result.path vstr = VERSION_PATTERN.search(path) if not vstr: - return result.scheme + "://" + result.netloc + "/" + filt.get_path() + return (result.scheme + "://" + result.netloc + path.rstrip('/') + + '/' + filt.get_path()) start, end = vstr.span() prefix = path[:start] version = '/' + filt.get_path(path[start + 1:end]) diff --git a/openstack/tests/unit/test_session.py b/openstack/tests/unit/test_session.py index 60ebad79..31c57306 100644 --- a/openstack/tests/unit/test_session.py +++ b/openstack/tests/unit/test_session.py @@ -27,6 +27,9 @@ class TestSession(testtools.TestCase): self.assertEqual( "http://127.0.0.1:9292/v1", session.parse_url(filt, "http://127.0.0.1:9292")) + self.assertEqual( + "http://127.0.0.1:9292/foo/v1", + session.parse_url(filt, "http://127.0.0.1:9292/foo")) self.assertEqual( "http://127.0.0.1:9292/v2", session.parse_url(filt, "http://127.0.0.1:9292/v2.0"))