Adds migration engine for peewee ORM
[osm/POL.git] / osm_policy_module / tests / integration / test_policy_agent.py
index 11bc969..7ad9944 100644 (file)
@@ -30,12 +30,13 @@ from unittest.mock import patch, Mock
 
 from kafka import KafkaProducer
 from osm_common.dbmongo import DbMongo
-from peewee import SqliteDatabase
+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.core.agent import PolicyModuleAgent
+from osm_policy_module.core.config import Config
 from osm_policy_module.core.database import ScalingGroup, ScalingAlarm, ScalingPolicy, ScalingCriteria
 
 log = logging.getLogger()
@@ -326,10 +327,28 @@ vnfd_record_mock = {
             "id": "cirros_vnf_memory_util",
             "name": "cirros_vnf_memory_util",
             "aggregation-type": "AVERAGE",
-            "vdu-monitoring-param-ref": "cirros_vnfd-VM_memory_util",
-            "vdu-ref": "cirros_vnfd-VM"
+            "vdu-monitoring-param": {
+                "vdu-monitoring-param-ref": "cirros_vnfd-VM_memory_util",
+                "vdu-ref": "cirros_vnfd-VM"
+            }
+        },
+        {
+            "id": "haproxy_users",
+            "name": "haproxy_users",
+            "aggregation-type": "AVERAGE",
+            "vnf-metric":
+                {"vnf-metric-name-ref": "users"}
         }
     ],
+    "vdu-configuration": {
+        "juju": {
+            "charm": "testmetrics",
+            "proxy": True
+        },
+        "metrics": {
+            "name": "users"
+        }
+    },
     "description": "Simple VNF example with a cirros and a scaling group descriptor",
     "id": "cirros_vdu_scaling_vnf",
     "logo": "cirros-64.png",
@@ -401,21 +420,18 @@ vnfd_record_mock = {
     }
 }
 
-test_db = SqliteDatabase(':memory:')
-
 MODELS = [ScalingGroup, ScalingPolicy, ScalingCriteria, ScalingAlarm]
 
 
 class PolicyModuleAgentTest(unittest.TestCase):
     def setUp(self):
         super()
-        database.db = test_db
-        test_db.bind(MODELS)
-        test_db.connect()
-        test_db.drop_tables(MODELS)
-        test_db.create_tables(MODELS)
+        database.db.initialize(connect('sqlite://'))
+        database.db.bind(MODELS)
+        database.db.connect()
+        database.db.drop_tables(MODELS)
+        database.db.create_tables(MODELS)
         self.loop = asyncio.new_event_loop()
-        asyncio.set_event_loop(None)
 
     def tearDown(self):
         super()
@@ -441,30 +457,31 @@ class PolicyModuleAgentTest(unittest.TestCase):
         get_nsr.return_value = nsr_record_mock
         get_vnfd.return_value = vnfd_record_mock
         create_alarm.side_effect = _test_configure_scaling_groups_create_alarm
-        agent = PolicyModuleAgent(self.loop)
+        config = Config()
+        agent = PolicyModuleAgent(config, self.loop)
         self.loop.run_until_complete(agent._configure_scaling_groups("test_nsr_id"))
-        create_alarm.assert_any_call(metric_name='average_memory_utilization',
+        create_alarm.assert_any_call(metric_name='cirros_vnf_memory_util',
                                      ns_id='test_nsr_id',
                                      operation='GT',
                                      statistic='AVERAGE',
                                      threshold=80,
                                      vdu_name='cirros_ns-1-cirros_vnfd-VM-1',
                                      vnf_member_index='1')
-        create_alarm.assert_any_call(metric_name='average_memory_utilization',
+        create_alarm.assert_any_call(metric_name='cirros_vnf_memory_util',
                                      ns_id='test_nsr_id',
                                      operation='LT',
                                      statistic='AVERAGE',
                                      threshold=20,
                                      vdu_name='cirros_ns-1-cirros_vnfd-VM-1',
                                      vnf_member_index='1')
-        create_alarm.assert_any_call(metric_name='average_memory_utilization',
+        create_alarm.assert_any_call(metric_name='cirros_vnf_memory_util',
                                      ns_id='test_nsr_id',
                                      operation='GT',
                                      statistic='AVERAGE',
                                      threshold=80,
                                      vdu_name='cirros_ns-2-cirros_vnfd-VM-1',
                                      vnf_member_index='2')
-        create_alarm.assert_any_call(metric_name='average_memory_utilization',
+        create_alarm.assert_any_call(metric_name='cirros_vnf_memory_util',
                                      ns_id='test_nsr_id',
                                      operation='LT',
                                      statistic='AVERAGE',