From a0d79968ca14d7856e1813151f474bfef968c1e8 Mon Sep 17 00:00:00 2001 From: Rui Chen Date: Thu, 31 Mar 2016 15:52:08 +0800 Subject: [PATCH] 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 --- doc/source/command-objects/server-group.rst | 15 ++++++++++++ openstackclient/compute/v2/server_group.py | 24 +++++++++++++++++++ .../tests/compute/v2/test_server_group.py | 23 ++++++++++++++++++ ...server-group-command-fde165df53216726.yaml | 7 ++++++ setup.cfg | 1 + 5 files changed, 70 insertions(+) create mode 100644 releasenotes/notes/add-server-group-command-fde165df53216726.yaml diff --git a/doc/source/command-objects/server-group.rst b/doc/source/command-objects/server-group.rst index acf9be345..35d903dcc 100644 --- a/doc/source/command-objects/server-group.rst +++ b/doc/source/command-objects/server-group.rst @@ -63,3 +63,18 @@ List all server groups .. option:: --long List additional fields in output + +server group show +----------------- + +Display server group details + +.. program:: server group show +.. code-block:: bash + + os server group show + + +.. describe:: + + Server group to display (name or ID) diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py index 56d7e27a8..eb5745f5c 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 a18c60148..70ff23f9d 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) diff --git a/releasenotes/notes/add-server-group-command-fde165df53216726.yaml b/releasenotes/notes/add-server-group-command-fde165df53216726.yaml new file mode 100644 index 000000000..63b7b7a4d --- /dev/null +++ b/releasenotes/notes/add-server-group-command-fde165df53216726.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Add support for compute v2 ``server group`` related commands, include: + create, delete, list and show. + [Bug `1542171 `_] + [Blueprint `nova-server-group-support `_] diff --git a/setup.cfg b/setup.cfg index c6e7619c2..fb60bab51 100644 --- a/setup.cfg +++ b/setup.cfg @@ -134,6 +134,7 @@ openstack.compute.v2 = server_group_create = openstackclient.compute.v2.server_group:CreateServerGroup server_group_delete = openstackclient.compute.v2.server_group:DeleteServerGroup server_group_list = openstackclient.compute.v2.server_group:ListServerGroup + server_group_show = openstackclient.compute.v2.server_group:ShowServerGroup usage_list = openstackclient.compute.v2.usage:ListUsage usage_show = openstackclient.compute.v2.usage:ShowUsage