Merge "[TF] Fix issue with missing NetworkIpAvailability extension." into mcp/epoxy
diff --git a/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py b/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
index f1abffe..f810a2a 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_healthmonitor.py
@@ -36,6 +36,7 @@
 
     @classmethod
     def skip_checks(cls):
+        super(HealthMonitorAPITest, cls).skip_checks()
         if CONF.load_balancer.provider == 'tungstenfabric':
             raise cls.skipException("Health monitor entity isn't applicable "
                                     "in case of TungstenFabric.")
diff --git a/octavia_tempest_plugin/tests/api/v2/test_l7policy.py b/octavia_tempest_plugin/tests/api/v2/test_l7policy.py
index af62c79..50aa35f 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_l7policy.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_l7policy.py
@@ -32,6 +32,7 @@
 
     @classmethod
     def skip_checks(cls):
+        super(L7PolicyAPITest, cls).skip_checks()
         if CONF.load_balancer.provider == 'tungstenfabric':
             raise cls.skipException('Not supported by TungstenFabric.')
 
diff --git a/octavia_tempest_plugin/tests/api/v2/test_l7rule.py b/octavia_tempest_plugin/tests/api/v2/test_l7rule.py
index 8607344..282a541 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_l7rule.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_l7rule.py
@@ -32,6 +32,7 @@
 
     @classmethod
     def skip_checks(cls):
+        super(L7RuleAPITest, cls).skip_checks()
         if CONF.load_balancer.provider == 'tungstenfabric':
             raise cls.skipException('Not supported by TungstenFabric.')
 
diff --git a/octavia_tempest_plugin/tests/api/v2/test_member.py b/octavia_tempest_plugin/tests/api/v2/test_member.py
index a4c7630..c666085 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_member.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_member.py
@@ -2328,7 +2328,7 @@
             CONF.load_balancer.build_timeout,
             pool_id=pool_id)
         status = const.OFFLINE
-        if CONF.load_balancer.test_with_noop:
+        if CONF.load_balancer.test_with_noop or provider == 'tungstenfabric':
             status = const.NO_MONITOR
         member = waiters.wait_for_status(
             self.mem_member_client.show_member,
diff --git a/octavia_tempest_plugin/tests/api/v2/test_pool.py b/octavia_tempest_plugin/tests/api/v2/test_pool.py
index 4c9508d..c1e2500 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_pool.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_pool.py
@@ -40,12 +40,7 @@
         lb_name = data_utils.rand_name("lb_member_lb1_pool")
         lb_kwargs = {const.PROVIDER: CONF.load_balancer.provider,
                      const.NAME: lb_name}
-        if CONF.load_balancer.provider == 'tungstenfabric':
-            cls._setup_lb_network_kwargs(lb_kwargs, 4)
-        else:
-            lb_kwargs.update({
-                const.VIP_NETWORK_ID: cls.lb_member_vip_net[const.ID]
-            })
+        cls._setup_lb_network_kwargs(lb_kwargs)
 
         lb = cls.mem_lb_client.create_loadbalancer(**lb_kwargs)
         cls.lb_id = lb[const.ID]
@@ -351,7 +346,7 @@
                                         algorithm=algorithm)
             if not listener_protocol:
                 raise testtools.TestCase.skipException(
-                    "TungstenFabric can't create listener with loadbalancer "
+                    "TungstenFabric can't create pool with loadbalancer "
                     "argument."
                 )
 
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
index b9f0107..eff0e1f 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_healthmonitor.py
@@ -32,6 +32,7 @@
 
     @classmethod
     def skip_checks(cls):
+        super(HealthMonitorScenarioTest, cls).skip_checks()
         if CONF.load_balancer.provider == 'tungstenfabric':
             raise cls.skipException("Health monitor entity isn't applicable "
                                     "in case of TungstenFabric.")
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py b/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py
index aa9f6f4..ffa084b 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py
@@ -30,6 +30,7 @@
 
     @classmethod
     def skip_checks(cls):
+        super(L7PolicyScenarioTest, cls).skip_checks()
         if CONF.load_balancer.provider == 'tungstenfabric':
             raise cls.skipException('Not supported by TungstenFabric.')
 
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py b/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py
index ce5a5bf..e3d9b91 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py
@@ -30,6 +30,7 @@
 
     @classmethod
     def skip_checks(cls):
+        super(L7RuleScenarioTest, cls).skip_checks()
         if CONF.load_balancer.provider == 'tungstenfabric':
             raise cls.skipException('Not supported by TungstenFabric.')
 
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
index f63d96d..07394cf 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
@@ -344,7 +344,7 @@
                                         algorithm=algorithm)
             if not listener_protocol:
                 raise testtools.TestCase.skipException(
-                    "TungstenFabric can't create listener with loadbalancer "
+                    "TungstenFabric can't create pool with loadbalancer "
                     "argument."
                 )
 
@@ -448,6 +448,12 @@
         parser.parse(pool[const.CREATED_AT])
         parser.parse(pool[const.UPDATED_AT])
         UUID(pool[const.ID])
+        if CONF.load_balancer.provider == 'tungstenfabric':
+            # Operating status for a pool without members will be ONLINE if
+            # it is attached to a listener
+            self.assertEqual(const.ONLINE, pool[const.OPERATING_STATUS])
+        else:
+            self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS])
         self.assertEqual(pool_protocol, pool[const.PROTOCOL])
         self.assertEqual(1, len(pool[const.LOADBALANCERS]))
         self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID])
diff --git a/octavia_tempest_plugin/tests/test_base.py b/octavia_tempest_plugin/tests/test_base.py
index 09bb71a..2f58dfc 100644
--- a/octavia_tempest_plugin/tests/test_base.py
+++ b/octavia_tempest_plugin/tests/test_base.py
@@ -666,7 +666,7 @@
     @classmethod
     def check_tf_compatibility(cls, protocol=None, algorithm=None):
         # TungstenFabric supported protocols and algorithms
-        tf_protocols = [const.HTTP, const.HTTPS, const.TCP, const.UDP,
+        tf_protocols = [const.HTTP, const.HTTPS, const.TCP,
                         const.TERMINATED_HTTPS]
         tf_algorithms = [const.LB_ALGORITHM_ROUND_ROBIN,
                          const.LB_ALGORITHM_LEAST_CONNECTIONS,