From ca72dd455a85cbfa2b78d144ff05572e5324ff53 Mon Sep 17 00:00:00 2001 From: Edward Hope-Morley Date: Thu, 11 Jun 2026 20:34:41 +0100 Subject: [PATCH] Retry create_additional_port_for_machines on ConnectionTimeout If this is called when keystone services are for whatever reason being restarted a timeout occurs and a retry generally works. --- zaza/openstack/utilities/openstack.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zaza/openstack/utilities/openstack.py b/zaza/openstack/utilities/openstack.py index 16a641ade..835b4505d 100644 --- a/zaza/openstack/utilities/openstack.py +++ b/zaza/openstack/utilities/openstack.py @@ -64,6 +64,7 @@ from keystoneclient.v2_0 import client as keystoneclient_v2 from keystoneclient.v3 import client as keystoneclient_v3 from keystoneauth1 import session +from keystoneauth1.exceptions.connection import ConnectTimeout from keystoneauth1.identity import ( v3, v2, @@ -982,6 +983,9 @@ def get_charm_networking_data(limit_gws=None): other_config) +@tenacity.retry(wait=tenacity.wait_exponential(multiplier=1, max=60), + reraise=True, stop=tenacity.stop_after_attempt(10), + retry=tenacity.retry_if_exception_type(ConnectTimeout)) def create_additional_port_for_machines(novaclient, neutronclient, net_id, unit_machine_ids, add_dataport_to_netplan=False):