diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-01-04 21:41:06 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-01-04 21:41:06 +0000 |
| commit | 401164939e16a8724d9b83fc1cad427dced66cd8 (patch) | |
| tree | b4583731f6aee11f446e3cbf2bf2174edd7db1b6 /openstackclient/compute | |
| parent | 774201b696a5348119f9cc059bc5ecfc4421752e (diff) | |
| parent | 96cc5eb3540e4753a8862020b2f6e78a465be4e2 (diff) | |
| download | python-openstackclient-401164939e16a8724d9b83fc1cad427dced66cd8.tar.gz | |
Merge "Add support to list all security group rules"
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/security_group.py | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/openstackclient/compute/v2/security_group.py b/openstackclient/compute/v2/security_group.py index a6f060f6..95e3a1c1 100644 --- a/openstackclient/compute/v2/security_group.py +++ b/openstackclient/compute/v2/security_group.py @@ -276,6 +276,7 @@ class ListSecurityGroupRule(lister.Lister): parser.add_argument( 'group', metavar='<group>', + nargs='?', help='List all rules in this security group (name or ID)', ) return parser @@ -284,26 +285,35 @@ class ListSecurityGroupRule(lister.Lister): 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, + 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 group.rules: + for rule in rules_to_list: 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", - "Remote Security Group", - ) return (column_headers, (utils.get_item_properties( s, columns, |
