X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FMON.git;a=blobdiff_plain;f=osm_mon%2Fcore%2Fmodels.py;fp=osm_mon%2Fcore%2Fmodels.py;h=1810c9b2fc32836b24b312a1b0c5c67ff741ef93;hp=0000000000000000000000000000000000000000;hb=1b7145f6d0d3c0090b7a33b4972861ad9ed48631;hpb=628df021896fa8775f9743af62a4267b617cc35c diff --git a/osm_mon/core/models.py b/osm_mon/core/models.py new file mode 100644 index 0000000..1810c9b --- /dev/null +++ b/osm_mon/core/models.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Whitestack, LLC +# ************************************************************* + +# This file is part of OSM Monitoring module +# All Rights Reserved to Whitestack, LLC + +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# For those usages not covered by the Apache License, Version 2.0 please +# contact: bdiaz@whitestack.com or glavado@whitestack.com +## +import uuid + + +class Alarm: + + def __init__(self, name: str = None, severity: str = None, threshold: float = None, operation: str = None, + statistic: str = None, metric: str = None, tags: dict = {}): + self.uuid = str(uuid.uuid4()) + self.name = name + self.severity = severity + self.threshold = threshold + self.operation = operation + self.statistic = statistic + self.metric = metric + self.tags = tags + + def to_dict(self) -> dict: + alarm = { + 'uuid': self.uuid, + 'name': self.name, + 'severity': self.severity, + 'threshold': self.threshold, + 'statistic': self.statistic, + 'metric': self.metric, + 'tags': self.tags + } + return alarm + + @staticmethod + def from_dict(data: dict): + alarm = Alarm() + alarm.uuid = data.get('uuid', str(uuid.uuid4())) + alarm.name = data.get('name') + alarm.severity = data.get('severity') + alarm.threshold = data.get('threshold') + alarm.statistic = data.get('statistic') + alarm.metric = data.get('metric') + alarm.tags = data.get('tags') + return alarm