From d668106938ce59fc885d37971f97d917b4a646a5 Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Tue, 14 Mar 2023 17:13:20 +0000 Subject: [PATCH] Ensure keystone endpoint is available The keystone-kerberos test setup is failing often due to accessing the keystone endpoint before it is available. Adding tenacity retries here to deal with this. --- zaza/openstack/charm_tests/kerberos/setup.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/zaza/openstack/charm_tests/kerberos/setup.py b/zaza/openstack/charm_tests/kerberos/setup.py index 11f4afa..84dcd85 100644 --- a/zaza/openstack/charm_tests/kerberos/setup.py +++ b/zaza/openstack/charm_tests/kerberos/setup.py @@ -16,6 +16,9 @@ import logging import tempfile +import tenacity +from keystoneauth1.exceptions.connection import ConnectFailure + import zaza.model from zaza.openstack.utilities import openstack as openstack_utils from zaza.openstack.charm_tests.kerberos import KerberosConfigurationError @@ -125,6 +128,9 @@ def retrieve_and_attach_keytab(): zaza.model.block_until_all_units_idle() +@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 openstack_setup_kerberos(): """Create a test domain, project, and user for kerberos tests.""" kerberos_domain = 'k8s'