X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fserver%2Fservice.py;h=1d546e38319850fb99337b458801192f2a50b279;hb=628df021896fa8775f9743af62a4267b617cc35c;hp=60cb3ecfe505cb919abf4b1511e6e0f1c47f1e4f;hpb=0085a4a8870a73a9186b0a2305ba00bae44a6ea0;p=osm%2FMON.git diff --git a/osm_mon/server/service.py b/osm_mon/server/service.py index 60cb3ec..1d546e3 100755 --- a/osm_mon/server/service.py +++ b/osm_mon/server/service.py @@ -21,10 +21,12 @@ # contact: bdiaz@whitestack.com or glavado@whitestack.com ## import logging +import uuid +from osm_mon.core import database from osm_mon.core.common_db import CommonDbClient from osm_mon.core.config import Config -from osm_mon.core.models import Alarm +from osm_mon.core.database import AlarmRepository, Alarm, AlarmTagRepository log = logging.getLogger(__name__) @@ -36,16 +38,41 @@ class ServerService: def create_alarm(self, name: str, - threshold: float, + threshold: str, operation: str, severity: str, statistic: str, metric_name: str, tags: dict) -> Alarm: - alarm = Alarm(name, severity, threshold, operation, statistic, metric_name, tags) - self.common_db.create_alarm(alarm) - return alarm + database.db.connect() + try: + with database.db.atomic(): + alarm = AlarmRepository.create( + uuid=str(uuid.uuid4()), + name=name, + threshold=threshold, + operation=operation.lower(), + severity=severity.lower(), + statistic=statistic.lower(), + metric=metric_name + ) + for k, v in tags.items(): + AlarmTagRepository.create( + name=k, + value=v, + alarm=alarm + ) + return alarm + + finally: + database.db.close() def delete_alarm(self, alarm_uuid: str) -> None: - self.common_db.delete_alarm(alarm_uuid) + database.db.connect() + try: + with database.db.atomic(): + alarm = AlarmRepository.get(Alarm.uuid == alarm_uuid) + alarm.delete_instance() + finally: + database.db.close()