X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fplugins%2FCloudWatch%2Fconnection.py;h=98b05aa06583196b9f1e4ef5e788f40e4b552577;hb=93699898c51364cde193d8d441f4aed45670e7bf;hp=5853ae9ba2db773fb431c4ea41c6e0e1b1ee624e;hpb=e80db311a29dc8562dc84ae3336af167bac2ec5b;p=osm%2FMON.git diff --git a/osm_mon/plugins/CloudWatch/connection.py b/osm_mon/plugins/CloudWatch/connection.py index 5853ae9..98b05aa 100644 --- a/osm_mon/plugins/CloudWatch/connection.py +++ b/osm_mon/plugins/CloudWatch/connection.py @@ -19,12 +19,12 @@ # contact with: wajeeha.hamid@xflowresearch.com ## -''' +""" Connecting with AWS services --CloudWatch/EC2 using Required keys -''' +""" __author__ = "Wajeeha Hamid" -__date__ = "18-September-2017" +__date__ = "18-September-2017" import os @@ -34,62 +34,61 @@ try: import boto.vpc import boto.ec2.cloudwatch import boto.ec2.connection - import logging + import logging from boto.ec2.cloudwatch.alarm import MetricAlarm from boto.ec2.cloudwatch.dimension import Dimension from boto.sns import connect_to_region from boto.utils import get_instance_metadata except: - exit("Boto not avialable. Try activating your virtualenv OR `pip install boto`") + exit("Boto not available. Try activating your virtualenv OR `pip install boto`") log = logging.getLogger(__name__) -class Connection(): - """Connection Establishement with AWS -- VPC/EC2/CloudWatch""" -#----------------------------------------------------------------------------------------------------------------------------- - def setEnvironment(self): + +class Connection: + """Connection Establishment with AWS -- VPC/EC2/CloudWatch""" + + def setEnvironment(self): try: - """Credentials for connecting to AWS-CloudWatch""" - #Reads from the environment variables + """Credentials for connecting to AWS-CloudWatch""" + # Reads from the environment variables self.AWS_KEY = os.environ.get("AWS_ACCESS_KEY_ID") self.AWS_SECRET = os.environ.get("AWS_SECRET_ACCESS_KEY") - self.AWS_REGION = os.environ.get("AWS_EC2_REGION","us-west-2") + self.AWS_REGION = os.environ.get("AWS_EC2_REGION", "us-west-2") - #TODO Read from the cloudwatch_credentials.txt file + # TODO Read from the cloudwatch_credentials.txt file return self.connection_instance() except Exception as e: - log.error("AWS Credentials not configured, Try setting the access credentials first %s: ",str(e)) -#----------------------------------------------------------------------------------------------------------------------------- + log.error("AWS Credentials not configured, Try setting the access credentials first %s: ", str(e)) + def connection_instance(self): - try: - #VPC Connection - self.vpc_conn = boto.vpc.connect_to_region(self.AWS_REGION, - aws_access_key_id=self.AWS_KEY, - aws_secret_access_key=self.AWS_SECRET) - - - #EC2 Connection - self.ec2_conn = boto.ec2.connect_to_region(self.AWS_REGION, - aws_access_key_id=self.AWS_KEY, - aws_secret_access_key=self.AWS_SECRET) - - """ TODO : Required to add actions against alarms when needed """ - #self.sns = connect_to_region(self.AWS_REGION) - #self.topics = self.sns.get_all_topics() - #self.topic = self.topics[u'ListTopicsResponse']['ListTopicsResult']['Topics'][0]['TopicArn'] - - #Cloudwatch Connection - self.cloudwatch_conn = boto.ec2.cloudwatch.connect_to_region( - self.AWS_REGION, - aws_access_key_id=self.AWS_KEY, - aws_secret_access_key=self.AWS_SECRET) - connection_dict = dict() - connection_dict['ec2_connection'] = self.ec2_conn - connection_dict['cloudwatch_connection'] = self.cloudwatch_conn - return connection_dict - - except Exception as e: - log.error("Failed to Connect with AWS %s: ",str(e)) + try: + # VPC Connection + self.vpc_conn = boto.vpc.connect_to_region(self.AWS_REGION, + aws_access_key_id=self.AWS_KEY, + aws_secret_access_key=self.AWS_SECRET) + # EC2 Connection + self.ec2_conn = boto.ec2.connect_to_region(self.AWS_REGION, + aws_access_key_id=self.AWS_KEY, + aws_secret_access_key=self.AWS_SECRET) + + """ TODO : Required to add actions against alarms when needed """ + # self.sns = connect_to_region(self.AWS_REGION) + # self.topics = self.sns.get_all_topics() + # self.topic = self.topics[u'ListTopicsResponse']['ListTopicsResult']['Topics'][0]['TopicArn'] + + # Cloudwatch Connection + self.cloudwatch_conn = boto.ec2.cloudwatch.connect_to_region( + self.AWS_REGION, + aws_access_key_id=self.AWS_KEY, + aws_secret_access_key=self.AWS_SECRET) + connection_dict = dict() + connection_dict['ec2_connection'] = self.ec2_conn + connection_dict['cloudwatch_connection'] = self.cloudwatch_conn + return connection_dict + + except Exception as e: + log.error("Failed to Connect with AWS %s: ", str(e))