X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Ftests%2Fintegration%2Ftest_policy_agent.py;h=d253b74a7a52450305c24d5721d3ad04d7df380b;hb=f7451f8879d188c9fef9c976d82aa39141601938;hp=4a7efbb6ed4cda32b842160479fb8387d9e55c30;hpb=fbb5d6d5882461137bf47c313ead6bb913f15e56;p=osm%2FPOL.git diff --git a/osm_policy_module/tests/integration/test_policy_agent.py b/osm_policy_module/tests/integration/test_policy_agent.py index 4a7efbb..d253b74 100644 --- a/osm_policy_module/tests/integration/test_policy_agent.py +++ b/osm_policy_module/tests/integration/test_policy_agent.py @@ -36,9 +36,10 @@ from playhouse.db_url import connect from osm_policy_module.common.common_db_client import CommonDbClient from osm_policy_module.common.mon_client import MonClient from osm_policy_module.core import database -from osm_policy_module.autoscaling.agent import PolicyModuleAgent +from osm_policy_module.core.agent import PolicyModuleAgent from osm_policy_module.core.config import Config -from osm_policy_module.core.database import ScalingGroup, ScalingAlarm, ScalingPolicy, ScalingCriteria +from osm_policy_module.core.database import ScalingGroup, ScalingAlarm, ScalingPolicy, ScalingCriteria, VnfAlarm, \ + AlarmAction log = logging.getLogger() log.level = logging.INFO @@ -320,7 +321,32 @@ vnfd_record_mock = { } } ], - "image": "cirros034" + "image": "cirros034", + "alarm": [ + { + "value": 20.0000, + "actions": { + "insufficient-data": [ + { + "url": "localhost:9090" + } + ], + "ok": [ + { + "url": "localhost:9090" + } + ], + "alarm": [ + { + "url": "localhost:9090" + } + ] + }, + "alarm-id": "alarm-1", + "operation": "LT", + "vnf-monitoring-param-ref": "cirros_vnf_memory_util" + } + ] } ], "monitoring-param": [ @@ -421,7 +447,7 @@ vnfd_record_mock = { } } -MODELS = [ScalingGroup, ScalingPolicy, ScalingCriteria, ScalingAlarm] +MODELS = [ScalingGroup, ScalingPolicy, ScalingCriteria, ScalingAlarm, VnfAlarm, AlarmAction] class PolicyModuleAgentTest(unittest.TestCase): @@ -462,7 +488,7 @@ class PolicyModuleAgentTest(unittest.TestCase): create_alarm.side_effect = _test_configure_scaling_groups_create_alarm config = Config() agent = PolicyModuleAgent(config, self.loop) - self.loop.run_until_complete(agent.service.configure_scaling_groups("test_nsr_id")) + self.loop.run_until_complete(agent.autoscaling_service.configure_scaling_groups("test_nsr_id")) create_alarm.assert_any_call(metric_name='cirros_vnf_memory_util', ns_id='test_nsr_id', operation='GT', @@ -495,6 +521,45 @@ class PolicyModuleAgentTest(unittest.TestCase): self.assertEqual(scaling_record.name, 'scale_cirros_vnfd-VM') self.assertEqual(scaling_record.nsr_id, 'test_nsr_id') + @patch.object(DbMongo, 'db_connect', Mock()) + @patch.object(KafkaProducer, '__init__') + @patch.object(MonClient, 'create_alarm') + @patch.object(CommonDbClient, 'get_vnfd') + @patch.object(CommonDbClient, 'get_nsr') + @patch.object(CommonDbClient, 'get_vnfr') + def test_configure_vnf_alarms(self, get_vnfr, get_nsr, get_vnfd, create_alarm, kafka_producer_init): + def _test_configure_scaling_groups_get_vnfr(*args, **kwargs): + if '1' in args[1]: + return vnfr_record_mocks[0] + if '2' in args[1]: + return vnfr_record_mocks[1] + + async def _test_configure_vnf_alarms_create_alarm(*args, **kwargs): + return uuid.uuid4() + + kafka_producer_init.return_value = None + get_vnfr.side_effect = _test_configure_scaling_groups_get_vnfr + get_nsr.return_value = nsr_record_mock + get_vnfd.return_value = vnfd_record_mock + create_alarm.side_effect = _test_configure_vnf_alarms_create_alarm + config = Config() + agent = PolicyModuleAgent(config, self.loop) + self.loop.run_until_complete(agent.alarming_service.configure_vnf_alarms("test_nsr_id")) + create_alarm.assert_any_call(metric_name='cirros_vnf_memory_util', + ns_id='test_nsr_id', + operation='LT', + statistic='AVERAGE', + threshold=20.0, + vdu_name='cirros_ns-1-cirros_vnfd-VM-1', + vnf_member_index='1') + create_alarm.assert_any_call(metric_name='cirros_vnf_memory_util', + ns_id='test_nsr_id', + operation='LT', + statistic='AVERAGE', + threshold=20.0, + vdu_name='cirros_ns-2-cirros_vnfd-VM-1', + vnf_member_index='2') + if __name__ == '__main__': unittest.main()