diff options
author | Denis Makogon <dmakogon@mirantis.com> | 2014-06-12 13:38:30 +0300 |
---|---|---|
committer | Denis Makogon <dmakogon@mirantis.com> | 2014-06-24 11:59:11 +0300 |
commit | b8fa51d9d04f56a593498afd06c4954d2ba99fb0 (patch) | |
tree | f953ed7998d16120b78151591152a684da734a84 | |
parent | 344a38a661d2379cda5675566dc4e185a3d1050f (diff) | |
download | python-troveclient-b8fa51d9d04f56a593498afd06c4954d2ba99fb0.tar.gz |
Fix shell view for secgroup-* commands
Reasons:
- currect code writes list of dict as they are,
without any formatting, actually _print_
method calls str() on each attribute,
this issue spoils human-readable form of the shell output.
Changes:
- updated "secgroup-list" (`rules` attributes was ignored);
- updated "secgroup-show" (`rules` attribute was ripped off);
- proposed new call "secgroup-list-rules <secgroup-id>";
Change-Id: Ic3f51b93af106c39de7eb3238f8bcffa3ea3cb95
Closes-Bug: #1300164
DocImpact: added new CLI command.
-rw-r--r-- | README.rst | 1 | ||||
-rw-r--r-- | troveclient/v1/shell.py | 19 |
2 files changed, 17 insertions, 3 deletions
@@ -125,6 +125,7 @@ You'll find complete documentation on the shell by running secgroup-add-rule Creates a security group rule. secgroup-delete-rule Deletes a security group rule. + secgroup-list-rules Lists all rules for a security group. secgroup-list Lists all security groups. secgroup-show Shows details of a security group. show Shows details of an instance. diff --git a/troveclient/v1/shell.py b/troveclient/v1/shell.py index 3c25d10..1084975 100644 --- a/troveclient/v1/shell.py +++ b/troveclient/v1/shell.py @@ -594,20 +594,21 @@ def do_secgroup_list(cs, args): wrapper = cs.security_groups.list() sec_grps += wrapper.items - utils.print_list(sec_grps, ['id', 'name', 'rules', 'instance_id']) + utils.print_list(sec_grps, ['id', 'name', 'instance_id']) @utils.arg('security_group', metavar='<security_group>', - help='ID of the security group.') + help='Security group ID') @utils.service_type('database') def do_secgroup_show(cs, args): """Shows details of a security group.""" sec_grp = cs.security_groups.get(args.security_group) + del sec_grp._info['rules'] _print_instance(sec_grp) @utils.arg('security_group', metavar='<security_group>', - help='Security group name.') + help='Security group ID.') @utils.arg('cidr', metavar='<cidr>', help='CIDR address.') @utils.service_type('database') def do_secgroup_add_rule(cs, args): @@ -620,6 +621,18 @@ def do_secgroup_add_rule(cs, args): 'from_port', 'to_port', 'cidr', 'created'], obj_is_dict=True) +@utils.arg('security_group', metavar='<security_group>', + help='Security group ID.') +@utils.service_type('database') +def do_secgroup_list_rules(cs, args): + """Lists all rules for a security group.""" + sec_grp = cs.security_groups.get(args.security_group) + rules = sec_grp._info['rules'] + utils.print_list( + rules, ['id', 'protocol', 'from_port', 'to_port', 'cidr'], + obj_is_dict=True) + + @utils.arg('security_group_rule', metavar='<security_group_rule>', help='Name of security group rule.') @utils.service_type('database') |