Skip to content

Commit 1907220

Browse files
daizhiyongstevemar
authored andcommitted
Add "consistency group show" command
Add "consistency group show" command in volume v2 (v2 only). Change-Id: If496eba2955c0aacd52600bb6fba39690ddd90cb Implements: bp cinder-command-support Partial-Bug: #1613964
1 parent 094e518 commit 1907220

5 files changed

Lines changed: 84 additions & 0 deletions

File tree

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,20 @@ List consistency groups.
8181
.. option:: --long
8282

8383
List additional fields in output
84+
85+
consistency group show
86+
----------------------
87+
88+
Display consistency group details.
89+
90+
.. program:: consistency group show
91+
.. code:: bash
92+
93+
os consistency group show
94+
<consistency-group>
95+
96+
.. _consistency_group_show-consistency-group:
97+
.. describe:: <consistency-group>
98+
99+
Consistency group to display (name or ID)
100+

openstackclient/tests/unit/volume/v2/test_consistency_group.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,3 +353,46 @@ def test_consistency_group_list_with_long(self):
353353
detailed=True, search_opts={'all_tenants': False})
354354
self.assertEqual(self.columns_long, columns)
355355
self.assertEqual(self.data_long, list(data))
356+
357+
358+
class TestConsistencyGroupShow(TestConsistencyGroup):
359+
columns = (
360+
'availability_zone',
361+
'created_at',
362+
'description',
363+
'id',
364+
'name',
365+
'status',
366+
'volume_types',
367+
)
368+
369+
def setUp(self):
370+
super(TestConsistencyGroupShow, self).setUp()
371+
372+
self.consistency_group = (
373+
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
374+
self.data = (
375+
self.consistency_group.availability_zone,
376+
self.consistency_group.created_at,
377+
self.consistency_group.description,
378+
self.consistency_group.id,
379+
self.consistency_group.name,
380+
self.consistency_group.status,
381+
self.consistency_group.volume_types,
382+
)
383+
self.consistencygroups_mock.get.return_value = self.consistency_group
384+
self.cmd = consistency_group.ShowConsistencyGroup(self.app, None)
385+
386+
def test_consistency_group_show(self):
387+
arglist = [
388+
self.consistency_group.id
389+
]
390+
verifylist = [
391+
("consistency_group", self.consistency_group.id)
392+
]
393+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
394+
columns, data = self.cmd.take_action(parsed_args)
395+
self.consistencygroups_mock.get.assert_called_once_with(
396+
self.consistency_group.id)
397+
self.assertEqual(self.columns, columns)
398+
self.assertEqual(self.data, data)

openstackclient/volume/v2/consistency_group.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
from openstackclient.i18n import _
2525

26+
2627
LOG = logging.getLogger(__name__)
2728

2829

@@ -177,3 +178,23 @@ def take_action(self, parsed_args):
177178
s, columns,
178179
formatters={'Volume Types': utils.format_list})
179180
for s in consistency_groups))
181+
182+
183+
class ShowConsistencyGroup(command.ShowOne):
184+
_description = _("Display consistency group details.")
185+
186+
def get_parser(self, prog_name):
187+
parser = super(ShowConsistencyGroup, self).get_parser(prog_name)
188+
parser.add_argument(
189+
"consistency_group",
190+
metavar="<consistency-group>",
191+
help=_("Consistency group to display (name or ID)")
192+
)
193+
return parser
194+
195+
def take_action(self, parsed_args):
196+
volume_client = self.app.client_manager.volume
197+
consistency_group = utils.find_resource(
198+
volume_client.consistencygroups,
199+
parsed_args.consistency_group)
200+
return zip(*sorted(six.iteritems(consistency_group._info)))

releasenotes/notes/bug-1613964-837196399be16b3d.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ features:
44
[Bug `1613964 <https://bugs.launchpad.net/python-openstackclient/+bug/1613964>`_]
55
- Add ``consistency group delete`` command in volume v2.
66
[Bug `1613964 <https://bugs.launchpad.net/python-openstackclient/+bug/1613964>`_]
7+
- Add ``consistency group show`` command in volume v2.
8+
[Bug `1613964 <https://bugs.launchpad.net/python-openstackclient/+bug/1613964>`_]

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,7 @@ openstack.volume.v2 =
511511
consistency_group_create = openstackclient.volume.v2.consistency_group:CreateConsistencyGroup
512512
consistency_group_delete = openstackclient.volume.v2.consistency_group:DeleteConsistencyGroup
513513
consistency_group_list = openstackclient.volume.v2.consistency_group:ListConsistencyGroup
514+
consistency_group_show = openstackclient.volume.v2.consistency_group:ShowConsistencyGroup
514515

515516
consistency_group_snapshot_create = openstackclient.volume.v2.consistency_group_snapshot:CreateConsistencyGroupSnapshot
516517
consistency_group_snapshot_delete = openstackclient.volume.v2.consistency_group_snapshot:DeleteConsistencyGroupSnapshot

0 commit comments

Comments
 (0)