From 29e46c4ed7d4b006aa16bc674c7d8bb8522044c7 Mon Sep 17 00:00:00 2001 From: Eduardo Olivares Date: Wed, 21 Jul 2021 16:37:44 +0200 Subject: [PATCH] Retry neutron agent list requests upon any exception test_neutron_agents_are_alive only retried neutron agent list requests when the error received was a ServiceUnavailable exception. With this patch, the retry mechanism is extended to the more generic NeutronClientException We detected some faults tests failed because of a temporary 504 Gateway Timeout error and this patch should fix that Change-Id: I4709c7bc45dd806304fac74befb309261970ada6 --- tobiko/openstack/neutron/__init__.py | 1 + tobiko/openstack/neutron/_client.py | 1 + tobiko/openstack/tests/_neutron.py | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tobiko/openstack/neutron/__init__.py b/tobiko/openstack/neutron/__init__.py index 6274e9faa..3b2e7b35d 100644 --- a/tobiko/openstack/neutron/__init__.py +++ b/tobiko/openstack/neutron/__init__.py @@ -45,6 +45,7 @@ skip_if_is_old_ovn = _agent.skip_if_is_old_ovn NeutronClientFixture = _client.NeutronClientFixture ServiceUnavailable = _client.ServiceUnavailable +NeutronClientException = _client.NeutronClientException neutron_client = _client.neutron_client get_neutron_client = _client.get_neutron_client find_subnet = _client.find_subnet diff --git a/tobiko/openstack/neutron/_client.py b/tobiko/openstack/neutron/_client.py index 647564d45..dbffea38e 100644 --- a/tobiko/openstack/neutron/_client.py +++ b/tobiko/openstack/neutron/_client.py @@ -23,6 +23,7 @@ import tobiko from tobiko.openstack import _client +NeutronClientException = neutronclient.exceptions.NeutronClientException ServiceUnavailable = neutronclient.exceptions.ServiceUnavailable diff --git a/tobiko/openstack/tests/_neutron.py b/tobiko/openstack/tests/_neutron.py index 8b2bec062..aa147fa3b 100644 --- a/tobiko/openstack/tests/_neutron.py +++ b/tobiko/openstack/tests/_neutron.py @@ -44,7 +44,8 @@ def test_neutron_agents_are_alive(timeout=300., interval=5.) \ try: # get Neutron agent list agents = neutron.list_agents() - except neutron.ServiceUnavailable as ex: + except (neutron.ServiceUnavailable, + neutron.NeutronClientException) as ex: if attempt.is_last: raise else: