Merge "add wait for listener operational status after lb status" into mcp/epoxy
diff --git a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py
index 66cb59b..d6680e2 100644
--- a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py
+++ b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py
@@ -32,6 +32,8 @@
LOG = logging.getLogger(__name__)
+@testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@testtools.skipUnless(
CONF.validation.run_validation,
'Active-Standby tests will not work without run_validation enabled.')
@@ -63,6 +65,16 @@
cls.mem_lb_client.cleanup_loadbalancer,
cls.lb_id)
+ # (gzimin): Add additional waiter in case of TungstenFabric
+ # because for correct assignment of Floating IP for loadbalancer
+ # we need to wait for amphora port
+ if config.is_tungstenfabric_backend_enabled():
+ waiters.wait_for_status(cls.mem_lb_client.show_loadbalancer,
+ cls.lb_id, const.PROVISIONING_STATUS,
+ const.ACTIVE,
+ CONF.load_balancer.lb_build_interval,
+ CONF.load_balancer.lb_build_timeout)
+
if CONF.validation.connect_method == 'floating':
port_id = lb[const.VIP_PORT_ID]
result = cls.lb_mem_float_ip_client.create_floatingip(
diff --git a/octavia_tempest_plugin/tests/api/v2/test_amphora.py b/octavia_tempest_plugin/tests/api/v2/test_amphora.py
index 06f93ac..af0b33b 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_amphora.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_amphora.py
@@ -105,9 +105,9 @@
# Test filtering by loadbalancer_id
amphorae = self.lb_admin_amphora_client.list_amphorae(
query_params='{loadbalancer_id}={lb_id}'.format(
- loadbalancer_id=const.LOADBALANCER_ID, lb_id=self.lb_id))
+ loadbalancer_id=const.LOADBALANCER_ID, lb_id=lb_id))
self.assertEqual(self._expected_amp_count(amphorae), len(amphorae))
- self.assertEqual(self.lb_id, amphorae[0][const.LOADBALANCER_ID])
+ self.assertEqual(lb_id, amphorae[0][const.LOADBALANCER_ID])
# Test RBAC for show amphora
if expected_allowed:
@@ -218,6 +218,11 @@
for new_amp in after_amphorae:
self.assertNotEqual(amphora_1[const.ID], new_amp[const.ID])
+ waiters.wait_for_status(self.lb_admin_amphora_client.show_amphora,
+ new_amp[const.ID], const.STATUS,
+ const.STATUS_ALLOCATED,
+ CONF.load_balancer.build_interval,
+ CONF.load_balancer.build_timeout)
@testtools.skipIf(CONF.load_balancer.test_with_noop,
'Log offload tests will not work in noop mode.')
diff --git a/octavia_tempest_plugin/tests/api/v2/test_listener.py b/octavia_tempest_plugin/tests/api/v2/test_listener.py
index 46735a5..18df3d5 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_listener.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_listener.py
@@ -253,6 +253,8 @@
def test_tcp_listener_create(self):
self._test_listener_create(const.TCP, 8002)
+ @testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@decorators.idempotent_id('1a6ba0d0-f309-4088-a686-dda0e9ab7e43')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -683,6 +685,8 @@
def test_https_listener_list(self):
self._test_listener_list(const.HTTPS, 8030)
+ @testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@decorators.idempotent_id('5473e071-8277-4ac5-9277-01ecaf46e274')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -1102,6 +1106,8 @@
def test_https_listener_show(self):
self._test_listener_show(const.HTTPS, 8051)
+ @testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@decorators.idempotent_id('b851b754-4333-4115-9063-a9fce44c2e46')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -1303,6 +1309,8 @@
def test_https_listener_update(self):
self._test_listener_update(const.HTTPS, 8061)
+ @testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@decorators.idempotent_id('cbba6bf8-9184-4da5-95e9-5efe1f89ddf0')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
@@ -1611,6 +1619,8 @@
def test_https_listener_delete(self):
self._test_listener_delete(const.HTTPS, 8071)
+ @testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@decorators.idempotent_id('322a6372-6b56-4a3c-87e3-dd82074bc83e')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
diff --git a/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py b/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py
index 8977657..85fcef0 100644
--- a/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py
+++ b/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py
@@ -301,6 +301,7 @@
CONF.load_balancer.check_interval,
CONF.load_balancer.check_timeout)
+ @decorators.attr(type='smoke')
@decorators.idempotent_id('887ece26-0f7b-4933-89ab-5bb00b106ee0')
def test_basic_tls_traffic(self):
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
index db92352..c984f04 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
@@ -1482,6 +1482,8 @@
number_of_retries=3),
'Failed - all UDP retries to LB VIP has failed')
+ @testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@decorators.attr(type='slow')
@decorators.idempotent_id('cd5aeefa-0e16-11eb-b8dc-74e5f9e2a801')
def test_hm_op_status_changed_as_expected_on_update(self):
@@ -1568,6 +1570,8 @@
CONF.load_balancer.check_timeout,
error_ok=True, pool_id=pool_id)
+ @testtools.skipIf(CONF.load_balancer.provider == 'tungstenfabric',
+ "Not supported by TungstenFabric")
@decorators.idempotent_id('05e99fb3-2b37-478e-889b-77f1c731a471')
@testtools.skipUnless(
CONF.loadbalancer_feature_enabled.prometheus_listener_enabled,
diff --git a/octavia_tempest_plugin/tests/waiters.py b/octavia_tempest_plugin/tests/waiters.py
index 820831a..7cd9fef 100644
--- a/octavia_tempest_plugin/tests/waiters.py
+++ b/octavia_tempest_plugin/tests/waiters.py
@@ -76,8 +76,8 @@
if caller:
message = '({caller}) {message}'.format(caller=caller,
message=message)
- raise exceptions.UnexpectedResponseCode(message)
-
+ if not error_ok:
+ raise exceptions.UnexpectedResponseCode(message)
if int(time.time()) - start >= check_timeout:
message = (
'{name} {field} failed to update to {expected_status} within '
@@ -165,7 +165,7 @@
LOG.info('%s\'s status updated to DELETED.',
show_client.__name__)
return
- elif int(time.time()) - start >= check_timeout:
+ if int(time.time()) - start >= check_timeout:
message = (
'{name} {field} failed to update to DELETED or become not '
'found (404) within the required time {timeout}. Current '