summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-01-04 21:41:06 +0000
committerGerrit Code Review <review@openstack.org>2016-01-04 21:41:06 +0000
commit401164939e16a8724d9b83fc1cad427dced66cd8 (patch)
treeb4583731f6aee11f446e3cbf2bf2174edd7db1b6 /openstackclient/compute
parent774201b696a5348119f9cc059bc5ecfc4421752e (diff)
parent96cc5eb3540e4753a8862020b2f6e78a465be4e2 (diff)
downloadpython-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.py32
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,