X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fopenstack%2Fsecurity_group.py;h=ca0e26614b4f5e8f31a81dd7e7cb9946a4f81112;hb=1505f3a42ea06ef30959e9e54fa7298eb55d83ee;hp=32f86fb1d1579c67a2d87b3831cb9ff95b69a335;hpb=e8b16b96a23e1ab54e780587cc7cc0345a1ddf0e;p=sfa.git diff --git a/sfa/openstack/security_group.py b/sfa/openstack/security_group.py index 32f86fb1..ca0e2661 100644 --- a/sfa/openstack/security_group.py +++ b/sfa/openstack/security_group.py @@ -1,24 +1,25 @@ from sfa.util.sfalogging import logger + class SecurityGroup: def __init__(self, driver): self.client = driver.shell.nova_manager - def create_security_group(self, name): try: - self.client.security_groups.create(name=name, description="") - except Exception, ex: + self.client.security_groups.create(name=name, description=name) + except Exception as ex: logger.log_exc("Failed to add security group") + raise def delete_security_group(self, name): try: - self.client.security_groups(name=name) - except Exception, ex: + security_group = self.client.security_groups.find(name=name) + self.client.security_groups.delete(security_group.id) + except Exception as ex: logger.log_exc("Failed to delete security group") - def _validate_port_range(self, port_range): from_port = to_port = None if isinstance(port_range, str): @@ -42,7 +43,6 @@ class SecurityGroup: logger.error('port must be an integer.') return (from_port, to_port) - def add_rule_to_group(self, group_name=None, protocol='tcp', cidr_ip='0.0.0.0/0', port_range=None, icmp_type_code=None, source_group_name=None, source_group_owner_id=None): @@ -54,20 +54,14 @@ class SecurityGroup: from_port, to_port = icmp_type[0], icmp_type[1] group = self.client.security_groups.find(name=group_name) - self.client.security_group_rules.create( - group_id=group.id, - ip_protocol=protocol, - from_port=from_port, - to_port=to_port, - cidr_ip=cidr_ip, - ) - except Exception, ex: + self.client.security_group_rules.create(group.id, + protocol, from_port, to_port, cidr_ip) + except Exception as ex: logger.log_exc("Failed to add rule to group %s" % group_name) - def remove_rule_from_group(self, group_name=None, protocol='tcp', cidr_ip='0.0.0.0/0', - port_range=None, icmp_type_code=None, - source_group_name=None, source_group_owner_id=None): + port_range=None, icmp_type_code=None, + source_group_name=None, source_group_owner_id=None): try: from_port, to_port = self._validate_port_range(port_range) icmp_type = self._validate_icmp_type_code(icmp_type_code) @@ -75,15 +69,14 @@ class SecurityGroup: from_port, to_port = icmp_type[0], icmp_type[1] group = self.client.security_groups.find(name=group_name) filter = { - 'id': group.id, + 'id': group.id, 'from_port': from_port, 'to_port': to_port, - 'cird_ip': ip, - 'ip_protocol':protocol, + 'cidr_ip': ip, + 'ip_protocol': protocol, } rule = self.client.security_group_rules.find(**filter) if rule: self.client.security_group_rules.delete(rule) - except Exception, ex: - logger.log_exc("Failed to remove rule from group %s" % group_name) - + except Exception as ex: + logger.log_exc("Failed to remove rule from group %s" % group_name)