Skip loading auth plugin in case the property is set

Currently StoredContext object tries to load auth plugin even when
a specific property(eg. user_domain_id) is already set. However this
is redundant and we can use the value loaded from stack instead.

Backport note:
This change omits the change about GLOBAL_VENV parameter in devstack
because the parameter was added after 2023.1 release.

Story: 2010905
Task: 48723
Change-Id: I09805aa4e2d1b43528f70fb29c8981c01deff955
(cherry picked from commit 7197bd028b)
This commit is contained in:
Takashi Kajinami 2023-09-05 10:30:57 +09:00
parent 6a4c7b57b8
commit afe3e4aa51
1 changed files with 9 additions and 6 deletions

View File

@ -298,8 +298,9 @@ class StoredContext(RequestContext):
@property
def roles(self):
if not getattr(self, '_keystone_loaded', False):
self._load_keystone_data()
if self._roles is None:
if not getattr(self, '_keystone_loaded', False):
self._load_keystone_data()
return self._roles
@roles.setter
@ -308,8 +309,9 @@ class StoredContext(RequestContext):
@property
def user_domain_id(self):
if not getattr(self, '_keystone_loaded', False):
self._load_keystone_data()
if self._user_domain_id is None:
if not getattr(self, '_keystone_loaded', False):
self._load_keystone_data()
return self._user_domain_id
@user_domain_id.setter
@ -318,8 +320,9 @@ class StoredContext(RequestContext):
@property
def project_domain_id(self):
if not getattr(self, '_keystone_loaded', False):
self._load_keystone_data()
if self._project_domain_id is None:
if not getattr(self, '_keystone_loaded', False):
self._load_keystone_data()
return self._project_domain_id
@project_domain_id.setter