X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fplugins%2FCloudWatch%2Fplugin_alarm.py;h=c2ac6a7a0494c3e63572686b47fd8838bc317837;hb=e1c5c9ba4f44c3adc175421995e7171b6122b126;hp=adc4d29cc79c9f31d57f7928c79a6c30ef576ba6;hpb=8e226a68916159e07cf515634bc373e1e16eef5b;p=osm%2FMON.git diff --git a/osm_mon/plugins/CloudWatch/plugin_alarm.py b/osm_mon/plugins/CloudWatch/plugin_alarm.py index adc4d29..c2ac6a7 100644 --- a/osm_mon/plugins/CloudWatch/plugin_alarm.py +++ b/osm_mon/plugins/CloudWatch/plugin_alarm.py @@ -22,35 +22,25 @@ ''' AWS-Plugin implements all the methods of MON to interact with AWS using the BOTO client ''' +from io import open +from osm_mon.core.message_bus.producer import KafkaProducer +from osm_mon.plugins.CloudWatch.metric_alarms import MetricAlarm +from osm_mon.plugins.CloudWatch.metrics import Metrics __author__ = "Wajeeha Hamid" __date__ = "18-September-2017" -import sys import json -import logging as log -from jsmin import jsmin -from connection import Connection -from metric_alarms import MetricAlarm -from metrics import Metrics -sys.path.append("../../core/message_bus") -from producer import KafkaProducer +import logging + +log = logging.getLogger(__name__) class plugin_alarms(): """Receives Alarm info from MetricAlarm and connects with the consumer/producer""" def __init__ (self): - self.conn = Connection() self.metricAlarm = MetricAlarm() self.metric = Metrics() - self.connection() self.producer = KafkaProducer('') -#--------------------------------------------------------------------------------------------------------------------------- - def connection(self): - """Connecting instances with CloudWatch""" - self.conn.setEnvironment() - self.conn = self.conn.connection_instance() - self.cloudwatch_conn = self.conn['cloudwatch_connection'] - self.ec2_conn = self.conn['ec2_connection'] #--------------------------------------------------------------------------------------------------------------------------- def configure_alarm(self,alarm_info): alarm_id = self.metricAlarm.config_alarm(self.cloudwatch_conn,alarm_info) @@ -73,9 +63,12 @@ class plugin_alarms(): return self.metric.metricsData(self.cloudwatch_conn,metric_name,period,instance_id) #--------------------------------------------------------------------------------------------------------------------------- - def alarm_calls(self,message): + def alarm_calls(self,message,aws_conn): """Gets the message from the common consumer""" - try: + try: + self.cloudwatch_conn = aws_conn['cloudwatch_connection'] + self.ec2_conn = aws_conn['ec2_connection'] + log.info("Action required against: %s" % (message.topic)) alarm_info = json.loads(message.value) @@ -94,12 +87,12 @@ class plugin_alarms(): log.debug("Alarm Already exists") payload = json.dumps(config_resp) file = open('../../core/models/create_alarm_resp.json','wb').write((payload)) - self.producer.create_alarm_response(key='create_alarm_response',message=payload,topic = 'alarm_response') + self.producer.create_alarm_response(key='create_alarm_response',message=payload) else: payload = json.dumps(config_resp) file = open('../../core/models/create_alarm_resp.json','wb').write((payload)) - self.producer.create_alarm_response(key='create_alarm_response',message=payload,topic = 'alarm_response') + self.producer.create_alarm_response(key='create_alarm_response',message=payload) log.info("New alarm created with alarm info: %s", config_resp) else: