summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorRui Chen <chenrui.momo@gmail.com>2016-03-30 11:48:39 +0800
committerRui Chen <chenrui.momo@gmail.com>2016-04-20 03:25:57 +0000
commit4e2272801377e50be25523d5a487d02da0614220 (patch)
tree57bc6c8e617b810087e5c44a14a51b0750cad9b7 /openstackclient/compute
parent7458c612eda86fe8a616d8daa74e428a7664bbf0 (diff)
downloadpython-openstackclient-4e2272801377e50be25523d5a487d02da0614220.tar.gz
Add "server group list" command
Support compute v2 "server group list" command in OSC. Implements: blueprint nova-server-group-support Partial-Bug: #1542171 Change-Id: I68b80e3c4458692472af671028cd1f939736bcb8
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server_group.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py
index 02de011e..56d7e27a 100644
--- a/openstackclient/compute/v2/server_group.py
+++ b/openstackclient/compute/v2/server_group.py
@@ -99,3 +99,60 @@ class DeleteServerGroup(command.Command):
total = len(parsed_args.server_group)
msg = "%s of %s server groups failed to delete." % (result, total)
raise exceptions.CommandError(msg)
+
+
+class ListServerGroup(command.Lister):
+ """List all server groups."""
+
+ def get_parser(self, prog_name):
+ parser = super(ListServerGroup, self).get_parser(prog_name)
+ parser.add_argument(
+ '--all-projects',
+ action='store_true',
+ default=False,
+ help='Display information from all projects (admin only)',
+ )
+ parser.add_argument(
+ '--long',
+ action='store_true',
+ default=False,
+ help='List additional fields in output',
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ compute_client = self.app.client_manager.compute
+ data = compute_client.server_groups.list(parsed_args.all_projects)
+
+ if parsed_args.long:
+ column_headers = (
+ 'ID',
+ 'Name',
+ 'Policies',
+ 'Members',
+ 'Project Id',
+ 'User Id',
+ )
+ columns = (
+ 'ID',
+ 'Name',
+ 'Policies',
+ 'Members',
+ 'Project Id',
+ 'User Id',
+ )
+ else:
+ column_headers = columns = (
+ 'ID',
+ 'Name',
+ 'Policies',
+ )
+
+ return (column_headers,
+ (utils.get_item_properties(
+ s, columns,
+ formatters={
+ 'Policies': utils.format_list,
+ 'Members': utils.format_list,
+ }
+ ) for s in data))