Revert "Feature 11061: Clean MON to have only the dashboarder"
This reverts commit 8c141fe62eb1d1f097c4d1d92f19a19a5de22d20.
Change-Id: I9c83c3c832312915439c7aa4b5ad5e081163bfa4
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/osm_mon/server/service.py b/osm_mon/server/service.py
new file mode 100755
index 0000000..7bc6dfc
--- /dev/null
+++ b/osm_mon/server/service.py
@@ -0,0 +1,71 @@
+# -*- 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 logging
+
+from osm_mon.core.common_db import CommonDbClient
+from osm_mon.core.config import Config
+from osm_mon.core.models import Alarm
+
+log = logging.getLogger(__name__)
+
+
+class ServerService:
+ def __init__(self, config: Config):
+ self.common_db = CommonDbClient(config)
+
+ def create_alarm(
+ self,
+ name: str,
+ threshold: float,
+ operation: str,
+ severity: str,
+ statistic: str,
+ metric_name: str,
+ action: str,
+ tags: dict,
+ ) -> Alarm:
+ log.debug("create_alarm")
+ alarm = Alarm(
+ name, severity, threshold, operation, statistic, metric_name, action, tags
+ )
+ self.common_db.create_alarm(alarm)
+ log.info("Alarm %s created", alarm.name)
+ return alarm
+
+ def delete_alarm(self, alarm_uuid: str) -> None:
+ log.debug("delete_alarm")
+ self.common_db.delete_alarm(alarm_uuid)
+ log.info("Alarm %s is deleted", alarm_uuid)
+
+ def populate_prometheus(self):
+ # This method can be executed infinite number of times
+ # without side-effects.
+ log.info("Setting up MON Exporter in prometheus")
+ result = self.common_db.common_db.set_one(
+ "prometheus_jobs",
+ {"job_name": "mon_exporter"},
+ {"job_name": "mon_exporter", "static_configs": [{"targets": ["mon:8000"]}]},
+ fail_on_empty=False,
+ upsert=True,
+ )
+ log.info("Prometheus Jobs added > {}".format(result))