Next round of prep for keystone integration.
* adds middleware for authenticating ec2 signature with keystone * adds middleware for converting keystone response into request context * gives examples of alternative pipelines for keystone integration Next steps: * provide default config with no keystone integration (perhaps setting every context to admin?) * write authmanager to keystone conversion code * add api extension to create and destroy access/secret keys * deprecate authmanager * rename project to tenant
This commit is contained in:
commit
a29fbce672
|
@ -32,6 +32,7 @@ from nova import context
|
|||
from nova import exception
|
||||
from nova import test
|
||||
from nova import wsgi
|
||||
from nova.api import auth
|
||||
from nova.api import ec2
|
||||
from nova.api.ec2 import apirequest
|
||||
from nova.api.ec2 import cloud
|
||||
|
@ -199,7 +200,7 @@ class ApiEc2TestCase(test.TestCase):
|
|||
# NOTE(vish): skipping the Authorizer
|
||||
roles = ['sysadmin', 'netadmin']
|
||||
ctxt = context.RequestContext('fake', 'fake', roles=roles)
|
||||
self.app = wsgi.InjectContext(ctxt,
|
||||
self.app = auth.InjectContext(ctxt,
|
||||
ec2.Requestify(ec2.Authorizer(ec2.Executor()),
|
||||
'nova.api.ec2.cloud.CloudController'))
|
||||
|
||||
|
|
12
nova/wsgi.py
12
nova/wsgi.py
|
@ -271,18 +271,6 @@ class Middleware(Application):
|
|||
return self.process_response(response)
|
||||
|
||||
|
||||
class InjectContext(Middleware):
|
||||
"""Add a 'nova.context' to WSGI environ."""
|
||||
def __init__(self, context, *args, **kwargs):
|
||||
self.context = context
|
||||
super(InjectContext, self).__init__(*args, **kwargs)
|
||||
|
||||
@webob.dec.wsgify(RequestClass=Request)
|
||||
def __call__(self, req):
|
||||
req.environ['nova.context'] = self.context
|
||||
return self.application
|
||||
|
||||
|
||||
class Debug(Middleware):
|
||||
"""Helper class for debugging a WSGI application.
|
||||
|
||||
|
|
Loading…
Reference in New Issue