Fix Policy LB pool monitor actions

The usage of _update was wrong, and add unittest to cover this

Change-Id: I361240eb64a9b0c91bbe3598555fc234b9bfa60c
This commit is contained in:
Adit Sarfaty
2019-04-30 14:01:57 +03:00
parent f78129e3e5
commit ed4863c364
2 changed files with 82 additions and 6 deletions

View File

@@ -1064,7 +1064,7 @@ class TestPolicyLBPoolApi(test_resources.NsxPolicyLibTestCase):
description = 'new desc'
members = [{'ip_address': '10.0.0.1'}]
algorithm = 'algo'
active_monitor_paths = 'path1'
active_monitor_paths = ['path1']
member_group = 'group1'
snat_translation = False
with mock.patch.object(self.policy_api, "get",
@@ -1092,6 +1092,81 @@ class TestPolicyLBPoolApi(test_resources.NsxPolicyLibTestCase):
tenant=TEST_TENANT)
self.assert_called_with_def(update_call, expected_def)
def test_add_monitor_to_pool(self):
obj_id = '111'
active_monitor_paths = ['path1']
with mock.patch.object(self.policy_api, "get",
return_value={'id': obj_id}), \
mock.patch.object(self.policy_api,
"create_or_update") as update_call:
self.resourceApi.add_monitor_to_pool(
obj_id,
active_monitor_paths,
tenant=TEST_TENANT)
expected_def = lb_defs.LBPoolDef(
lb_pool_id=obj_id,
active_monitor_paths=active_monitor_paths,
tenant=TEST_TENANT)
self.assert_called_with_def(update_call, expected_def)
def test_remove_monitor_from_pool(self):
obj_id = '111'
removed_monitor_path = 'path1'
stay_monitor_path = 'path2'
active_monitors = [removed_monitor_path, stay_monitor_path]
with mock.patch.object(
self.policy_api, "get", return_value={
'id': obj_id, 'active_monitor_paths': active_monitors}), \
mock.patch.object(self.policy_api,
"create_or_update") as update_call:
self.resourceApi.remove_monitor_from_pool(
obj_id,
removed_monitor_path,
tenant=TEST_TENANT)
expected_def = lb_defs.LBPoolDef(
lb_pool_id=obj_id,
active_monitor_paths=[stay_monitor_path],
tenant=TEST_TENANT)
self.assert_called_with_def(update_call, expected_def)
def test_create_pool_member_and_add_to_pool(self):
obj_id = '111'
ip_address = '1.1.1.1'
with mock.patch.object(self.policy_api, "get",
return_value={'id': obj_id}), \
mock.patch.object(self.policy_api,
"create_or_update") as update_call:
self.resourceApi.create_pool_member_and_add_to_pool(
obj_id, ip_address,
tenant=TEST_TENANT)
mem_def = lb_defs.LBPoolMemberDef(ip_address)
expected_def = lb_defs.LBPoolDef(
lb_pool_id=obj_id,
members=[mem_def],
tenant=TEST_TENANT)
self.assert_called_with_def(update_call, expected_def)
def test_update_pool_member(self):
obj_id = '111'
ip_address = '1.1.1.1'
port = '80'
new_name = 'mem1'
member = {'ip_address': ip_address, 'port': port}
with mock.patch.object(self.policy_api, "get",
return_value={'id': obj_id,
'members': [member]}), \
mock.patch.object(self.policy_api,
"create_or_update") as update_call:
self.resourceApi.update_pool_member(
obj_id, ip_address, port=port, display_name=new_name,
tenant=TEST_TENANT)
member['display_name'] = new_name
expected_def = lb_defs.LBPoolDef(
lb_pool_id=obj_id,
members=[member],
tenant=TEST_TENANT)
self.assert_called_with_def(update_call, expected_def)
class TestPolicyLBMonitorProfileHttpApi(test_resources.NsxPolicyLibTestCase):

View File

@@ -451,8 +451,8 @@ class NsxPolicyLoadBalancerPoolApi(NsxPolicyResourceBase):
monitor_paths = lb_pool.get('active_monitor_paths', [])
monitor_paths.extend(active_monitor_paths)
self._update(
lb_pool_id, active_monitor_paths=monitor_paths, pool_data=lb_pool,
tenant=tenant)
lb_pool_id=lb_pool_id, active_monitor_paths=monitor_paths,
pool_data=lb_pool, tenant=tenant)
def remove_monitor_from_pool(self, lb_pool_id, monitor_path,
tenant=constants.POLICY_INFRA_TENANT):
@@ -462,7 +462,8 @@ class NsxPolicyLoadBalancerPoolApi(NsxPolicyResourceBase):
monitor_paths = lb_pool.get('active_monitor_paths', [])
if monitor_path in monitor_paths:
monitor_paths.remove(monitor_path)
self._update(lb_pool_id, active_monitor_paths=monitor_paths,
self._update(lb_pool_id=lb_pool_id,
active_monitor_paths=monitor_paths,
pool_data=lb_pool, tenant=tenant)
def create_pool_member_and_add_to_pool(
@@ -480,7 +481,7 @@ class NsxPolicyLoadBalancerPoolApi(NsxPolicyResourceBase):
lb_pool = self.policy_api.get(lb_pool_def)
lb_pool_members = lb_pool.get('members', [])
lb_pool_members.append(lb_pool_member)
self._update(lb_pool_id, members=lb_pool_members,
self._update(lb_pool_id=lb_pool_id, members=lb_pool_members,
pool_data=lb_pool, tenant=tenant)
return lb_pool_member
@@ -504,7 +505,7 @@ class NsxPolicyLoadBalancerPoolApi(NsxPolicyResourceBase):
member_to_update[0]['admin_state'] = admin_state
if backup_member:
member_to_update[0]['backup_member'] = backup_member
self._update(lb_pool_id, members=lb_pool_members,
self._update(lb_pool_id=lb_pool_id, members=lb_pool_members,
pool_data=lb_pool, tenant=tenant)
else:
ops = ('Updating member %(address)s:%(port)d failed, not found in '