Add ping method to auth engines to determine if they are reachable

This commit is contained in:
Joseph Schorr 2017-05-10 20:55:10 -07:00
parent a6ea16abc5
commit 0dfb6806e3
6 changed files with 67 additions and 0 deletions

View file

@ -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,