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:
@@ -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):
|
||||
|
||||
|
||||
@@ -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 '
|
||||
|
||||
Reference in New Issue
Block a user