summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/api/openstack/auth.py4
-rw-r--r--nova/api/openstack/views/addresses.py2
-rw-r--r--nova/api/openstack/views/flavors.py2
-rw-r--r--nova/api/openstack/views/images.py2
-rw-r--r--nova/api/openstack/views/servers.py2
-rw-r--r--nova/context.py7
-rw-r--r--nova/tests/api/openstack/fakes.py4
-rw-r--r--nova/tests/api/openstack/test_servers.py16
8 files changed, 13 insertions, 26 deletions
diff --git a/nova/api/openstack/auth.py b/nova/api/openstack/auth.py
index e33a9faf5..c820a5963 100644
--- a/nova/api/openstack/auth.py
+++ b/nova/api/openstack/auth.py
@@ -68,9 +68,9 @@ class AuthMiddleware(wsgi.Middleware):
not self.auth.is_project_member(user, account):
return faults.Fault(webob.exc.HTTPUnauthorized())
+ req.environ['nova.context'] = context.RequestContext(user, account)
version = req.path.split('/')[1].replace('v', '')
- req.environ['nova.context'] = context.RequestContext(user, account,
- version=version)
+ req.environ['version'] = version
return self.application
def has_authentication(self, req):
diff --git a/nova/api/openstack/views/addresses.py b/nova/api/openstack/views/addresses.py
index d764e5229..65c24dbd7 100644
--- a/nova/api/openstack/views/addresses.py
+++ b/nova/api/openstack/views/addresses.py
@@ -8,7 +8,7 @@ def get_view_builder(req):
A factory method that returns the correct builder based on the version of
the api requested.
'''
- version = req.environ['nova.context'].version
+ version = req.environ['version']
if version == '1.1':
return ViewBuilder_1_1()
else:
diff --git a/nova/api/openstack/views/flavors.py b/nova/api/openstack/views/flavors.py
index dfcc2644c..f945f9f8f 100644
--- a/nova/api/openstack/views/flavors.py
+++ b/nova/api/openstack/views/flavors.py
@@ -5,7 +5,7 @@ def get_view_builder(req):
A factory method that returns the correct builder based on the version of
the api requested.
'''
- version = req.environ['nova.context'].version
+ version = req.environ['version']
base_url = req.application_url
if version == '1.1':
return ViewBuilder_1_1(base_url)
diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py
index cd61ed656..a59d4a557 100644
--- a/nova/api/openstack/views/images.py
+++ b/nova/api/openstack/views/images.py
@@ -5,7 +5,7 @@ def get_view_builder(req):
A factory method that returns the correct builder based on the version of
the api requested.
'''
- version = req.environ['nova.context'].version
+ version = req.environ['version']
base_url = req.application_url
if version == '1.1':
return ViewBuilder_1_1(base_url)
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index 7ca2b2427..2549cc11c 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -11,7 +11,7 @@ def get_view_builder(req):
A factory method that returns the correct builder based on the version of
the api requested.
'''
- version = req.environ['nova.context'].version
+ version = req.environ['version']
addresses_builder = addresses_view.get_view_builder(req)
if version == '1.1':
flavor_builder = flavors_view.get_view_builder(req)
diff --git a/nova/context.py b/nova/context.py
index 0f3eb9ae4..0256bf448 100644
--- a/nova/context.py
+++ b/nova/context.py
@@ -29,8 +29,7 @@ from nova import utils
class RequestContext(object):
def __init__(self, user, project, is_admin=None, read_deleted=False,
- remote_address=None, timestamp=None, request_id=None,
- version=None):
+ remote_address=None, timestamp=None, request_id=None):
if hasattr(user, 'id'):
self._user = user
self.user_id = user.id
@@ -61,7 +60,6 @@ class RequestContext(object):
chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-'
request_id = ''.join([random.choice(chars) for x in xrange(20)])
self.request_id = request_id
- self.version = version
@property
def user(self):
@@ -95,8 +93,7 @@ class RequestContext(object):
'read_deleted': self.read_deleted,
'remote_address': self.remote_address,
'timestamp': utils.isotime(self.timestamp),
- 'request_id': self.request_id,
- 'version': self.version}
+ 'request_id': self.request_id}
@classmethod
def from_dict(cls, values):
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index 9f8ee9b56..9c3b53ac7 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -68,7 +68,9 @@ def fake_auth_init(self, application):
@webob.dec.wsgify
def fake_wsgi(self, req):
- req.environ['nova.context'] = context.RequestContext(1, 1, version='1.0')
+ req.environ['nova.context'] = context.RequestContext(1, 1)
+ if not req.environ.get('version'):
+ req.environ['version'] = '1.0'
if req.body:
req.environ['inst_dict'] = json.loads(req.body)
return self.application
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index ac115ebf7..6b804d3b4 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -178,17 +178,12 @@ class ServersTest(test.TestCase):
self.assertEqual(addresses["private"][0], private)
def test_get_server_by_id_with_addresses_v1_1(self):
- class FakeRequestContext(object):
- def __init__(self, user, project, *args, **kwargs):
- self.user_id = 1
- self.project_id = 1
- self.version = '1.1'
- self.stubs.Set(context, 'RequestContext', FakeRequestContext)
private = "192.168.0.3"
public = ["1.2.3.4"]
new_return_server = return_server_with_addresses(private, public)
self.stubs.Set(nova.db.api, 'instance_get', new_return_server)
req = webob.Request.blank('/v1.1/servers/1')
+ req.environ['version'] = '1.1'
res = req.get_response(fakes.wsgi_app())
res_dict = json.loads(res.body)
self.assertEqual(res_dict['server']['id'], '1')
@@ -367,15 +362,8 @@ class ServersTest(test.TestCase):
self.assertEqual(s['metadata']['seq'], i)
def test_get_all_server_details_v1_1(self):
- class FakeRequestContext(object):
- def __init__(self, user, project, *args, **kwargs):
- self.user_id = 1
- self.project_id = 1
- self.version = '1.1'
- self.is_admin = True
-
- self.stubs.Set(context, 'RequestContext', FakeRequestContext)
req = webob.Request.blank('/v1.1/servers/detail')
+ req.environ['version'] = '1.1'
res = req.get_response(fakes.wsgi_app())
res_dict = json.loads(res.body)