Exemple #1
0
 def dispatchCreateSecurityGroup(self, payload, tags):
     service_logger.info("------dispatchCreateSecurityGroup-------------")
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     cid = check_cid_key(payload)
     if (cid >= 0):
         service_logger.info(
             "-------before calling AWS Service-------------")
         resp = CloudFactory.getInstance(cid).addSecurityGroup(
             payload, tags)
         service_logger.info(
             "------After calling AWS Service-------------" +
             json.dumps(resp))
         return json.dumps(resp)
         """if resp == True:
             service_logger.info("------Response true-------------")
             return True"""
         #with ClusterRpcProxy(CONFIG) as rpc:
         #rpc.guiHandler.dispatchSecurityGroup(payload)
     else:
         service_logger.error("%s %s ",
                              sys._getframe().f_code.co_name,
                              "Cloud ID not present ")
         return False
    def addSecurityGroup(self, payload, tags):
        service_logger.info("-------Entered addSecurityGroup-------------")
        service_logger.info("%s %s %s ",
                            sys._getframe().f_code.co_name, "Payload:-",
                            payload)
        resp = ""
        buf = json.loads(payload)
        region = buf['region']
        try:
            if (buf['payload']):
                buf = buf['payload']

                service_logger.info("-----------Before connect-------------")
                ec2 = connect_ec2_instance(region, self.aws_access_key_id,
                                           self.aws_secret_access_key)
                service_logger.info("-----------After connect-------------")

                resp = ec2.create_security_group(**buf)
                service_logger.info("-----------After create-------------" +
                                    resp['GroupId'])
                groupId = resp['GroupId']
                ec2.create_tags(Resources=[groupId], Tags=tags)
                return resp
                """if groupId:
                    service_logger.info("--------true---------")
                    return True"""
            #return False
        except Exception as e:
            service_logger.error("%s %s %s ",
                                 sys._getframe().f_code.co_name, "Exception:-",
                                 str(e))
            data = {}
            data['exception'] = str(e)
            return data
    def updateEgressRule(self, payload):
        """ returns instance list """
        service_logger.info("%s %s %s ",
                            sys._getframe().f_code.co_name, "Payload:-",
                            payload)
        resp = ""
        buf = json.loads(payload)
        region = buf['region']
        try:
            ec2 = connect_ec2_instance(region, self.aws_access_key_id,
                                       self.aws_secret_access_key)
            buf = buf['payload']
            arg = dict([('GroupId', buf['GroupId']),
                        ('IpPermissions', buf['Old_IpPermissions'])])
            if arg['IpPermissions']:
                resp = ec2.revoke_security_group_egress(**arg)
            arg = dict([('GroupId', buf['GroupId']),
                        ('IpPermissions', buf['New_IpPermissions'])])
            if arg['IpPermissions']:
                resp = ec2.authorize_security_group_egress(**arg)

            service_logger.info(
                '--------------------------------------Egress Successfully Set %s',
                resp)
            return resp

        except Exception as e:
            service_logger.error("%s %s %s ",
                                 sys._getframe().f_code.co_name, "Exception:-",
                                 str(e))
            data = {}
            data['exception'] = str(e)
            return data
Exemple #4
0
def check_cid_key(payload):
    buf = json.loads(payload)
    if buf['CloudId']:
        if int(buf['CloudId']) >= 0:
            return int(buf['CloudId'])
        else:
            return -1

    else:
        service_logger.error("%s %s ",
                             sys._getframe().f_code.co_name,
                             "Cloud ID not present ")
        return 0
Exemple #5
0
 def dispatchVpc(self, payload):
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     cid = check_cid_key(payload)
     if (cid >= 0):
         resp = CloudFactory.getInstance(cid).getVpc(payload)
         #resp.update({'CloudId': cid})
         #self.dispatch("Event_updateVpcTable", resp)
         return resp
     else:
         service_logger.error("%s %s ",
                              sys._getframe().f_code.co_name,
                              "Cloud ID not present ")
Exemple #6
0
 def dispatchDeleteSecurityGroup(self, payload):
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     cid = check_cid_key(payload)
     if (cid >= 0):
         resp = CloudFactory.getInstance(cid).deleteSecurityGroup(payload)
         return resp
         """if resp == True:
             with ClusterRpcProxy(CONFIG) as rpc:
                 rpc.guiHandler.dispatchSecurityGroup(payload) """
     else:
         service_logger.error("%s %s ",
                              sys._getframe().f_code.co_name,
                              "Cloud ID not present ")
 def addSecurityGroup(self, payload):
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "payload :",
                         payload)
     namespace = payload['namespace']
     body = client.V1beta1NetworkPolicy()  # V1beta1NetworkPolicy |
     pretty = 'pretty_example'  # str | If 'true', then the output is pretty printed. (optional)
     body.metadata = client.V1ObjectMeta()
     body.metadata.name = payload['name']
     try:
         body.metadata.name = payload['name']
         #api_response = self.v1_ext.create_namespaced_network_policy(namespace, body, pretty=pretty)
     except ApiException as e:
         service_logger.error(
             "Exception when calling ExtensionsV1beta1Api->create_namespaced_network_policy: %s\n"
             % e)
Exemple #8
0
 def dispatchRegion(self, payload):
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     cid = check_cid_key(payload)
     if (cid >= 0):
         service_logger.info("--------AAA Cloud found--------")
         resp = CloudFactory.getInstance(cid).getRegion(payload)
         service_logger.info("--------After Cloud found--------")
         return resp
         #for item in resp:
         #item.update({'CloudId': cid})
         #resp.update({'CloudId': cid})
         #self.dispatch("Event_updateRegionTable", resp)
     else:
         service_logger.error("%s %s ",
                              sys._getframe().f_code.co_name,
                              "Cloud ID not present ")
Exemple #9
0
 def dispatchUpdateSgRulesIngress(self, payload):
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     cid = check_cid_key(payload)
     service_logger.info("After CID check------------------")
     if (cid >= 0):
         service_logger.info("CID found")
         resp = CloudFactory.getInstance(cid).updateIngressRule(payload)
         service_logger.info("-------Dispatch complete-----------")
         return resp
         """if resp == True:
             with ClusterRpcProxy(CONFIG) as rpc:
                 rpc.guiHandler.dispatchDeleteSecurityGroup(payload)
             with ClusterRpcProxy(CONFIG) as rpc:
                 rpc.guiHandler.dispatchSecurityGroup(payload)"""
     else:
         service_logger.error("%s %s ",
                              sys._getframe().f_code.co_name,
                              "Cloud ID not present ")
 def deleteSecurityGroup(self, payload):
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     resp = ""
     buf = json.loads(payload)
     region = buf['region']
     try:
         if (buf['payload']):
             buf = buf['payload']
             ec2 = connect_ec2_instance(region, self.aws_access_key_id,
                                        self.aws_secret_access_key)
             resp = ec2.delete_security_group(**buf)
             service_logger.info("Resp: %s", resp)
             return True
     except Exception as e:
         service_logger.error("%s %s %s ",
                              sys._getframe().f_code.co_name, "Exception:-",
                              str(e))
         return False
 def updateEgressRule(self, payload):
     service_logger.error("%s %s %s ",
                          sys._getframe().f_code.co_name,
                          "This service is not supported for :%s", self)
     namespace = payload['namespace']
     name = payload['name']
     body = get_network_policy_obj(namespace, name)
     if (not body):
         logger_info("Object (%s) not found \n" % name)
         return
     try:
         egress_len = len(body.spec.egress)
         egress = [client.V1beta1NetworkPolicyEgressRule()]
         egress.ports = [{'port': 80, 'protocol': 'TCP'}]
         body.spec.egress.append(egress)
         #api_response = self.v1_ext.patch_namespaced_network_policy(name, namespace, body, pretty=pretty)
     except ApiException as e:
         logger_info(
             "Exception when calling ExtensionsV1beta1Api->patch_namespaced_network_policy: %s\n"
             % e)
 def getVpc(self, payload):
     """ returns instance list """
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     #import pdb
     #pdb.set_trace()
     resp = ""
     buf = json.loads(payload)
     region = buf['region']
     try:
         ec2 = connect_ec2_instance(region, self.aws_access_key_id,
                                    self.aws_secret_access_key)
         resp = ec2.describe_vpcs()
         return resp
         #return ({'region': region, 'vpcs': resp['Vpcs']})
     except Exception as e:  # EC2ResponseError
         service_logger.error("%s %s %s ",
                              sys._getframe().f_code.co_name, "Exception:-",
                              str(e))
         return {'reason of failure': str(e)}
 def getRegion(self, payload):
     """ returns instance list """
     service_logger.info("-------LOG----")
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     resp = ""
     try:
         service_logger.info("--------BEFORE CONNECTION---------------  " +
                             self.aws_access_key_id + "   " +
                             self.aws_secret_access_key)
         ec2 = connect_ec2_instance("us-east-2", self.aws_access_key_id,
                                    self.aws_secret_access_key)
         service_logger.info("--------AFTER CONNECTION---------------")
         resp = ec2.describe_regions()
         return (resp['Regions'])
     except Exception as e:  # EC2ResponseError
         service_logger.error("%s %s %s ",
                              sys._getframe().f_code.co_name, "Exception:-",
                              str(e))
         return False
 def getSecurityGroup(self, payload):
     """ returns instance list """
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     resp = ""
     buf = json.loads(payload)
     region = buf['region']
     try:
         ec2 = connect_ec2_instance(region, self.aws_access_key_id,
                                    self.aws_secret_access_key)
         if buf['payload']:
             arg = buf['payload']
             resp = ec2.describe_security_groups(**arg)
         else:
             resp = ec2.describe_security_groups()
         return (resp['SecurityGroups'])
     except Exception as e:  # EC2ResponseError
         service_logger.error("%s %s %s ",
                              sys._getframe().f_code.co_name, "Exception:-",
                              str(e))
         return False
Exemple #15
0
 def _dispatchSecurityGroup(self, payload):
     service_logger.info("%s %s %s ",
                         sys._getframe().f_code.co_name, "Payload:-",
                         payload)
     import pdb
     #pdb.set_trace()
     cid = check_cid_key(payload)
     if (cid >= 0):
         try:
             resp = CloudFactory.getInstance(cid).getSecurityGroup(payload)
             service_logger.error("%s %s %s ",
                                  sys._getframe().f_code.co_name, "resp: ",
                                  resp)
             resp.update({'CloudId': cid})
             self.dispatch("Event_updateSecurityGroupTable", ({
                 'CloudId': cid
             }, resp))
         except:
             raise Exception("tmp error:".join(
                 traceback.format_exception(*sys.exc_info())))
     else:
         service_logger.error("%s %s ",
                              sys._getframe().f_code.co_name,
                              "Cloud ID not present ")
 def updateIngressRule(self, payload):
     service_logger.error("%s %s %s ",
                          sys._getframe().f_code.co_name,
                          "This service is not supported for :%s", self)
 def getVpc(self, payload):
     service_logger.error("%s %s %s ",
                          sys._getframe().f_code.co_name,
                          "This service is not supported for :%s", self)
 def updateRegion(self):
     service_logger.error("%s %s %s ",
                          sys._getframe().f_code.co_name,
                          "This service is not supported for :%s", self)
 def deleteSecurityGroup(self):
     service_logger.error("%s %s %s ",
                          sys._getframe().f_code.co_name,
                          "This service is not supported for :%s", self)
 def deleteEgressRule(self):
     service_logger.error("%s %s %s ",
                          sys._getframe().f_code.co_name,
                          "This service is not supported for :%s", self)