summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Chen <chenrui.momo@gmail.com>2016-03-31 15:52:08 +0800
committerRui Chen <chenrui.momo@gmail.com>2016-04-20 03:26:13 +0000
commita0d79968ca14d7856e1813151f474bfef968c1e8 (patch)
treeb52511d67daf6c38d5456b054e65f82ac99cfba5
parent4e2272801377e50be25523d5a487d02da0614220 (diff)
downloadpython-openstackclient-a0d79968ca14d7856e1813151f474bfef968c1e8.tar.gz
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
-rw-r--r--doc/source/command-objects/server-group.rst15
-rw-r--r--openstackclient/compute/v2/server_group.py24
-rw-r--r--openstackclient/tests/compute/v2/test_server_group.py23
-rw-r--r--releasenotes/notes/add-server-group-command-fde165df53216726.yaml7
-rw-r--r--setup.cfg1
5 files changed, 70 insertions, 0 deletions
diff --git a/doc/source/command-objects/server-group.rst b/doc/source/command-objects/server-group.rst
index acf9be34..35d903dc 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
+ <server-group>
+
+.. describe:: <server-group>
+
+ Server group to display (name or ID)
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='<server-group>',
+ 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)
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 00000000..63b7b7a4
--- /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 <https://bugs.launchpad.net/python-openstackclient/+bug/1542171>`_]
+ [Blueprint `nova-server-group-support <https://blueprints.launchpad.net/python-openstackclient/+spec/nova-server-group-support>`_]
diff --git a/setup.cfg b/setup.cfg
index c6e7619c..fb60bab5 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