Add config option for pool algorithms

There is at least one provider driver that does not currently support
any other pool algorithm than round-robin. This patch adds a new option
that allows one to toggle enablement of pool algorithms (default is
True/enabled).

Change-Id: I11e1569f91fe66a6bc735a1abd7b1545ca1490a0
diff --git a/octavia_tempest_plugin/config.py b/octavia_tempest_plugin/config.py
index 701eb8e..425ad60 100644
--- a/octavia_tempest_plugin/config.py
+++ b/octavia_tempest_plugin/config.py
@@ -167,18 +167,22 @@
 LBFeatureEnabledGroup = [
     cfg.BoolOpt('health_monitor_enabled',
                 default=True,
-                help="Whether Health Monitor is available with provider"
-                     " driver or not."),
+                help="Whether Health Monitor is available with provider "
+                     "driver or not."),
     cfg.BoolOpt('terminated_tls_enabled',
                 default=True,
                 help="Whether TLS termination is available with provider "
                      "driver or not."),
     cfg.BoolOpt('l7_protocol_enabled',
                 default=True,
-                help="Whether L7 Protocols are available with the provider"
-                     " driver or not."),
+                help="Whether L7 Protocols are available with the provider "
+                     "driver or not."),
+    cfg.BoolOpt('pool_algorithms_enabled',
+                default=True,
+                help="Whether pool algorithms are available with provider"
+                     "driver or not."),
     cfg.StrOpt('l4_protocol',
                default="TCP",
-               help="The type of L4 Protocol which is supported with the"
-                    " provider driver."),
+               help="The type of L4 Protocol which is supported with the "
+                    "provider driver."),
 ]
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
index 1cdd727..d1090c7 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
@@ -51,9 +51,9 @@
                                 CONF.load_balancer.lb_build_interval,
                                 CONF.load_balancer.lb_build_timeout)
         cls.protocol = const.HTTP
-        lb_feature_enabled = CONF.loadbalancer_feature_enabled
-        if not lb_feature_enabled.l7_protocol_enabled:
-            cls.protocol = lb_feature_enabled.l4_protocol
+        cls.lb_feature_enabled = CONF.loadbalancer_feature_enabled
+        if not cls.lb_feature_enabled.l7_protocol_enabled:
+            cls.protocol = cls.lb_feature_enabled.l4_protocol
 
         listener_name = data_utils.rand_name("lb_member_listener1_pool")
         listener_kwargs = {
@@ -161,8 +161,12 @@
             const.NAME: new_name,
             const.DESCRIPTION: new_description,
             const.ADMIN_STATE_UP: True,
-            const.LB_ALGORITHM: const.LB_ALGORITHM_LEAST_CONNECTIONS,
         }
+
+        if self.lb_feature_enabled.pool_algorithms_enabled:
+            pool_update_kwargs[const.LB_ALGORITHM] = \
+                const.LB_ALGORITHM_LEAST_CONNECTIONS
+
         if self.protocol == const.HTTP:
             pool_update_kwargs[const.SESSION_PERSISTENCE] = {
                 const.TYPE: const.SESSION_PERSISTENCE_HTTP_COOKIE}
@@ -184,8 +188,9 @@
         self.assertEqual(new_name, pool[const.NAME])
         self.assertEqual(new_description, pool[const.DESCRIPTION])
         self.assertTrue(pool[const.ADMIN_STATE_UP])
-        self.assertEqual(const.LB_ALGORITHM_LEAST_CONNECTIONS,
-                         pool[const.LB_ALGORITHM])
+        if self.lb_feature_enabled.pool_algorithms_enabled:
+            self.assertEqual(const.LB_ALGORITHM_LEAST_CONNECTIONS,
+                             pool[const.LB_ALGORITHM])
         self.assertIsNotNone(pool.get(const.SESSION_PERSISTENCE))
         if self.protocol == const.HTTP:
             self.assertEqual(const.SESSION_PERSISTENCE_HTTP_COOKIE,