def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) compute_client = self.app.client_manager.compute group = utils.find_resource( compute_client.security_groups, parsed_args.group, ) # Argh, the rules are not Resources... rules = [] for rule in group.rules: rules.append( security_group_rules.SecurityGroupRule( compute_client.security_group_rules, _xform_security_group_rule(rule), )) columns = column_headers = ( "ID", "IP Protocol", "IP Range", "Port Range", ) return (column_headers, (utils.get_item_properties( s, columns, ) for s in rules))
def take_action_compute(self, client, parsed_args): column_headers = self._get_column_headers(parsed_args) columns = ( "ID", "IP Protocol", "IP Range", "Port Range", "Remote Security Group", ) rules_to_list = [] if parsed_args.group is not None: group = utils.find_resource( client.security_groups, parsed_args.group, ) rules_to_list = group.rules else: columns = columns + ('parent_group_id',) search = {'all_tenants': parsed_args.all_projects} for group in client.security_groups.list(search_opts=search): rules_to_list.extend(group.rules) # NOTE(rtheis): Turn the raw rules into resources. rules = [] for rule in rules_to_list: rules.append(compute_secgroup_rules.SecurityGroupRule( client.security_group_rules, network_utils.transform_compute_security_group_rule(rule), )) return (column_headers, (utils.get_item_properties( s, columns, ) for s in rules))
def rules(self): """Wraps transmitted rule info in the novaclient rule class.""" manager = nova_rules.SecurityGroupRuleManager(None) rule_objs = [ nova_rules.SecurityGroupRule(manager, rule) for rule in self._apiresource.rules ] return [SecurityGroupRule(rule) for rule in rule_objs]
def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) compute_client = self.app.client_manager.compute columns = column_headers = ( "ID", "IP Protocol", "IP Range", "Port Range", "Remote Security Group", ) rules_to_list = [] if parsed_args.group: group = utils.find_resource( compute_client.security_groups, parsed_args.group, ) rules_to_list = group.rules else: columns = columns + ('parent_group_id', ) column_headers = column_headers + ('Security Group', ) for group in compute_client.security_groups.list(): rules_to_list.extend(group.rules) # Argh, the rules are not Resources... rules = [] for rule in rules_to_list: rules.append( security_group_rules.SecurityGroupRule( compute_client.security_group_rules, _xform_security_group_rule(rule), )) return (column_headers, (utils.get_item_properties( s, columns, ) for s in rules))
def generate_security_groups(is_uuid=False): def get_id(is_uuid): global current_int_id if is_uuid: return str(uuid.uuid4()) else: get_id.current_int_id += 1 return get_id.current_int_id get_id.current_int_id = 0 sg_manager = sec_groups.SecurityGroupManager(None) rule_manager = rules.SecurityGroupRuleManager(None) sec_group_1 = sec_groups.SecurityGroup(sg_manager, {"rules": [], "tenant_id": TEST.tenant.id, "id": get_id(is_uuid), "name": u"default", "description": u"default"}) sec_group_2 = sec_groups.SecurityGroup(sg_manager, {"rules": [], "tenant_id": TEST.tenant.id, "id": get_id(is_uuid), "name": u"other_group", "description": u"NotDefault."}) sec_group_3 = sec_groups.SecurityGroup(sg_manager, {"rules": [], "tenant_id": TEST.tenant.id, "id": get_id(is_uuid), "name": u"another_group", "description": u"NotDefault."}) rule = {'id': get_id(is_uuid), 'group': {}, 'ip_protocol': u"tcp", 'from_port': u"80", 'to_port': u"80", 'parent_group_id': sec_group_1.id, 'ip_range': {'cidr': u"0.0.0.0/32"}} icmp_rule = {'id': get_id(is_uuid), 'group': {}, 'ip_protocol': u"icmp", 'from_port': u"9", 'to_port': u"5", 'parent_group_id': sec_group_1.id, 'ip_range': {'cidr': u"0.0.0.0/32"}} group_rule = {'id': 3, 'group': {}, 'ip_protocol': u"tcp", 'from_port': u"80", 'to_port': u"80", 'parent_group_id': sec_group_1.id, 'source_group_id': sec_group_1.id} rule_obj = rules.SecurityGroupRule(rule_manager, rule) rule_obj2 = rules.SecurityGroupRule(rule_manager, icmp_rule) rule_obj3 = rules.SecurityGroupRule(rule_manager, group_rule) sec_group_1.rules = [rule_obj] sec_group_2.rules = [rule_obj] return {"rules": [rule_obj, rule_obj2, rule_obj3], "groups": [sec_group_1, sec_group_2, sec_group_3]}