Cleanup RequestContext

Now oslo_context.context has a lot of useful method [1],
So we should avoid to reinvent the wheel.

[1]: http://docs.openstack.org/developer/oslo.context/api/context.html

Change-Id: I6409b6784a126fa44c3b4e660afda1c57175d341
This commit is contained in:
OTSUKA, Yuanying 2016-05-16 19:31:48 +09:00
parent 5f04f1d197
commit 5f56304555

View File

@ -10,62 +10,38 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from eventlet.green import threading
from oslo_context import context from oslo_context import context
class RequestContext(context.RequestContext): class RequestContext(context.RequestContext):
"""Extends security contexts from the OpenStack common library.""" """Extends security contexts from the OpenStack common library."""
def __init__(self, auth_token=None, auth_url=None, domain_id=None, def __init__(self, auth_token=None, user=None, project=None, domain=None,
domain_name=None, user_name=None, user_id=None, user_domain=None, project_domain=None, is_admin=False,
project_name=None, project_id=None, roles=None, read_only=False, show_deleted=False, request_id=None,
is_admin=False, read_only=False, show_deleted=False, resource_uuid=None, overwrite=True, roles=None,
request_id=None, trust_id=None, auth_token_info=None, auth_token_info=None):
all_tenants=False, **kwargs):
"""Stores several additional request parameters: """Stores several additional request parameters:
:param domain_id: The ID of the domain. :param auth_token_info: Keystone token info.
:param domain_name: The name of the domain.
""" """
super(RequestContext, self).__init__(auth_token=auth_token, super(RequestContext, self).__init__(
user=user_name, auth_token=auth_token, user=user, tenant=project, domain=domain,
tenant=project_name, user_domain=user_domain, project_domain=project_domain,
is_admin=is_admin, is_admin=is_admin, read_only=read_only, show_deleted=show_deleted,
read_only=read_only, request_id=request_id, resource_uuid=resource_uuid,
show_deleted=show_deleted, overwrite=overwrite, roles=roles
request_id=request_id) )
self.user_name = user_name self.project = project
self.user_id = user_id
self.project_name = project_name
self.project_id = project_id
self.domain_id = domain_id
self.domain_name = domain_name
self.roles = roles
self.auth_url = auth_url
self.auth_token_info = auth_token_info self.auth_token_info = auth_token_info
self.trust_id = trust_id
self.all_tenants = all_tenants
def to_dict(self): def to_dict(self):
value = super(RequestContext, self).to_dict() value = super(RequestContext, self).to_dict()
value.update({'auth_token': self.auth_token, value.update({
'auth_url': self.auth_url, 'project': self.project,
'domain_id': self.domain_id, 'auth_token_info': self.auth_token_info,
'domain_name': self.domain_name, })
'user_name': self.user_name,
'user_id': self.user_id,
'project_name': self.project_name,
'project_id': self.project_id,
'is_admin': self.is_admin,
'read_only': self.read_only,
'roles': self.roles,
'show_deleted': self.show_deleted,
'request_id': self.request_id,
'trust_id': self.trust_id,
'auth_token_info': self.auth_token_info,
'all_tenants': self.all_tenants})
return value return value
@classmethod @classmethod
@ -77,38 +53,15 @@ def make_context(*args, **kwargs):
return RequestContext(*args, **kwargs) return RequestContext(*args, **kwargs)
def make_admin_context(show_deleted=False, all_tenants=False): def get_admin_context(show_deleted=False):
"""Create an administrator context. """Create an administrator context."""
context = RequestContext(None,
:param show_deleted: if True, will show deleted items when query db
"""
context = RequestContext(user_id=None,
project=None, project=None,
is_admin=True, is_admin=True,
show_deleted=show_deleted, show_deleted=show_deleted,
all_tenants=all_tenants) overwrite=False)
return context return context
_CTX_STORE = threading.local() def get_current():
_CTX_KEY = 'current_ctx' return context.get_current()
def has_ctx():
return hasattr(_CTX_STORE, _CTX_KEY)
def ctx():
return getattr(_CTX_STORE, _CTX_KEY)
def set_ctx(new_ctx):
if not new_ctx and has_ctx():
delattr(_CTX_STORE, _CTX_KEY)
if hasattr(context._request_store, 'context'):
delattr(context._request_store, 'context')
if new_ctx:
setattr(_CTX_STORE, _CTX_KEY, new_ctx)
setattr(context._request_store, 'context', new_ctx)