From 27f4d12b96800a7c43204c739782e118ec432295 Mon Sep 17 00:00:00 2001 From: pbharathbhu Date: Fri, 6 Mar 2020 08:27:06 +0000 Subject: [PATCH] Logic to handle session persistence parameter in octavia cases Files modified: vmware_nsx_tempest_plugin/lib/feature_manager.py vmware_nsx_tempest_plugin/services/openstack_network_clients.py vmware_nsx_tempest_plugin/tests/nsxv3/scenario/test_octavia_loadbalancers.py Change-Id: Ibccf8c05445dadc4e5f00fca509f725b20631295 --- vmware_nsx_tempest_plugin/lib/feature_manager.py | 15 +++++++++++++-- .../services/openstack_network_clients.py | 4 ++++ .../nsxv3/scenario/test_octavia_loadbalancers.py | 6 ++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/vmware_nsx_tempest_plugin/lib/feature_manager.py b/vmware_nsx_tempest_plugin/lib/feature_manager.py index cb85f75..7a531d7 100644 --- a/vmware_nsx_tempest_plugin/lib/feature_manager.py +++ b/vmware_nsx_tempest_plugin/lib/feature_manager.py @@ -1542,9 +1542,19 @@ class FeatureManager(traffic_manager.IperfManager, clean_up=None, vip_net_id=None, delay=None, max_retries=None, timeout=None, default_pool=False, - vip_port_id=None): + vip_port_id=None, persistence=False, + persistence_type=None, + session_persistence=None, + persistence_cookie_name=None): count = 0 lb_name = None + if persistence: + session_persistence = {} + if persistence_type: + session_persistence["type"] = persistence_type + if persistence_cookie_name: + session_persistence["cookie_name"] = persistence_cookie_name + if lb_id is None: lb_name = data_utils.rand_name(self.namestart) self.loadbalancer = self.\ @@ -1579,7 +1589,8 @@ class FeatureManager(traffic_manager.IperfManager, create_octavia_pool(listener_id=self.listener['id'], lb_algorithm=lb_algorithm, protocol=protocol_type, - name=lb_name) + name=lb_name, + session_persistence=session_persistence) self.octavia_admin_client.wait_for_load_balancer_status(lb_id) pool_id = self.pool['pool']['id'] if hm_type: diff --git a/vmware_nsx_tempest_plugin/services/openstack_network_clients.py b/vmware_nsx_tempest_plugin/services/openstack_network_clients.py index 87e3c8c..d97735f 100644 --- a/vmware_nsx_tempest_plugin/services/openstack_network_clients.py +++ b/vmware_nsx_tempest_plugin/services/openstack_network_clients.py @@ -661,6 +661,10 @@ class OctaviaLB_Client(base.BaseNetworkClient): uri = self.resource_base_path return self.list_resources(uri, **filters) + def show_octavia_load_balancer_stats(self, load_balancer_id, **filters): + uri = self.resource_object_stats_path % load_balancer_id + return self.show_resource(uri, **filters) + def wait_for_load_balancer_status(self, load_balancer_id, provisioning_status='ACTIVE', operating_status='ONLINE', diff --git a/vmware_nsx_tempest_plugin/tests/nsxv3/scenario/test_octavia_loadbalancers.py b/vmware_nsx_tempest_plugin/tests/nsxv3/scenario/test_octavia_loadbalancers.py index 0113bc3..bfad273 100644 --- a/vmware_nsx_tempest_plugin/tests/nsxv3/scenario/test_octavia_loadbalancers.py +++ b/vmware_nsx_tempest_plugin/tests/nsxv3/scenario/test_octavia_loadbalancers.py @@ -219,11 +219,13 @@ class OctaviaRoundRobin(feature_manager.FeatureManager): self.check_project_lbaas() get_lb = self.octavia_admin_client.list_octavia_load_balancers() lb_id = get_lb['loadbalancers'][0]['id'] - stat = self.octavia_admin_client.show_load_balancer_stats(lb_id) + stat = self.octavia_admin_client.\ + show_octavia_load_balancer_stats(lb_id) assert (stat['stats']['bytes_in'] == 0 and stat['stats']['bytes_out'] == 0) self.check_lbaas_project_weight_values(constants.NO_OF_VMS_2) - stat = self.octavia_admin_client.show_load_balancer_stats(lb_id) + stat = self.octavia_admin_client.\ + show_octavia_load_balancer_stats(lb_id) assert (stat['stats']['bytes_in'] >= 0 and stat['stats']['bytes_out'] >= 0)