Further improve output for "os security group show"

Improve the security group rules output when running the
"os security group show" command. Empty and duplicate
information for each security group rule is now removed.
This will ensure that the rules remain readable when
direction and ethertype information is returned as part
of the transition to neutron networking.

Change-Id: Ib49c27a9d7f4d5d38ceb2b0d785ddf94d88b2d89
Partial-Bug: #1519511
Related-To: blueprint neutron-client
This commit is contained in:
Richard Theis 2016-01-05 12:33:11 -06:00
parent 401164939e
commit 5ff660f718
1 changed files with 19 additions and 1 deletions

View File

@ -62,6 +62,23 @@ def _xform_security_group_rule(sgroup):
return info
def _xform_and_trim_security_group_rule(sgroup):
info = _xform_security_group_rule(sgroup)
# Trim parent security group ID since caller has this information.
info.pop('parent_group_id', None)
# Trim keys with empty string values.
keys_to_trim = [
'ip_protocol',
'ip_range',
'port_range',
'remote_security_group',
]
for key in keys_to_trim:
if key in info and not info[key]:
info.pop(key)
return info
class CreateSecurityGroup(show.ShowOne):
"""Create a new security group"""
@ -396,7 +413,8 @@ class ShowSecurityGroup(show.ShowOne):
)._info)
rules = []
for r in info['rules']:
rules.append(utils.format_dict(_xform_security_group_rule(r)))
formatted_rule = _xform_and_trim_security_group_rule(r)
rules.append(utils.format_dict(formatted_rule))
# Format rules into a list of strings
info.update(