Beispiel #1
0
    def add_rule(cls, cloud, secgroup, from_port, to_port, protocol, cidr):
        try:
            # Get the nova client object
            cloud_provider = CloudProvider(cloud).provider

            # Create add secgroup rules to the cloud
            args = {
                'uuid': secgroup.uuid,
                'protocol': protocol,
                'from_port': from_port,
                'to_port': to_port,
                'cidr': cidr
            }
            rule_id = cloud_provider.add_secgroup_rule(**args)

            # create local db record
            ruleObj = cls.cm_db.db_obj_dict("secgrouprule",
                                            uuid=str(rule_id),
                                            name=secgroup.name,
                                            groupid=secgroup.uuid,
                                            category=secgroup.category,
                                            user=secgroup.user,
                                            project=secgroup.project,
                                            fromPort=from_port,
                                            toPort=to_port,
                                            protocol=protocol,
                                            cidr=cidr)

            cls.cm_db.add_obj(ruleObj)
            cls.cm_db.save()

            Console.ok(
                "Added rule [{} | {} | {} | {}] to secgroup [{}]".format(
                    from_port, to_port, protocol, cidr, secgroup.name))
        except Exception as ex:
            if "This rule already exists" in ex.message:
                Console.ok("Rule already exists. Added rule.")
                return
            else:
                Console.error(ex.message, ex)
        return
Beispiel #2
0
    def add_rule(cls, cloud, secgroup_uuid, from_port, to_port, protocol,
                 cidr):
        try:

            # Get the nova client object
            cloud_provider = CloudProvider(cloud).provider

            # Create add secgroup rules to the cloud
            args = {
                'uuid': secgroup_uuid,
                'protocol': protocol,
                'from_port': from_port,
                'to_port': to_port,
                'cidr': cidr
            }
            rule_id = cloud_provider.add_secgroup_rule(**args)

            # create local db record
            rule = {
                "kind": "secgrouprule",
                "uuid": str(rule_id),
                "category": cloud,
                "fromPort": from_port,
                "toPort": to_port,
                "protocol": protocol,
                "cidr": cidr
            }
            """
            cls.cm.add(**rule)
            cls.cm.save()
            """
            Console.ok(
                "Added rule {category} {uuid} {fromPort} {toPort} {protocol} {cidr}"
                .format(**rule))
        except Exception as ex:
            if "This rule already exists" in ex.message:
                Console.ok("Rule already exists. Added rule.")
                return
            else:
                Console.error(ex.message, ex)
        return
Beispiel #3
0
    def add_rule(cls, cloud, secgroup, from_port, to_port, protocol, cidr):
        try:
            # Get the nova client object
            cloud_provider = CloudProvider(cloud).provider

            # Create add secgroup rules to the cloud
            args = {
                'uuid': secgroup.uuid,
                'protocol': protocol,
                'from_port': from_port,
                'to_port': to_port,
                'cidr': cidr
            }
            rule_id = cloud_provider.add_secgroup_rule(**args)

            # create local db record
            ruleObj = cls.cm_db.db_obj_dict("secgrouprule",
                                            uuid=str(rule_id),
                                            name=secgroup.name,
                                            groupid=secgroup.uuid,
                                            category=secgroup.category,
                                            user=secgroup.user,
                                            project=secgroup.project,
                                            fromPort=from_port,
                                            toPort=to_port,
                                            protocol=protocol,
                                            cidr=cidr)

            cls.cm_db.add_obj(ruleObj)
            cls.cm_db.save()

            Console.ok("Added rule [{} | {} | {} | {}] to secgroup [{}]"
                       .format(from_port, to_port, protocol, cidr,
                               secgroup.name))
        except Exception as ex:
            if "This rule already exists" in ex.message:
                Console.ok("Rule already exists. Added rule.")
                return
            else:
                Console.error(ex.message, ex)
        return
Beispiel #4
0
 def add_rule_cloud(cls, cloud, groupname, rulename):
     ret = None
     provider = CloudProvider(cloud).provider
     # fetch rule from db
     db_rule = cls.cm.find(kind="secgrouprule",
                           category="general",
                           group=groupname,
                           name=rulename,
                           scope='first',
                           output='dict')
     kwargs = {}
     kwargs["protocol"] = db_rule["protocol"]
     kwargs["cidr"] = db_rule["cidr"]
     kwargs["from_port"] = db_rule["fromPort"]
     kwargs["to_port"] = db_rule["toPort"]
     group = cls.get_group_cloud(cloud, groupname)
     if group:
         groupid = group["id"]
         kwargs["uuid"] = groupid
         ret = provider.add_secgroup_rule(**kwargs)
     return ret
Beispiel #5
0
 def add_rule_cloud(cls, cloud, groupname, rulename):
     ret = None
     provider = CloudProvider(cloud).provider
     # fetch rule from db
     db_rule = cls.cm.find(kind="secgrouprule",
                           category="general",
                           group=groupname,
                           name=rulename,
                           scope='first',
                           output='dict')
     kwargs = {}
     kwargs["protocol"] = db_rule["protocol"]
     kwargs["cidr"] = db_rule["cidr"]
     kwargs["from_port"] = db_rule["fromPort"]
     kwargs["to_port"] = db_rule["toPort"]
     group = cls.get_group_cloud(cloud, groupname)
     if group:
         groupid = group["id"]
         kwargs["uuid"] = groupid
         ret = provider.add_secgroup_rule(**kwargs)
     return ret
Beispiel #6
0
    def add_rule(cls, cloud, secgroup_uuid, from_port, to_port, protocol, cidr):
        try:

            # Get the nova client object
            cloud_provider = CloudProvider(cloud).provider

            # Create add secgroup rules to the cloud
            args = {
                'uuid': secgroup_uuid,
                'protocol': protocol,
                'from_port': from_port,
                'to_port': to_port,
                'cidr': cidr
            }
            rule_id = cloud_provider.add_secgroup_rule(**args)


            # create local db record
            rule = {"kind": "secgrouprule",
                    "uuid": str(rule_id),
                    "category": cloud,
                    "fromPort": from_port,
                    "toPort": to_port,
                    "protocol": protocol,
                    "cidr": cidr}
            """
            cls.cm.add(**rule)
            cls.cm.save()
            """
            Console.ok("Added rule {category} {uuid} {fromPort} {toPort} {protocol} {cidr}"
                       .format(**rule))
        except Exception as ex:
            if "This rule already exists" in ex.message:
                Console.ok("Rule already exists. Added rule.")
                return
            else:
                Console.error(ex.message, ex)
        return