From a0d79968ca14d7856e1813151f474bfef968c1e8 Mon Sep 17 00:00:00 2001 From: Rui Chen Date: Thu, 31 Mar 2016 15:52:08 +0800 Subject: Add "server group show" command Support compute v2 "server group show" command in OSC. Implements: blueprint nova-server-group-support Closes-Bug: #1542171 Change-Id: I1a6d103151c704bda5b67cb9a49cc43c7d9f1d6a --- openstackclient/compute/v2/server_group.py | 24 ++++++++++++++++++++++ .../tests/compute/v2/test_server_group.py | 23 +++++++++++++++++++++ 2 files changed, 47 insertions(+) (limited to 'openstackclient') diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py index 56d7e27a..eb5745f5 100644 --- a/openstackclient/compute/v2/server_group.py +++ b/openstackclient/compute/v2/server_group.py @@ -156,3 +156,27 @@ class ListServerGroup(command.Lister): 'Members': utils.format_list, } ) for s in data)) + + +class ShowServerGroup(command.ShowOne): + """Display server group details.""" + + def get_parser(self, prog_name): + parser = super(ShowServerGroup, self).get_parser(prog_name) + parser.add_argument( + 'server_group', + metavar='', + help='server group to display (name or ID)', + ) + return parser + + def take_action(self, parsed_args): + compute_client = self.app.client_manager.compute + group = utils.find_resource(compute_client.server_groups, + parsed_args.server_group) + info = {} + info.update(group._info) + columns = _get_columns(info) + data = utils.get_dict_properties(info, columns, + formatters=_formatters) + return columns, data diff --git a/openstackclient/tests/compute/v2/test_server_group.py b/openstackclient/tests/compute/v2/test_server_group.py index a18c6014..70ff23f9 100644 --- a/openstackclient/tests/compute/v2/test_server_group.py +++ b/openstackclient/tests/compute/v2/test_server_group.py @@ -258,3 +258,26 @@ class TestServerGroupList(TestServerGroup): self.assertEqual(self.list_columns_long, columns) self.assertEqual(self.list_data_long, tuple(data)) + + +class TestServerGroupShow(TestServerGroup): + + def setUp(self): + super(TestServerGroupShow, self).setUp() + + self.server_groups_mock.get.return_value = self.fake_server_group + self.cmd = server_group.ShowServerGroup(self.app, None) + + def test_server_group_show(self): + arglist = [ + 'affinity_group', + ] + verifylist = [ + ('server_group', 'affinity_group'), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, data) -- cgit v1.2.1