Merge "Return v2 version info with v2 legacy compatible wrapper"
This commit is contained in:
commit
d4522d649b
|
@ -28,6 +28,8 @@ class VersionsController(wsgi.Controller):
|
|||
@extensions.expected_errors(404)
|
||||
def show(self, req, id='v2.1'):
|
||||
builder = views_versions.get_view_builder(req)
|
||||
if req.is_legacy_v2():
|
||||
id = 'v2.0'
|
||||
if id not in versions.VERSIONS:
|
||||
raise webob.exc.HTTPNotFound()
|
||||
|
||||
|
|
|
@ -101,10 +101,14 @@ def _get_self_href(response):
|
|||
|
||||
class VersionsTestV20(test.NoDBTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionsTestV20, self).setUp()
|
||||
self.wsgi_app = fakes.wsgi_app()
|
||||
|
||||
def test_get_version_list(self):
|
||||
req = webob.Request.blank('/')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(res.status_int, 200)
|
||||
self.assertEqual(res.content_type, "application/json")
|
||||
versions = jsonutils.loads(res.body)["versions"]
|
||||
|
@ -139,7 +143,7 @@ class VersionsTestV20(test.NoDBTestCase):
|
|||
def test_get_version_list_302(self):
|
||||
req = webob.Request.blank('/v2')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(res.status_int, 302)
|
||||
redirect_req = webob.Request.blank('/v2/')
|
||||
self.assertEqual(res.location, redirect_req.url)
|
||||
|
@ -149,7 +153,7 @@ class VersionsTestV20(test.NoDBTestCase):
|
|||
accept = "application/json"
|
||||
req = webob.Request.blank(url)
|
||||
req.accept = accept
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(res.status_int, 200)
|
||||
self.assertEqual(res.content_type, "application/json")
|
||||
version = jsonutils.loads(res.body)
|
||||
|
@ -192,13 +196,13 @@ class VersionsTestV20(test.NoDBTestCase):
|
|||
def test_get_version_2_versions_invalid(self):
|
||||
req = webob.Request.blank('/v2/versions/1234')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(404, res.status_int)
|
||||
|
||||
def test_multi_choice_image(self):
|
||||
req = webob.Request.blank('/images/1')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(res.status_int, 300)
|
||||
self.assertEqual(res.content_type, "application/json")
|
||||
|
||||
|
@ -249,7 +253,7 @@ class VersionsTestV20(test.NoDBTestCase):
|
|||
"""
|
||||
req = webob.Request.blank('/servers')
|
||||
req.accept = "application/atom+xml"
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(res.status_int, 300)
|
||||
self.assertEqual(res.content_type, "application/json")
|
||||
|
||||
|
@ -257,7 +261,7 @@ class VersionsTestV20(test.NoDBTestCase):
|
|||
uuid = str(stdlib_uuid.uuid4())
|
||||
req = webob.Request.blank('/servers/' + uuid)
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(res.status_int, 300)
|
||||
self.assertEqual(res.content_type, "application/json")
|
||||
|
||||
|
@ -455,3 +459,10 @@ class VersionBehindSslTestCase(test.NoDBTestCase):
|
|||
self.assertEqual(200, res.status_int)
|
||||
href = _get_self_href(res)
|
||||
self.assertTrue(href.startswith('https://'))
|
||||
|
||||
|
||||
class VersionsTestV21WithV2CompatibleWrapper(VersionsTestV20):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionsTestV21WithV2CompatibleWrapper, self).setUp()
|
||||
self.wsgi_app = fakes.wsgi_app_v21(v2_compatible=True)
|
||||
|
|
|
@ -105,10 +105,13 @@ def wsgi_app(inner_app_v2=None, fake_auth_context=None,
|
|||
|
||||
|
||||
def wsgi_app_v21(inner_app_v21=None, fake_auth_context=None,
|
||||
use_no_auth=False, ext_mgr=None, init_only=None):
|
||||
use_no_auth=False, ext_mgr=None, init_only=None, v2_compatible=False):
|
||||
if not inner_app_v21:
|
||||
inner_app_v21 = compute.APIRouterV21(init_only)
|
||||
|
||||
if v2_compatible:
|
||||
inner_app_v21 = openstack_api.LegacyV2CompatibleWrapper(inner_app_v21)
|
||||
|
||||
if use_no_auth:
|
||||
api_v21 = openstack_api.FaultWrapper(auth.NoAuthMiddlewareV3(
|
||||
limits.RateLimitingMiddleware(inner_app_v21)))
|
||||
|
@ -123,6 +126,7 @@ def wsgi_app_v21(inner_app_v21=None, fake_auth_context=None,
|
|||
mapper = urlmap.URLMap()
|
||||
mapper['/v2'] = api_v21
|
||||
mapper['/v2.1'] = api_v21
|
||||
mapper['/'] = openstack_api.FaultWrapper(versions.Versions())
|
||||
return mapper
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue