Don't use a different thread local store to oslo.log
Context logging does not work if we don't do it in a way that oslo.log can pick up the context. - Use the thread local storage from the base RequestContext class. - Use the helper method context.get_current() as appropriate - Update the custom_backend_auth. - Remove heat/openstack/common/local.py as it is now not used. Change-Id: I64f6af5090e98579b93a616bc79f4aaa6cd2b2ee Closes-bug: 1435588
This commit is contained in:
parent
d06b6c098b
commit
5eea2226e0
@ -29,7 +29,6 @@ from heat.common import policy
|
||||
from heat.common import wsgi
|
||||
from heat.db import api as db_api
|
||||
from heat.engine import clients
|
||||
from heat.openstack.common import local
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@ -105,8 +104,6 @@ class RequestContext(context.RequestContext):
|
||||
self.auth_token_info = auth_token_info
|
||||
self.auth_url = auth_url
|
||||
self.roles = roles or []
|
||||
if overwrite or not hasattr(local.store, 'context'):
|
||||
self.update_store()
|
||||
self._session = None
|
||||
self._clients = None
|
||||
self.trust_id = trust_id
|
||||
@ -119,9 +116,6 @@ class RequestContext(context.RequestContext):
|
||||
else:
|
||||
self.is_admin = is_admin
|
||||
|
||||
def update_store(self):
|
||||
local.store.context = self
|
||||
|
||||
@property
|
||||
def session(self):
|
||||
if self._session is None:
|
||||
|
@ -18,12 +18,11 @@
|
||||
Middleware for authenticating against custom backends.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from oslo_context import context
|
||||
from oslo_log import log as logging
|
||||
import webob.exc
|
||||
|
||||
from heat.common.i18n import _
|
||||
from heat.openstack.common import local
|
||||
from heat.rpc import client as rpc_client
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
@ -43,8 +42,8 @@ class AuthProtocol(object):
|
||||
we can't authenticate.
|
||||
"""
|
||||
LOG.debug('Authenticating user token')
|
||||
context = local.store.context
|
||||
authenticated = self.rpc_client.authenticated_to_backend(context)
|
||||
ctx = context.get_current()
|
||||
authenticated = self.rpc_client.authenticated_to_backend(ctx)
|
||||
if authenticated:
|
||||
return self.app(env, start_response)
|
||||
else:
|
||||
|
@ -1,45 +0,0 @@
|
||||
# Copyright 2011 OpenStack Foundation.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
"""Local storage of variables using weak references"""
|
||||
|
||||
import threading
|
||||
import weakref
|
||||
|
||||
|
||||
class WeakLocal(threading.local):
|
||||
def __getattribute__(self, attr):
|
||||
rval = super(WeakLocal, self).__getattribute__(attr)
|
||||
if rval:
|
||||
# NOTE(mikal): this bit is confusing. What is stored is a weak
|
||||
# reference, not the value itself. We therefore need to lookup
|
||||
# the weak reference and return the inner value here.
|
||||
rval = rval()
|
||||
return rval
|
||||
|
||||
def __setattr__(self, attr, value):
|
||||
value = weakref.ref(value)
|
||||
return super(WeakLocal, self).__setattr__(attr, value)
|
||||
|
||||
|
||||
# NOTE(mikal): the name "store" should be deprecated in the future
|
||||
store = WeakLocal()
|
||||
|
||||
# A "weak" store uses weak references and allows an object to fall out of scope
|
||||
# when it falls out of scope in the code that uses the thread local storage. A
|
||||
# "strong" store will hold a reference to the object so that it never falls out
|
||||
# of scope.
|
||||
weak_store = WeakLocal()
|
||||
strong_store = threading.local()
|
@ -3,7 +3,6 @@
|
||||
# The list of modules to copy from oslo-incubator
|
||||
module=crypto
|
||||
module=eventlet_backdoor
|
||||
module=local
|
||||
module=loopingcall
|
||||
module=policy
|
||||
module=service
|
||||
|
Loading…
Reference in New Issue
Block a user