summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/tests/unit/volume/v2/test_consistency_group.py64
-rw-r--r--openstackclient/volume/v2/consistency_group.py39
2 files changed, 102 insertions, 1 deletions
diff --git a/openstackclient/tests/unit/volume/v2/test_consistency_group.py b/openstackclient/tests/unit/volume/v2/test_consistency_group.py
index 5beb6ef2..8a997e18 100644
--- a/openstackclient/tests/unit/volume/v2/test_consistency_group.py
+++ b/openstackclient/tests/unit/volume/v2/test_consistency_group.py
@@ -355,6 +355,70 @@ class TestConsistencyGroupList(TestConsistencyGroup):
self.assertEqual(self.data_long, list(data))
+class TestConsistencyGroupSet(TestConsistencyGroup):
+
+ consistency_group = (
+ volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
+
+ def setUp(self):
+ super(TestConsistencyGroupSet, self).setUp()
+
+ self.consistencygroups_mock.get.return_value = (
+ self.consistency_group)
+ # Get the command object to test
+ self.cmd = consistency_group.SetConsistencyGroup(self.app, None)
+
+ def test_consistency_group_set_name(self):
+ new_name = 'new_name'
+ arglist = [
+ '--name', new_name,
+ self.consistency_group.id,
+ ]
+ verifylist = [
+ ('name', new_name),
+ ('description', None),
+ ('consistency_group', self.consistency_group.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'name': new_name,
+ }
+ self.consistencygroups_mock.update.assert_called_once_with(
+ self.consistency_group.id,
+ **kwargs
+ )
+ self.assertIsNone(result)
+
+ def test_consistency_group_set_description(self):
+ new_description = 'new_description'
+ arglist = [
+ '--description', new_description,
+ self.consistency_group.id,
+ ]
+ verifylist = [
+ ('name', None),
+ ('description', new_description),
+ ('consistency_group', self.consistency_group.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'description': new_description,
+ }
+ self.consistencygroups_mock.update.assert_called_once_with(
+ self.consistency_group.id,
+ **kwargs
+ )
+ self.assertIsNone(result)
+
+
class TestConsistencyGroupShow(TestConsistencyGroup):
columns = (
'availability_zone',
diff --git a/openstackclient/volume/v2/consistency_group.py b/openstackclient/volume/v2/consistency_group.py
index 661bcbe5..f77da59b 100644
--- a/openstackclient/volume/v2/consistency_group.py
+++ b/openstackclient/volume/v2/consistency_group.py
@@ -151,7 +151,7 @@ class ListConsistencyGroup(command.Lister):
parser.add_argument(
'--all-projects',
action="store_true",
- help=_('Show detail for all projects. Admin only. '
+ help=_('Show details for all projects. Admin only. '
'(defaults to False)')
)
parser.add_argument(
@@ -180,6 +180,43 @@ class ListConsistencyGroup(command.Lister):
for s in consistency_groups))
+class SetConsistencyGroup(command.Command):
+ _description = _("Set consistency group properties")
+
+ def get_parser(self, prog_name):
+ parser = super(SetConsistencyGroup, self).get_parser(prog_name)
+ parser.add_argument(
+ 'consistency_group',
+ metavar='<consistency-group>',
+ help=_('Consistency group to modify (name or ID)')
+ )
+ parser.add_argument(
+ '--name',
+ metavar='<name>',
+ help=_('New consistency group name'),
+ )
+ parser.add_argument(
+ '--description',
+ metavar='<description>',
+ help=_('New consistency group description'),
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ volume_client = self.app.client_manager.volume
+ kwargs = {}
+ if parsed_args.name:
+ kwargs['name'] = parsed_args.name
+ if parsed_args.description:
+ kwargs['description'] = parsed_args.description
+ if kwargs:
+ consistency_group_id = utils.find_resource(
+ volume_client.consistencygroups,
+ parsed_args.consistency_group).id
+ volume_client.consistencygroups.update(
+ consistency_group_id, **kwargs)
+
+
class ShowConsistencyGroup(command.ShowOne):
_description = _("Display consistency group details.")