Add ping method to auth engines to determine if they are reachable
This commit is contained in:
parent
a6ea16abc5
commit
0dfb6806e3
6 changed files with 67 additions and 0 deletions
|
@ -36,6 +36,21 @@ class KeystoneV2Users(FederatedUsers):
|
|||
self.debug = os.environ.get('USERS_DEBUG') == '1'
|
||||
self.requires_email = requires_email
|
||||
|
||||
def ping(self):
|
||||
try:
|
||||
keystone_client = kclient.Client(username=self.admin_username, password=self.admin_password,
|
||||
tenant_name=self.admin_tenant, auth_url=self.auth_url,
|
||||
timeout=self.timeout, debug=self.debug)
|
||||
keystone_client.user_id # Make sure we loaded a valid user.
|
||||
except KeystoneUnauthorized as kut:
|
||||
logger.exception('Keystone unauthorized admin')
|
||||
return (False, 'Keystone admin credentials are invalid: %s' % kut.message)
|
||||
except Exception:
|
||||
logger.exception('Keystone unauthorized admin')
|
||||
return (False, 'Keystone ping check failed: %s' % kut.message)
|
||||
|
||||
return (True, None)
|
||||
|
||||
def verify_credentials(self, username_or_email, password):
|
||||
try:
|
||||
keystone_client = kclient.Client(username=username_or_email, password=password,
|
||||
|
@ -89,6 +104,18 @@ class KeystoneV3Users(FederatedUsers):
|
|||
tenant_name=self.admin_tenant, auth_url=self.auth_url,
|
||||
timeout=self.timeout, debug=self.debug)
|
||||
|
||||
def ping(self):
|
||||
try:
|
||||
self._get_admin_client().user_id # Make sure we loaded a valid user
|
||||
except KeystoneUnauthorized as kut:
|
||||
logger.exception('Keystone unauthorized admin')
|
||||
return (False, 'Keystone admin credentials are invalid: %s' % kut.message)
|
||||
except Exception:
|
||||
logger.exception('Keystone unauthorized admin')
|
||||
return (False, 'Keystone ping check failed: %s' % kut.message)
|
||||
|
||||
return (True, None)
|
||||
|
||||
def verify_credentials(self, username_or_email, password):
|
||||
try:
|
||||
keystone_client = kv3client.Client(username=username_or_email, password=password,
|
||||
|
|
Reference in a new issue