Re-Revert "Revert "Migrates alarms to MongoDB"" approved by TSC
[osm/MON.git] / osm_mon / tests / unit / core / test_common_db_client.py
index 81159ee..7102226 100644 (file)
@@ -27,6 +27,7 @@ from osm_common import dbmongo
 
 from osm_mon.core.common_db import CommonDbClient
 from osm_mon.core.config import Config
+from osm_mon.core.models import Alarm
 
 
 class CommonDbClientTest(unittest.TestCase):
@@ -97,3 +98,86 @@ class CommonDbClientTest(unittest.TestCase):
         }
 
         self.assertDictEqual(vdur, expected_vdur)
+
+    @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock())
+    @mock.patch.object(dbmongo.DbMongo, "get_one")
+    @mock.patch.object(CommonDbClient, "decrypt_vim_password")
+    def test_get_vim_account_default_schema(self, decrypt_vim_password, get_one):
+        schema_version = '10.0'
+        vim_id = '1'
+        get_one.return_value = {
+            '_id': vim_id,
+            'vim_password': 'vim_password',
+            'schema_version': schema_version,
+            'config': {
+                'admin_password': 'admin_password',
+                'vrops_password': 'vrops_password',
+                'nsx_password': 'nsx_password',
+                'vcenter_password': 'vcenter_password'
+            }
+        }
+
+        common_db_client = CommonDbClient(self.config)
+        common_db_client.get_vim_account('1')
+
+        decrypt_vim_password.assert_any_call('vim_password', schema_version, vim_id)
+        decrypt_vim_password.assert_any_call('vrops_password', schema_version, vim_id)
+        decrypt_vim_password.assert_any_call('admin_password', schema_version, vim_id)
+        decrypt_vim_password.assert_any_call('nsx_password', schema_version, vim_id)
+        decrypt_vim_password.assert_any_call('vcenter_password', schema_version, vim_id)
+
+    @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock())
+    @mock.patch.object(dbmongo.DbMongo, "get_one")
+    @mock.patch.object(CommonDbClient, "decrypt_vim_password")
+    def test_get_vim_account_1_1_schema(self, decrypt_vim_password, get_one):
+        schema_version = '1.1'
+        vim_id = '1'
+        get_one.return_value = {
+            '_id': vim_id,
+            'vim_password': 'vim_password',
+            'schema_version': schema_version,
+            'config': {
+                'vrops_password': 'vrops_password'
+            }
+        }
+
+        common_db_client = CommonDbClient(self.config)
+        common_db_client.get_vim_account('1')
+
+        decrypt_vim_password.assert_any_call('vim_password', schema_version, vim_id)
+        self.assertRaises(AssertionError, decrypt_vim_password.assert_any_call, 'vrops_password', schema_version,
+                          vim_id)
+
+    @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock())
+    @mock.patch.object(dbmongo.DbMongo, "get_list")
+    def test_get_alarms(self, get_list):
+        get_list.return_value = [{
+            'uuid': '1',
+            'name': 'name',
+            'severity': 'severity',
+            'threshold': 50,
+            'operation': 'operation',
+            'statistic': 'statistic',
+            'tags': {},
+        }]
+
+        common_db_client = CommonDbClient(self.config)
+        alarms = common_db_client.get_alarms()
+        self.assertEqual('1', alarms[0].uuid)
+
+    @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock())
+    @mock.patch.object(dbmongo.DbMongo, "create")
+    def test_create_alarm(self, create):
+        alarm = Alarm('name', 'severity', 50.0, 'operation', 'statistic', 'metric', {})
+        alarm.uuid = '1'
+        common_db_client = CommonDbClient(self.config)
+        common_db_client.create_alarm(alarm)
+        create.assert_called_with('alarms', {'tags': {}, 'threshold': 50.0, 'metric': 'metric', 'severity': 'severity',
+                                             'statistic': 'statistic', 'name': 'name', 'uuid': '1'})
+
+    @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock())
+    @mock.patch.object(dbmongo.DbMongo, "del_one")
+    def test_delete_alarm(self, delete):
+        common_db_client = CommonDbClient(self.config)
+        common_db_client.delete_alarm('1')
+        delete.assert_called_with('alarms', {'uuid': '1'})