Merge "Add ServiceCatalog entries to enable Cinder usage"
This commit is contained in:
commit
b0255f5b35
@ -18,6 +18,7 @@ Common Auth Middleware.
|
||||
|
||||
"""
|
||||
|
||||
import json
|
||||
import webob.dec
|
||||
import webob.exc
|
||||
|
||||
@ -95,13 +96,18 @@ class NovaKeystoneContext(wsgi.Middleware):
|
||||
remote_address = req.remote_addr
|
||||
if FLAGS.use_forwarded_for:
|
||||
remote_address = req.headers.get('X-Forwarded-For', remote_address)
|
||||
|
||||
if req.headers.get('X_SERVICE_CATALOG') is not None:
|
||||
service_catalog = json.loads(req.headers.get('X_SERVICE_CATALOG'))
|
||||
|
||||
ctx = context.RequestContext(user_id,
|
||||
project_id,
|
||||
user_name=user_name,
|
||||
project_name=project_name,
|
||||
roles=roles,
|
||||
auth_token=auth_token,
|
||||
remote_address=remote_address)
|
||||
remote_address=remote_address,
|
||||
service_catalog=service_catalog)
|
||||
|
||||
req.environ['nova.context'] = ctx
|
||||
return self.application
|
||||
|
@ -261,13 +261,16 @@ class EC2KeystoneAuth(wsgi.Middleware):
|
||||
if FLAGS.use_forwarded_for:
|
||||
remote_address = req.headers.get('X-Forwarded-For',
|
||||
remote_address)
|
||||
|
||||
catalog = result['access']['serviceCatalog']
|
||||
ctxt = context.RequestContext(user_id,
|
||||
project_id,
|
||||
user_name=user_name,
|
||||
project_name=project_name,
|
||||
roles=roles,
|
||||
auth_token=token_id,
|
||||
remote_address=remote_address)
|
||||
remote_address=remote_address,
|
||||
service_catalog=catalog)
|
||||
|
||||
req.environ['nova.context'] = ctxt
|
||||
|
||||
|
@ -45,7 +45,7 @@ class RequestContext(object):
|
||||
roles=None, remote_address=None, timestamp=None,
|
||||
request_id=None, auth_token=None, overwrite=True,
|
||||
quota_class=None, user_name=None, project_name=None,
|
||||
**kwargs):
|
||||
service_catalog=None, **kwargs):
|
||||
"""
|
||||
:param read_deleted: 'no' indicates deleted records are hidden, 'yes'
|
||||
indicates deleted records are visible, 'only' indicates that
|
||||
@ -80,6 +80,7 @@ class RequestContext(object):
|
||||
request_id = generate_request_id()
|
||||
self.request_id = request_id
|
||||
self.auth_token = auth_token
|
||||
self.service_catalog = service_catalog
|
||||
|
||||
# NOTE(markmc): this attribute is currently only used by the
|
||||
# rs_limits turnstile pre-processor.
|
||||
@ -121,6 +122,7 @@ class RequestContext(object):
|
||||
'auth_token': self.auth_token,
|
||||
'quota_class': self.quota_class,
|
||||
'user_name': self.user_name,
|
||||
'service_catalog': self.service_catalog,
|
||||
'project_name': self.project_name}
|
||||
|
||||
@classmethod
|
||||
|
@ -12,6 +12,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import json
|
||||
import webob
|
||||
|
||||
import nova.api.auth
|
||||
@ -33,6 +34,7 @@ class TestNovaKeystoneContextMiddleware(test.TestCase):
|
||||
self.request = webob.Request.blank('/')
|
||||
self.request.headers['X_TENANT_ID'] = 'testtenantid'
|
||||
self.request.headers['X_AUTH_TOKEN'] = 'testauthtoken'
|
||||
self.request.headers['X_SERVICE_CATALOG'] = json.dumps({})
|
||||
|
||||
def test_no_user_or_user_id(self):
|
||||
response = self.request.get_response(self.middleware)
|
||||
|
Loading…
Reference in New Issue
Block a user