X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcore%2Fcommon_db.py;h=f15ae977d991229bbf26b62ec1d3c8534ead1233;hb=1b7145f6d0d3c0090b7a33b4972861ad9ed48631;hp=7bd2491e51a5984f0b2467eb441f59c70096cb35;hpb=456d0f323cfcb5fe6b8cad5a6c3e6633875633cd;p=osm%2FMON.git diff --git a/osm_mon/core/common_db.py b/osm_mon/core/common_db.py index 7bd2491..f15ae97 100644 --- a/osm_mon/core/common_db.py +++ b/osm_mon/core/common_db.py @@ -21,9 +21,12 @@ # 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: @@ -61,9 +64,11 @@ class CommonDbClient: def get_vnfd_by_name(self, vnfd_name: str): # TODO: optimize way of getting single VNFD in shared enviroments (RBAC) - vnfd = self.common_db.get_list("vnfds", - {"name": vnfd_name})[0] - return vnfd + if self.common_db.get_list("vnfds", {"name": vnfd_name}): + vnfd = self.common_db.get_list("vnfds", {"name": vnfd_name})[0] + return vnfd + else: + return None def get_nsrs(self): return self.common_db.get_list('nsrs') @@ -130,3 +135,16 @@ class CommonDbClient: def get_project(self, project_id: str): return self.common_db.get_one('projects', {'_id': project_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