From 80b10a295c85a86ab93cbe7a5e27a2eb20a72e6f Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Tue, 14 Mar 2023 13:03:00 +0000 Subject: [PATCH] Ensure keystone endpoint is available The keystone-ldap tests are failing often due to accessing the keystone endpoint before it is available. Adding tenacity retries here to deal with this. --- zaza/openstack/charm_tests/keystone/tests.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/zaza/openstack/charm_tests/keystone/tests.py b/zaza/openstack/charm_tests/keystone/tests.py index 3e800d4..2047d87 100644 --- a/zaza/openstack/charm_tests/keystone/tests.py +++ b/zaza/openstack/charm_tests/keystone/tests.py @@ -18,7 +18,9 @@ import configparser import json import logging import pprint +import tenacity import keystoneauth1 +from keystoneauth1.exceptions.connection import ConnectFailure import zaza.model import zaza.openstack.utilities.exceptions as zaza_exceptions @@ -511,6 +513,9 @@ class LdapTests(BaseKeystoneTest): } } + @tenacity.retry(wait=tenacity.wait_exponential(multiplier=2, max=60), + reraise=True, stop=tenacity.stop_after_attempt(5), + retry=tenacity.retry_if_exception_type(ConnectFailure)) def _find_keystone_v3_user(self, username, domain, group=None): """Find a user within a specified keystone v3 domain.