diff --git a/README.rst b/README.rst index a535c134..44d8192f 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 01b56ab1..cb63e183 100644 --- a/troveclient/v1/shell.py +++ b/troveclient/v1/shell.py @@ -623,20 +623,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='', - 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='', - help='Security group name.') + help='Security group ID.') @utils.arg('cidr', metavar='', help='CIDR address.') @utils.service_type('database') def do_secgroup_add_rule(cs, args): @@ -649,6 +650,18 @@ def do_secgroup_add_rule(cs, args): 'from_port', 'to_port', 'cidr', 'created'], obj_is_dict=True) +@utils.arg('security_group', metavar='', + 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='', help='Name of security group rule.') @utils.service_type('database')