# Copyright (c) 2013 Mirantis, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. from muranoapi.openstack.common import uuidutils class RequestContext(object): """ Stores information about the security context under which the user accesses the system, as well as additional request information. """ def __init__(self, auth_token=None, user=None, tenant=None, roles=None, service_catalog=None, session=None): self.auth_token = auth_token self.user = user self.tenant = tenant self.roles = roles or [] self.request_id = uuidutils.generate_uuid() self.service_catalog = service_catalog self.session = session def to_dict(self): # NOTE(ameade): These keys are named to correspond with the default # format string for logging the context in openstack common return { 'request_id': self.request_id, #NOTE(bcwaldon): openstack-common logging expects 'user' 'user': self.user, 'user_id': self.user, #NOTE(bcwaldon): openstack-common logging expects 'tenant' 'tenant': self.tenant, 'tenant_id': self.tenant, 'project_id': self.tenant, 'roles': self.roles, 'auth_token': self.auth_token, 'session': self.session } @classmethod def from_dict(cls, values): return cls(**values)