Fix vROps monitoring problems related to SOL006 migration
[osm/MON.git] / osm_mon / tests / unit / evaluator / test_evaluator_service.py
index e09418d..a72dcaf 100644 (file)
@@ -24,7 +24,6 @@ from unittest import TestCase, mock
 
 from osm_mon.core.common_db import CommonDbClient
 from osm_mon.core.config import Config
-from osm_mon.core.database import AlarmRepository, AlarmTag
 from osm_mon.core.message_bus_client import MessageBusClient
 from osm_mon.evaluator.backends.prometheus import PrometheusBackend
 from osm_mon.evaluator.evaluator import AlarmStatus
@@ -78,66 +77,93 @@ vnfr_record_mock = {
 
 vnfd_record_mock = {
     "_id": "63f44c41-45ee-456b-b10d-5f08fb1796e0",
-    "name": "cirros_vdu_scaling_vnf",
-    "vendor": "OSM",
+    "id": "cirros_vdu_scaling_vnf",
+    "_admin": {},
+    "product-name": "cirros_vdu_scaling_vnf",
+    "version": "1.0",
     "vdu": [
         {
+            "id": "cirros_vnfd-VM",
             "name": "cirros_vnfd-VM",
-            "monitoring-param": [
+            "int-cpd": [
                 {
-                    "id": "cirros_vnfd-VM_memory_util",
-                    "nfvi-metric": "average_memory_utilization"
+                    "virtual-network-interface-requirement": [
+                        {
+                            "name": "vdu-eth0"
+                        }
+                    ],
+                    "id": "vdu-eth0-int"
                 }
             ],
-            "vm-flavor": {
-                "vcpu-count": 1,
-                "memory-mb": 256,
-                "storage-gb": 2
-            },
-            "description": "cirros_vnfd-VM",
-            "count": 1,
-            "id": "cirros_vnfd-VM",
-            "interface": [
+            "virtual-compute-desc": "cirros_vnfd-VM-compute",
+            "virtual-storage-desc": [
+                "cirros_vnfd-VM-storage"
+            ],
+            "sw-image-desc": "cirros034",
+            "monitoring-parameter": [
                 {
-                    "name": "eth0",
-                    "external-connection-point-ref": "eth0",
-                    "type": "EXTERNAL",
-                    "virtual-interface": {
-                        "bandwidth": "0",
-                        "type": "VIRTIO",
-                        "vpci": "0000:00:0a.0"
-                    }
+                    "id": "cirros_vnfd-VM_memory_util",
+                    "name": "cirros_vnfd-VM_memory_util",
+                    "performance-metric": "average_memory_utilization"
                 }
-            ],
-            "image": "cirros034"
+            ]
         }
     ],
-    "monitoring-param": [
+    "virtual-compute-desc": [
         {
-            "id": "cirros_vnf_memory_util",
-            "name": "cirros_vnf_memory_util",
-            "aggregation-type": "AVERAGE",
-            "vdu-monitoring-param": {
-                "vdu-monitoring-param-ref": "cirros_vnfd-VM_memory_util",
-                "vdu-ref": "cirros_vnfd-VM"
+            "id": "cirros_vnfd-VM-compute",
+            "virtual-cpu": {
+                "num-virtual-cpu": 1
+            },
+            "virtual-memory": {
+                "size": 1
             }
         }
     ],
-    "description": "Simple VNF example with a cirros and a scaling group descriptor",
-    "id": "cirros_vdu_scaling_vnf",
-    "logo": "cirros-64.png",
-    "version": "1.0",
-    "connection-point": [
+    "virtual-storage-desc": [
         {
-            "name": "eth0",
-            "type": "VPORT"
+            "id": "cirros_vnfd-VM-storage",
+            "size-of-storage": 2
         }
     ],
-    "mgmt-interface": {
-        "cp": "eth0"
-    },
-    "short-name": "cirros_vdu_scaling_vnf",
-    "_admin": {}
+    "sw-image-desc": [
+        {
+            "id": "cirros034",
+            "name": "cirros034",
+            "image": "cirros034"
+        }
+    ],
+    "ext-cpd": [
+        {
+            "int-cpd": {
+                "vdu-id": "cirros_vnfd-VM",
+                "cpd": "vdu-eth0-int"
+            },
+            "id": "vnf-cp0-ext"
+        }
+    ],
+    "df": [
+        {
+            "id": "default-df",
+            "vdu-profile": [
+                {
+                    "id": "cirros_vnfd-VM"
+                }
+            ],
+            "instantiation-level": [
+                {
+                    "id": "default-instantiation-level",
+                    "vdu-level": [
+                        {
+                            "vdu-id": "cirros_vnfd-VM"
+                        }
+                    ]
+                }
+            ]
+        }
+    ],
+    "description": "Simple VNF example with a cirros and a scaling group descriptor",
+    "mgmt-cp": "vnf-cp0-ext"
 }
 
 
@@ -149,8 +175,7 @@ class EvaluatorTest(TestCase):
         self.config = Config()
 
     @mock.patch.object(EvaluatorService, "_get_metric_value")
-    @mock.patch('osm_mon.core.database.db')
-    def test_evaluate_metric(self, db, get_metric_value):
+    def test_evaluate_metric(self, get_metric_value):
         mock_alarm = mock.Mock()
         mock_alarm.operation = 'gt'
         mock_alarm.threshold = 50.0
@@ -159,33 +184,29 @@ class EvaluatorTest(TestCase):
 
         service = EvaluatorService(self.config)
         service.queue = mock.Mock()
-        service._evaluate_metric(mock_alarm, {})
+        service._evaluate_metric(mock_alarm)
         service.queue.put.assert_called_with((mock_alarm, AlarmStatus.ALARM))
         service.queue.reset_mock()
 
         mock_alarm.operation = 'lt'
-        service._evaluate_metric(mock_alarm, {})
+        service._evaluate_metric(mock_alarm)
         service.queue.put.assert_called_with((mock_alarm, AlarmStatus.OK))
         service.queue.reset_mock()
 
         get_metric_value.return_value = None
-        service._evaluate_metric(mock_alarm, {})
+        service._evaluate_metric(mock_alarm)
         service.queue.put.assert_called_with((mock_alarm, AlarmStatus.INSUFFICIENT))
 
     @mock.patch('multiprocessing.Process')
     @mock.patch.object(EvaluatorService, "_evaluate_metric")
     @mock.patch.object(CommonDbClient, "get_vnfd")
     @mock.patch.object(CommonDbClient, "get_vnfr")
-    @mock.patch.object(AlarmRepository, "list")
-    @mock.patch('osm_mon.core.database.db')
-    def test_evaluate(self, db, alarm_list, get_vnfr, get_vnfd, evaluate_metric, process):
+    @mock.patch.object(CommonDbClient, "get_alarms")
+    def test_evaluate_alarms(self, alarm_list, get_vnfr, get_vnfd, evaluate_metric, process):
         mock_alarm = mock.Mock()
         mock_alarm.vdur_name = 'cirros_ns-1-cirros_vnfd-VM-1'
         mock_alarm.monitoring_param = 'cirros_vnf_memory_util'
-        mock_tag = AlarmTag()
-        mock_tag.name = 'name'
-        mock_tag.value = 'value'
-        mock_alarm.tags = [mock_tag]
+        mock_alarm.tags = {'name': 'value'}
         alarm_list.return_value = [mock_alarm]
         get_vnfr.return_value = vnfr_record_mock
         get_vnfd.return_value = vnfd_record_mock
@@ -193,11 +214,10 @@ class EvaluatorTest(TestCase):
         evaluator = EvaluatorService(self.config)
         evaluator.evaluate_alarms()
 
-        process.assert_called_with(target=evaluate_metric, args=(mock_alarm, {'name': 'value'}))
+        process.assert_called_with(target=evaluate_metric, args=(mock_alarm,))
 
     @mock.patch.object(PrometheusBackend, "get_metric_value")
-    @mock.patch('osm_mon.core.database.db')
-    def test_get_metric_value_prometheus(self, db, get_metric_value):
+    def test_get_metric_value_prometheus(self, get_metric_value):
         self.config.set('evaluator', 'backend', 'prometheus')
         evaluator = EvaluatorService(self.config)
         evaluator._get_metric_value('test', {})