Merge "Migrates alarms to MongoDB"
[osm/MON.git] / osm_mon / core / common_db.py
index 88a509c..5fa27eb 100644 (file)
 # For those usages not covered by the Apache License, Version 2.0 please
 # contact: bdiaz@whitestack.com or glavado@whitestack.com
 ##
+from typing import List
+
 from osm_common import dbmongo, dbmemory
 
 from osm_mon.core.config import Config
+from osm_mon.core.models import Alarm
 
 
 class CommonDbClient:
@@ -102,11 +105,12 @@ class CommonDbClient:
         vim_config_encrypted = vim_config_encrypted_dict['default']
         if vim_account['schema_version'] in vim_config_encrypted_dict.keys():
             vim_config_encrypted = vim_config_encrypted_dict[vim_account['schema_version']]
-        for key in vim_account['config']:
-            if key in vim_config_encrypted:
-                vim_account['config'][key] = self.decrypt_vim_password(vim_account['config'][key],
-                                                                       vim_account['schema_version'],
-                                                                       vim_account_id)
+        if 'config' in vim_account:
+            for key in vim_account['config']:
+                if key in vim_config_encrypted:
+                    vim_account['config'][key] = self.decrypt_vim_password(vim_account['config'][key],
+                                                                           vim_account['schema_version'],
+                                                                           vim_account_id)
         return vim_account
 
     def get_sdncs(self):
@@ -114,3 +118,16 @@ class CommonDbClient:
 
     def get_sdnc(self, sdnc_id: str):
         return self.common_db.get_one('sdns', {'_id': sdnc_id})
+
+    def create_alarm(self, alarm: Alarm):
+        return self.common_db.create('alarms', alarm.to_dict())
+
+    def delete_alarm(self, alarm_uuid: str):
+        return self.common_db.del_one('alarms', {'uuid': alarm_uuid})
+
+    def get_alarms(self) -> List[Alarm]:
+        alarms = []
+        alarm_dicts = self.common_db.get_list('alarms')
+        for alarm_dict in alarm_dicts:
+            alarms.append(Alarm.from_dict(alarm_dict))
+        return alarms