summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Makogon <dmakogon@mirantis.com>2014-06-12 13:38:30 +0300
committerDenis Makogon <dmakogon@mirantis.com>2014-06-24 11:59:11 +0300
commitb8fa51d9d04f56a593498afd06c4954d2ba99fb0 (patch)
treef953ed7998d16120b78151591152a684da734a84
parent344a38a661d2379cda5675566dc4e185a3d1050f (diff)
downloadpython-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.rst1
-rw-r--r--troveclient/v1/shell.py19
2 files changed, 17 insertions, 3 deletions
diff --git a/README.rst b/README.rst
index 1646f58..1353c93 100644
--- a/README.rst
+++ b/README.rst
@@ -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')