Merge "Break reference cycle in KeystoneClient plugins"
This commit is contained in:
commit
bf18856442
@ -13,6 +13,8 @@
|
||||
|
||||
"""Client Library for Keystone Resources."""
|
||||
|
||||
import weakref
|
||||
|
||||
from keystoneclient.v2_0 import client as kc
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
@ -48,7 +50,7 @@ class KeystoneClientV2(object):
|
||||
# get a new trust-token even if context.auth_token is set.
|
||||
#
|
||||
# - context.auth_url is expected to contain the v2.0 keystone endpoint
|
||||
self.context = context
|
||||
self._context = weakref.ref(context)
|
||||
self._client = None
|
||||
|
||||
if self.context.trust_id:
|
||||
@ -56,6 +58,12 @@ class KeystoneClientV2(object):
|
||||
# populates self.context.auth_token with a trust-scoped token
|
||||
self._client = self._v2_client_init()
|
||||
|
||||
@property
|
||||
def context(self):
|
||||
ctxt = self._context()
|
||||
assert ctxt is not None, "Need a reference to the context"
|
||||
return ctxt
|
||||
|
||||
@property
|
||||
def client(self):
|
||||
if not self._client:
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
import collections
|
||||
import uuid
|
||||
import weakref
|
||||
|
||||
from keystoneclient.auth.identity import v3 as kc_auth_v3
|
||||
import keystoneclient.exceptions as kc_exception
|
||||
@ -69,7 +70,7 @@ class KeystoneClientV3(object):
|
||||
#
|
||||
# - context.auth_url is expected to contain a versioned keystone
|
||||
# path, we will work with either a v2.0 or v3 path
|
||||
self.context = context
|
||||
self._context = weakref.ref(context)
|
||||
self._client = None
|
||||
self._admin_auth = None
|
||||
self._domain_admin_auth = None
|
||||
@ -96,6 +97,12 @@ class KeystoneClientV3(object):
|
||||
|
||||
LOG.debug('Using stack domain %s' % self.stack_domain)
|
||||
|
||||
@property
|
||||
def context(self):
|
||||
ctxt = self._context()
|
||||
assert ctxt is not None, "Need a reference to the context"
|
||||
return ctxt
|
||||
|
||||
@property
|
||||
def stack_domain(self):
|
||||
"""Domain scope data.
|
||||
|
Loading…
Reference in New Issue
Block a user