X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Ftests%2Funit%2Fcore%2Ftest_policy_agent.py;h=7aab92885761075d5fc7bdec4b4f892eb4f2f21c;hb=055c4ee00f83647e7e807aa3d44c3384d9d79aa2;hp=f9f78cc925045cdc151317e7a098b87e40919116;hpb=1d7fa33ffdd43fe36f8a83088b5b51bc0d875925;p=osm%2FPOL.git diff --git a/osm_policy_module/tests/unit/core/test_policy_agent.py b/osm_policy_module/tests/unit/core/test_policy_agent.py index f9f78cc..7aab928 100644 --- a/osm_policy_module/tests/unit/core/test_policy_agent.py +++ b/osm_policy_module/tests/unit/core/test_policy_agent.py @@ -30,6 +30,7 @@ from osm_policy_module.autoscaling.service import AutoscalingService from osm_policy_module.common.common_db_client import CommonDbClient from osm_policy_module.core.agent import PolicyModuleAgent from osm_policy_module.core.config import Config +from osm_policy_module.healing.service import HealingService class PolicyAgentTest(unittest.TestCase): @@ -41,20 +42,26 @@ class PolicyAgentTest(unittest.TestCase): @mock.patch("osm_policy_module.alarming.service.LcmClient") @mock.patch("osm_policy_module.autoscaling.service.MonClient") @mock.patch("osm_policy_module.autoscaling.service.LcmClient") + @mock.patch("osm_policy_module.healing.service.MonClient") + @mock.patch("osm_policy_module.healing.service.LcmClient") @mock.patch.object(AutoscalingService, "configure_scaling_groups") @mock.patch.object(AlarmingService, "configure_vnf_alarms") + @mock.patch.object(HealingService, "configure_healing_alarms") @mock.patch.object(AutoscalingService, "delete_orphaned_alarms") @mock.patch.object(CommonDbClient, "get_nslcmop") def test_handle_instantiated( self, get_nslcmop, delete_orphaned_alarms, + configure_healing_alarms, configure_vnf_alarms, configure_scaling_groups, autoscaling_lcm_client, autoscaling_mon_client, alarming_lcm_client, alarming_mon_client, + healing_lcm_client, + healing_mon_client, ): async def mock_configure_scaling_groups(nsr_id): pass @@ -62,15 +69,20 @@ class PolicyAgentTest(unittest.TestCase): async def mock_configure_vnf_alarms(nsr_id): pass + async def mock_configure_healing_alarms(nsr_id): + pass + async def mock_delete_orphaned_alarms(nsr_id): pass config = Config() - agent = PolicyModuleAgent(config, self.loop) + agent = PolicyModuleAgent(config) assert autoscaling_lcm_client.called assert autoscaling_mon_client.called assert alarming_lcm_client.called assert alarming_mon_client.called + assert healing_lcm_client.called + assert healing_mon_client.called content = { "nslcmop_id": "test_id", } @@ -81,6 +93,7 @@ class PolicyAgentTest(unittest.TestCase): nslcmop_failed = {"operationState": "FAILED", "nsInstanceId": "test_nsr_id"} configure_scaling_groups.side_effect = mock_configure_scaling_groups configure_vnf_alarms.side_effect = mock_configure_vnf_alarms + configure_healing_alarms.side_effect = mock_configure_healing_alarms delete_orphaned_alarms.side_effect = mock_delete_orphaned_alarms get_nslcmop.return_value = nslcmop_completed @@ -92,31 +105,117 @@ class PolicyAgentTest(unittest.TestCase): self.loop.run_until_complete(agent._handle_instantiated(content)) configure_scaling_groups.assert_not_called() + @mock.patch.object(CommonDbClient, "__init__", lambda *args, **kwargs: None) + @mock.patch("osm_policy_module.alarming.service.MonClient") + @mock.patch("osm_policy_module.alarming.service.LcmClient") + @mock.patch("osm_policy_module.autoscaling.service.MonClient") + @mock.patch("osm_policy_module.autoscaling.service.LcmClient") + @mock.patch("osm_policy_module.healing.service.MonClient") + @mock.patch("osm_policy_module.healing.service.LcmClient") + @mock.patch.object(HealingService, "configure_healing_alarms") + @mock.patch.object(AutoscalingService, "configure_scaling_groups") + @mock.patch.object(AlarmingService, "configure_vnf_alarms") + @mock.patch.object(HealingService, "delete_healing_alarms") + @mock.patch.object(AutoscalingService, "delete_scaling_groups") + @mock.patch.object(AlarmingService, "delete_vnf_alarms") + def test_handle_policy_update( + self, + delete_vnf_alarms, + delete_scaling_groups, + delete_healing_alarms, + configure_vnf_alarms, + configure_scaling_groups, + configure_healing_alarms, + healing_lcm_client, + healing_mon_client, + autoscaling_lcm_client, + autoscaling_mon_client, + alarming_lcm_client, + alarming_mon_client, + ): + async def mock_delete_scaling_groups(nsr_id, vnf_member_index): + pass + + async def mock_delete_vnf_alarms(nsr_id, vnf_member_index): + pass + + async def mock_delete_healing_alarms(nsr_id, vnf_member_index): + pass + + async def mock_configure_scaling_groups(nsr_id, vnf_member_index): + pass + + async def mock_configure_vnf_alarms(nsr_id, vnf_member_index): + pass + + async def mock_configure_healing_alarms(nsr_id, vnf_member_index): + pass + + config = Config() + agent = PolicyModuleAgent(config) + assert autoscaling_lcm_client.called + assert autoscaling_mon_client.called + assert alarming_lcm_client.called + assert alarming_mon_client.called + assert healing_lcm_client.called + assert healing_mon_client.called + content = { + "nsr_id": "test_nsr_id", + "vnf_member_index": "1", + "operationState": "COMPLETED", + } + failed_content = { + "nsr_id": "test_nsr_id", + "vnf_member_index": "1", + "operationState": "FAILED", + } + configure_scaling_groups.side_effect = mock_configure_scaling_groups + configure_vnf_alarms.side_effect = mock_configure_vnf_alarms + configure_healing_alarms.side_effect = mock_configure_healing_alarms + delete_scaling_groups.side_effect = mock_delete_scaling_groups + delete_vnf_alarms.side_effect = mock_delete_vnf_alarms + delete_healing_alarms.side_effect = mock_delete_healing_alarms + + self.loop.run_until_complete(agent._handle_policy_update(content)) + configure_scaling_groups.assert_called_with("test_nsr_id", "1") + configure_scaling_groups.reset_mock() + + self.loop.run_until_complete(agent._handle_policy_update(failed_content)) + configure_scaling_groups.assert_not_called() + @mock.patch.object(CommonDbClient, "__init__", lambda *args, **kwargs: None) @mock.patch("osm_policy_module.autoscaling.service.MonClient") @mock.patch("osm_policy_module.autoscaling.service.LcmClient") @mock.patch("osm_policy_module.alarming.service.MonClient") @mock.patch("osm_policy_module.alarming.service.LcmClient") + @mock.patch("osm_policy_module.healing.service.MonClient") + @mock.patch("osm_policy_module.healing.service.LcmClient") @mock.patch.object(AutoscalingService, "handle_alarm") @mock.patch.object(AlarmingService, "handle_alarm") + @mock.patch.object(HealingService, "handle_alarm") def test_handle_alarm_notification( self, + healing_handle_alarm, alarming_handle_alarm, autoscaling_handle_alarm, autoscaling_lcm_client, autoscaling_mon_client, alarming_lcm_client, alarming_mon_client, + healing_lcm_client, + healing_mon_client, ): async def mock_handle_alarm(alarm_uuid, status, payload=None): pass config = Config() - agent = PolicyModuleAgent(config, self.loop) + agent = PolicyModuleAgent(config) assert autoscaling_lcm_client.called assert autoscaling_mon_client.called assert alarming_lcm_client.called assert alarming_mon_client.called + assert healing_lcm_client.called + assert healing_mon_client.called content = { "notify_details": { "alarm_uuid": "test_alarm_uuid", @@ -131,10 +230,12 @@ class PolicyAgentTest(unittest.TestCase): } autoscaling_handle_alarm.side_effect = mock_handle_alarm alarming_handle_alarm.side_effect = mock_handle_alarm + healing_handle_alarm.side_effect = mock_handle_alarm self.loop.run_until_complete(agent._handle_alarm_notification(content)) autoscaling_handle_alarm.assert_called_with("test_alarm_uuid", "alarm") alarming_handle_alarm.assert_called_with("test_alarm_uuid", "alarm", content) + healing_handle_alarm.assert_called_with("test_alarm_uuid", "alarm") @mock.patch.object(CommonDbClient, "__init__", lambda *args, **kwargs: None) @mock.patch("osm_policy_module.alarming.service.MonClient") @@ -159,7 +260,7 @@ class PolicyAgentTest(unittest.TestCase): pass config = Config() - agent = PolicyModuleAgent(config, self.loop) + agent = PolicyModuleAgent(config) assert autoscaling_lcm_client.called assert autoscaling_mon_client.called assert alarming_lcm_client.called @@ -167,12 +268,12 @@ class PolicyAgentTest(unittest.TestCase): content = { "nsr_id": "test_nsr_id", "vnf_member_index": "1", - "operationState": "COMPLETED" + "operationState": "COMPLETED", } failed_content = { "nsr_id": "test_nsr_id", "vnf_member_index": "1", - "operationState": "FAILED" + "operationState": "FAILED", } delete_scaling_groups.side_effect = mock_delete_scaling_groups delete_vnf_alarms.side_effect = mock_delete_vnf_alarms