diff --git a/octavia_tempest_plugin/config.py b/octavia_tempest_plugin/config.py index 1bc4a63f..628664bc 100644 --- a/octavia_tempest_plugin/config.py +++ b/octavia_tempest_plugin/config.py @@ -176,4 +176,12 @@ LBFeatureEnabledGroup = [ 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."), + cfg.StrOpt('l4_protocol', + default="TCP", + help="The type of L4 Protocol which is supported with the" + " provider driver."), ] diff --git a/octavia_tempest_plugin/tests/api/v2/test_l7policy.py b/octavia_tempest_plugin/tests/api/v2/test_l7policy.py index 255bbdeb..eeb22bf6 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_l7policy.py +++ b/octavia_tempest_plugin/tests/api/v2/test_l7policy.py @@ -31,6 +31,15 @@ CONF = config.CONF class L7PolicyAPITest(test_base.LoadBalancerBaseTest): """Test the l7policy object API.""" + @classmethod + def skip_checks(cls): + super(L7PolicyAPITest, cls).skip_checks() + if not CONF.loadbalancer_feature_enabled.l7_protocol_enabled: + cls.skipException('[loadbalancer-feature-enabled] ' + '"l7_protocol_enabled" is set to False in the ' + 'Tempest configuration. L7 Scenario tests will ' + 'be skipped.') + @classmethod def resource_setup(cls): """Setup resources needed by the tests.""" diff --git a/octavia_tempest_plugin/tests/api/v2/test_l7rule.py b/octavia_tempest_plugin/tests/api/v2/test_l7rule.py index 395a3adf..a75b1573 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_l7rule.py +++ b/octavia_tempest_plugin/tests/api/v2/test_l7rule.py @@ -30,6 +30,14 @@ CONF = config.CONF class L7RuleAPITest(test_base.LoadBalancerBaseTest): """Test the l7rule object API.""" + @classmethod + def skip_checks(cls): + super(L7RuleAPITest, cls).skip_checks() + if not CONF.loadbalancer_feature_enabled.l7_protocol_enabled: + cls.skipException('[loadbalancer-feature-enabled]' + ' "l7_protocol_enabled" is set to False in the' + ' Tempest configuration.L7 Scenario tests would' + ' be skipped.') @classmethod def resource_setup(cls): diff --git a/octavia_tempest_plugin/tests/api/v2/test_listener.py b/octavia_tempest_plugin/tests/api/v2/test_listener.py index 38da0aef..928ecfb0 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_listener.py +++ b/octavia_tempest_plugin/tests/api/v2/test_listener.py @@ -42,6 +42,10 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): const.NAME: lb_name} cls._setup_lb_network_kwargs(lb_kwargs) + 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 lb = cls.mem_lb_client.create_loadbalancer(**lb_kwargs) cls.lb_id = lb[const.ID] @@ -72,7 +76,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): const.NAME: listener_name, const.DESCRIPTION: listener_description, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 80, const.LOADBALANCER_ID: self.lb_id, const.CONNECTION_LIMIT: 200, @@ -142,7 +146,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): self.assertEqual(const.OFFLINE, listener[const.OPERATING_STATUS]) else: self.assertEqual(const.ONLINE, listener[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, listener[const.PROTOCOL]) + self.assertEqual(self.protocol, listener[const.PROTOCOL]) self.assertEqual(80, listener[const.PROTOCOL_PORT]) self.assertEqual(200, listener[const.CONNECTION_LIMIT]) insert_headers = listener[const.INSERT_HEADERS] @@ -194,7 +198,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): const.NAME: listener1_name, const.DESCRIPTION: listener1_desc, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 80, const.LOADBALANCER_ID: lb_id, } @@ -226,7 +230,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): const.NAME: listener2_name, const.DESCRIPTION: listener2_desc, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 81, const.LOADBALANCER_ID: lb_id, } @@ -258,7 +262,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): const.NAME: listener3_name, const.DESCRIPTION: listener3_desc, const.ADMIN_STATE_UP: False, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 82, const.LOADBALANCER_ID: lb_id, } @@ -420,7 +424,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): const.NAME: listener_name, const.DESCRIPTION: listener_description, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 81, const.LOADBALANCER_ID: self.lb_id, const.CONNECTION_LIMIT: 200, @@ -479,7 +483,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): self.assertEqual(const.OFFLINE, listener[const.OPERATING_STATUS]) else: self.assertEqual(const.ONLINE, listener[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, listener[const.PROTOCOL]) + self.assertEqual(self.protocol, listener[const.PROTOCOL]) self.assertEqual(81, listener[const.PROTOCOL_PORT]) self.assertEqual(200, listener[const.CONNECTION_LIMIT]) insert_headers = listener[const.INSERT_HEADERS] @@ -542,7 +546,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): const.NAME: listener_name, const.DESCRIPTION: listener_description, const.ADMIN_STATE_UP: False, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 82, const.LOADBALANCER_ID: self.lb_id, const.CONNECTION_LIMIT: 200, @@ -590,7 +594,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): UUID(listener[const.ID]) # Operating status will be OFFLINE while admin_state_up = False self.assertEqual(const.OFFLINE, listener[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, listener[const.PROTOCOL]) + self.assertEqual(self.protocol, listener[const.PROTOCOL]) self.assertEqual(82, listener[const.PROTOCOL_PORT]) self.assertEqual(200, listener[const.CONNECTION_LIMIT]) insert_headers = listener[const.INSERT_HEADERS] @@ -717,7 +721,7 @@ class ListenerAPITest(test_base.LoadBalancerBaseTest): listener_kwargs = { const.NAME: listener_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 83, const.LOADBALANCER_ID: self.lb_id, } diff --git a/octavia_tempest_plugin/tests/api/v2/test_member.py b/octavia_tempest_plugin/tests/api/v2/test_member.py index 18073cca..e65dd991 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_member.py +++ b/octavia_tempest_plugin/tests/api/v2/test_member.py @@ -40,8 +40,11 @@ class MemberAPITest(test_base.LoadBalancerBaseTest): lb_name = data_utils.rand_name("lb_member_lb1_member") lb_kwargs = {const.PROVIDER: CONF.load_balancer.provider, const.NAME: lb_name} - cls._setup_lb_network_kwargs(lb_kwargs) + 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 lb = cls.mem_lb_client.create_loadbalancer(**lb_kwargs) cls.lb_id = lb[const.ID] @@ -58,7 +61,7 @@ class MemberAPITest(test_base.LoadBalancerBaseTest): listener_name = data_utils.rand_name("lb_member_listener1_member") listener_kwargs = { const.NAME: listener_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: cls.protocol, const.PROTOCOL_PORT: '80', const.LOADBALANCER_ID: cls.lb_id, } @@ -78,7 +81,7 @@ class MemberAPITest(test_base.LoadBalancerBaseTest): pool_name = data_utils.rand_name("lb_member_pool1_member") pool_kwargs = { const.NAME: pool_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: cls.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.LISTENER_ID: cls.listener_id, } @@ -211,7 +214,8 @@ class MemberAPITest(test_base.LoadBalancerBaseTest): pool_name = data_utils.rand_name("lb_member_pool2_member-list") pool = self.mem_pool_client.create_pool( name=pool_name, loadbalancer_id=self.lb_id, - protocol=const.HTTP, lb_algorithm=const.LB_ALGORITHM_ROUND_ROBIN) + protocol=self.protocol, + lb_algorithm=const.LB_ALGORITHM_ROUND_ROBIN) pool_id = pool[const.ID] self.addCleanup( self.mem_pool_client.cleanup_pool, pool_id, @@ -710,7 +714,8 @@ class MemberAPITest(test_base.LoadBalancerBaseTest): pool_name = data_utils.rand_name("lb_member_pool3_member-batch") pool = self.mem_pool_client.create_pool( name=pool_name, loadbalancer_id=self.lb_id, - protocol=const.HTTP, lb_algorithm=const.LB_ALGORITHM_ROUND_ROBIN) + protocol=self.protocol, + lb_algorithm=const.LB_ALGORITHM_ROUND_ROBIN) pool_id = pool[const.ID] self.addClassResourceCleanup( self.mem_pool_client.cleanup_pool, pool_id, diff --git a/octavia_tempest_plugin/tests/api/v2/test_pool.py b/octavia_tempest_plugin/tests/api/v2/test_pool.py index 28b95b6d..63d9e467 100644 --- a/octavia_tempest_plugin/tests/api/v2/test_pool.py +++ b/octavia_tempest_plugin/tests/api/v2/test_pool.py @@ -39,8 +39,11 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): lb_name = data_utils.rand_name("lb_member_lb1_pool") lb_kwargs = {const.PROVIDER: CONF.load_balancer.provider, const.NAME: lb_name} - cls._setup_lb_network_kwargs(lb_kwargs) + 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 lb = cls.mem_lb_client.create_loadbalancer(**lb_kwargs) cls.lb_id = lb[const.ID] @@ -57,7 +60,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): listener_name = data_utils.rand_name("lb_member_listener1_pool") listener_kwargs = { const.NAME: listener_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: cls.protocol, const.PROTOCOL_PORT: '80', const.LOADBALANCER_ID: cls.lb_id, } @@ -98,7 +101,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): const.NAME: pool_name, const.DESCRIPTION: pool_description, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.SESSION_PERSISTENCE: { const.TYPE: const.SESSION_PERSISTENCE_APP_COOKIE, @@ -156,7 +159,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): else: # OFFLINE if it is just on the LB directly or is in noop mode self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, pool[const.PROTOCOL]) + self.assertEqual(self.protocol, pool[const.PROTOCOL]) self.assertEqual(1, len(pool[const.LOADBALANCERS])) self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID]) if has_listener: @@ -211,7 +214,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): const.NAME: pool1_name, const.DESCRIPTION: pool1_desc, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.SESSION_PERSISTENCE: { const.TYPE: const.SESSION_PERSISTENCE_APP_COOKIE, @@ -248,7 +251,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): const.NAME: pool2_name, const.DESCRIPTION: pool2_desc, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.SESSION_PERSISTENCE: { const.TYPE: const.SESSION_PERSISTENCE_APP_COOKIE, @@ -284,7 +287,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): const.NAME: pool3_name, const.DESCRIPTION: pool3_desc, const.ADMIN_STATE_UP: False, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, # No session persistence, just so there's one test for that const.LOADBALANCER_ID: lb_id, @@ -425,7 +428,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): const.NAME: pool_name, const.DESCRIPTION: pool_description, const.ADMIN_STATE_UP: True, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.SESSION_PERSISTENCE: { const.TYPE: const.SESSION_PERSISTENCE_APP_COOKIE, @@ -460,7 +463,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): UUID(pool[const.ID]) # Operating status for pools will always be offline without members self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, pool[const.PROTOCOL]) + self.assertEqual(self.protocol, pool[const.PROTOCOL]) self.assertEqual(1, len(pool[const.LOADBALANCERS])) self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID]) self.assertEmpty(pool[const.LISTENERS]) @@ -519,7 +522,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): const.NAME: pool_name, const.DESCRIPTION: pool_description, const.ADMIN_STATE_UP: False, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.SESSION_PERSISTENCE: { const.TYPE: const.SESSION_PERSISTENCE_APP_COOKIE, @@ -554,7 +557,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): UUID(pool[const.ID]) # Operating status for pools will always be offline without members self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, pool[const.PROTOCOL]) + self.assertEqual(self.protocol, pool[const.PROTOCOL]) self.assertEqual(1, len(pool[const.LOADBALANCERS])) self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID]) self.assertEmpty(pool[const.LISTENERS]) @@ -667,7 +670,7 @@ class PoolAPITest(test_base.LoadBalancerBaseTest): pool_sp_cookie_name = 'my_cookie' pool_kwargs = { const.NAME: pool_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.SESSION_PERSISTENCE: { const.TYPE: const.SESSION_PERSISTENCE_APP_COOKIE, diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py b/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py index 9e09f353..c39a6c68 100644 --- a/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py +++ b/octavia_tempest_plugin/tests/scenario/v2/test_l7policy.py @@ -28,6 +28,15 @@ CONF = config.CONF class L7PolicyScenarioTest(test_base.LoadBalancerBaseTest): + @classmethod + def skip_checks(cls): + super(L7PolicyScenarioTest, cls).skip_checks() + if not CONF.loadbalancer_feature_enabled.l7_protocol_enabled: + cls.skipException('[loadbalancer-feature-enabled] ' + '"l7_protocol_enabled" is set to False in the ' + 'Tempest configuration. L7 Scenario tests will ' + 'be skipped.') + @classmethod def resource_setup(cls): """Setup resources needed by the tests.""" diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py b/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py index 114ea3e3..5c322ab9 100644 --- a/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py +++ b/octavia_tempest_plugin/tests/scenario/v2/test_l7rule.py @@ -28,6 +28,15 @@ CONF = config.CONF class L7RuleScenarioTest(test_base.LoadBalancerBaseTest): + @classmethod + def skip_checks(cls): + super(L7RuleScenarioTest, cls).skip_checks() + if not CONF.loadbalancer_feature_enabled.l7_protocol_enabled: + cls.skipException('[loadbalancer-feature-enabled] ' + '"l7_protocol_enabled" is set to False in the ' + 'Tempest configuration. L7 Scenario tests will ' + 'be skipped.') + @classmethod def resource_setup(cls): """Setup resources needed by the tests.""" diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_listener.py b/octavia_tempest_plugin/tests/scenario/v2/test_listener.py index 7720d278..c504ea2e 100644 --- a/octavia_tempest_plugin/tests/scenario/v2/test_listener.py +++ b/octavia_tempest_plugin/tests/scenario/v2/test_listener.py @@ -51,11 +51,15 @@ class ListenerScenarioTest(test_base.LoadBalancerBaseTest): const.ACTIVE, 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 pool1_name = data_utils.rand_name("lb_member_pool1_listener") pool1_kwargs = { const.NAME: pool1_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: cls.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.LOADBALANCER_ID: cls.lb_id, } @@ -75,7 +79,7 @@ class ListenerScenarioTest(test_base.LoadBalancerBaseTest): pool2_name = data_utils.rand_name("lb_member_pool2_listener") pool2_kwargs = { const.NAME: pool2_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: cls.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.LOADBALANCER_ID: cls.lb_id, } @@ -109,7 +113,7 @@ class ListenerScenarioTest(test_base.LoadBalancerBaseTest): const.NAME: listener_name, const.DESCRIPTION: listener_description, const.ADMIN_STATE_UP: False, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.PROTOCOL_PORT: 80, const.LOADBALANCER_ID: self.lb_id, const.CONNECTION_LIMIT: 200, @@ -157,7 +161,7 @@ class ListenerScenarioTest(test_base.LoadBalancerBaseTest): UUID(listener[const.ID]) # Operating status will be OFFLINE while admin_state_up = False self.assertEqual(const.OFFLINE, listener[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, listener[const.PROTOCOL]) + self.assertEqual(self.protocol, listener[const.PROTOCOL]) self.assertEqual(80, listener[const.PROTOCOL_PORT]) self.assertEqual(200, listener[const.CONNECTION_LIMIT]) insert_headers = listener[const.INSERT_HEADERS] @@ -230,7 +234,7 @@ class ListenerScenarioTest(test_base.LoadBalancerBaseTest): self.assertEqual(const.OFFLINE, listener[const.OPERATING_STATUS]) else: self.assertEqual(const.ONLINE, listener[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, listener[const.PROTOCOL]) + self.assertEqual(self.protocol, listener[const.PROTOCOL]) self.assertEqual(80, listener[const.PROTOCOL_PORT]) self.assertEqual(400, listener[const.CONNECTION_LIMIT]) insert_headers = listener[const.INSERT_HEADERS] diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_member.py b/octavia_tempest_plugin/tests/scenario/v2/test_member.py index 6bd18dee..d5c1b1b8 100644 --- a/octavia_tempest_plugin/tests/scenario/v2/test_member.py +++ b/octavia_tempest_plugin/tests/scenario/v2/test_member.py @@ -50,11 +50,15 @@ class MemberScenarioTest(test_base.LoadBalancerBaseTest): const.ACTIVE, CONF.load_balancer.lb_build_interval, CONF.load_balancer.lb_build_timeout) + 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 listener_name = data_utils.rand_name("lb_member_listener1_member") listener_kwargs = { const.NAME: listener_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: protocol, const.PROTOCOL_PORT: '80', const.LOADBALANCER_ID: cls.lb_id, } @@ -74,7 +78,7 @@ class MemberScenarioTest(test_base.LoadBalancerBaseTest): pool_name = data_utils.rand_name("lb_member_pool1_member") pool_kwargs = { const.NAME: pool_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.LISTENER_ID: cls.listener_id, } diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py index cd266870..1cdd7273 100644 --- a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py +++ b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py @@ -50,11 +50,15 @@ class PoolScenarioTest(test_base.LoadBalancerBaseTest): const.ACTIVE, 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 listener_name = data_utils.rand_name("lb_member_listener1_pool") listener_kwargs = { const.NAME: listener_name, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: cls.protocol, const.PROTOCOL_PORT: '80', const.LOADBALANCER_ID: cls.lb_id, } @@ -95,7 +99,7 @@ class PoolScenarioTest(test_base.LoadBalancerBaseTest): const.NAME: pool_name, const.DESCRIPTION: pool_description, const.ADMIN_STATE_UP: False, - const.PROTOCOL: const.HTTP, + const.PROTOCOL: self.protocol, const.LB_ALGORITHM: const.LB_ALGORITHM_ROUND_ROBIN, const.SESSION_PERSISTENCE: { const.TYPE: const.SESSION_PERSISTENCE_APP_COOKIE, @@ -132,7 +136,7 @@ class PoolScenarioTest(test_base.LoadBalancerBaseTest): parser.parse(pool[const.UPDATED_AT]) UUID(pool[const.ID]) self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS]) - self.assertEqual(const.HTTP, pool[const.PROTOCOL]) + self.assertEqual(self.protocol, pool[const.PROTOCOL]) self.assertEqual(1, len(pool[const.LOADBALANCERS])) self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID]) if has_listener: @@ -158,10 +162,10 @@ class PoolScenarioTest(test_base.LoadBalancerBaseTest): const.DESCRIPTION: new_description, const.ADMIN_STATE_UP: True, const.LB_ALGORITHM: const.LB_ALGORITHM_LEAST_CONNECTIONS, - const.SESSION_PERSISTENCE: { - const.TYPE: const.SESSION_PERSISTENCE_HTTP_COOKIE, - }, } + if self.protocol == const.HTTP: + pool_update_kwargs[const.SESSION_PERSISTENCE] = { + const.TYPE: const.SESSION_PERSISTENCE_HTTP_COOKIE} pool = self.mem_pool_client.update_pool( pool[const.ID], **pool_update_kwargs) @@ -183,8 +187,9 @@ class PoolScenarioTest(test_base.LoadBalancerBaseTest): self.assertEqual(const.LB_ALGORITHM_LEAST_CONNECTIONS, pool[const.LB_ALGORITHM]) self.assertIsNotNone(pool.get(const.SESSION_PERSISTENCE)) - self.assertEqual(const.SESSION_PERSISTENCE_HTTP_COOKIE, - pool[const.SESSION_PERSISTENCE][const.TYPE]) + if self.protocol == const.HTTP: + self.assertEqual(const.SESSION_PERSISTENCE_HTTP_COOKIE, + pool[const.SESSION_PERSISTENCE][const.TYPE]) self.assertIsNone( pool[const.SESSION_PERSISTENCE].get(const.COOKIE_NAME))