Skip to content

Commit 38759f3

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add "server group show" command"
2 parents e78113a + a0d7996 commit 38759f3

5 files changed

Lines changed: 70 additions & 0 deletions

File tree

doc/source/command-objects/server-group.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,18 @@ List all server groups
6363
.. option:: --long
6464

6565
List additional fields in output
66+
67+
server group show
68+
-----------------
69+
70+
Display server group details
71+
72+
.. program:: server group show
73+
.. code-block:: bash
74+
75+
os server group show
76+
<server-group>
77+
78+
.. describe:: <server-group>
79+
80+
Server group to display (name or ID)

openstackclient/compute/v2/server_group.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,3 +156,27 @@ def take_action(self, parsed_args):
156156
'Members': utils.format_list,
157157
}
158158
) for s in data))
159+
160+
161+
class ShowServerGroup(command.ShowOne):
162+
"""Display server group details."""
163+
164+
def get_parser(self, prog_name):
165+
parser = super(ShowServerGroup, self).get_parser(prog_name)
166+
parser.add_argument(
167+
'server_group',
168+
metavar='<server-group>',
169+
help='server group to display (name or ID)',
170+
)
171+
return parser
172+
173+
def take_action(self, parsed_args):
174+
compute_client = self.app.client_manager.compute
175+
group = utils.find_resource(compute_client.server_groups,
176+
parsed_args.server_group)
177+
info = {}
178+
info.update(group._info)
179+
columns = _get_columns(info)
180+
data = utils.get_dict_properties(info, columns,
181+
formatters=_formatters)
182+
return columns, data

openstackclient/tests/compute/v2/test_server_group.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,3 +258,26 @@ def test_server_group_list_with_all_projects_and_long(self):
258258

259259
self.assertEqual(self.list_columns_long, columns)
260260
self.assertEqual(self.list_data_long, tuple(data))
261+
262+
263+
class TestServerGroupShow(TestServerGroup):
264+
265+
def setUp(self):
266+
super(TestServerGroupShow, self).setUp()
267+
268+
self.server_groups_mock.get.return_value = self.fake_server_group
269+
self.cmd = server_group.ShowServerGroup(self.app, None)
270+
271+
def test_server_group_show(self):
272+
arglist = [
273+
'affinity_group',
274+
]
275+
verifylist = [
276+
('server_group', 'affinity_group'),
277+
]
278+
279+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
280+
columns, data = self.cmd.take_action(parsed_args)
281+
282+
self.assertEqual(self.columns, columns)
283+
self.assertEqual(self.data, data)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
features:
3+
- |
4+
Add support for compute v2 ``server group`` related commands, include:
5+
create, delete, list and show.
6+
[Bug `1542171 <https://bugs.launchpad.net/python-openstackclient/+bug/1542171>`_]
7+
[Blueprint `nova-server-group-support <https://blueprints.launchpad.net/python-openstackclient/+spec/nova-server-group-support>`_]

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ openstack.compute.v2 =
134134
server_group_create = openstackclient.compute.v2.server_group:CreateServerGroup
135135
server_group_delete = openstackclient.compute.v2.server_group:DeleteServerGroup
136136
server_group_list = openstackclient.compute.v2.server_group:ListServerGroup
137+
server_group_show = openstackclient.compute.v2.server_group:ShowServerGroup
137138

138139
usage_list = openstackclient.compute.v2.usage:ListUsage
139140
usage_show = openstackclient.compute.v2.usage:ShowUsage

0 commit comments

Comments
 (0)