From be3ddcd09b7713d3651020d87a9d3295a007efd8 Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Tue, 26 May 2015 16:01:07 -0700 Subject: [PATCH] Don't cache keystone tokens as KSC does it for us We don't need to keep track of what our current valid keystone token is becauase keystone client does it for us. Instead defer to ksc.session.get_token() to either reuse a valid token or make a new one for us if necessary. Change-Id: I23f90b6292f32ce9cef962bdc641c291e4d2fe4d --- shade/__init__.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/shade/__init__.py b/shade/__init__.py index 5427a6c21..5a8089838 100644 --- a/shade/__init__.py +++ b/shade/__init__.py @@ -263,7 +263,6 @@ class OpenStackCloud(object): self._file_hash_cache = dict() self._keystone_session = None - self._auth_token = None self._cinder_client = None self._glance_client = None @@ -390,9 +389,9 @@ class OpenStackCloud(object): @property def auth_token(self): - if not self._auth_token: - self._auth_token = self.keystone_session.get_token() - return self._auth_token + # Keystone's session will reuse a token if it is still valid. + # We don't need to track validity here, just get_token() each time. + return self.keystone_session.get_token() @property def project_cache(self): @@ -2246,10 +2245,13 @@ class OperatorCloud(OpenStackCloud): @property def auth_token(self): if self.auth_type in (None, "None", ''): - return self._auth_token - if not self._auth_token: - self._auth_token = self.keystone_session.get_token() - return self._auth_token + # Ironic can operate in no keystone mode. Signify this with a + # token of None. + return None + else: + # Keystone's session will reuse a token if it is still valid. + # We don't need to track validity here, just get_token() each time. + return self.keystone_session.get_token() @property def ironic_client(self):