diff options
| author | zhiyong.dai <zhiyong.dai@easystack.cn> | 2016-11-25 01:04:34 +0800 |
|---|---|---|
| committer | zhiyong.dai <zhiyong.dai@easystack.cn> | 2016-11-27 15:32:28 +0800 |
| commit | 26a74d4596101fcd371ebf0a401265a0e0b4e1e0 (patch) | |
| tree | 84d9abdbec306c80a90e714d263690f283abc4a1 /openstackclient | |
| parent | 083b115d09b7ccf15bb3c3ab5c799a47efc2d6ac (diff) | |
| download | python-openstackclient-26a74d4596101fcd371ebf0a401265a0e0b4e1e0.tar.gz | |
Add choices for option '--policy'
When creating server group, the '--policy' option is required, but
valid choice is 'affinity' or 'anti-affinity', adding multiple
policies will produce an error. This patch add choices and default
value for option '--policy', and remove the former help message.
Change-Id: I312680af384363b3e9a7de9aa1f0946643e193e2
Closes-Bug: #1662771
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/compute/v2/server_group.py | 9 | ||||
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/test_server_group.py | 37 |
2 files changed, 8 insertions, 38 deletions
diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py index 6bcfc6ae..c6e2161f 100644 --- a/openstackclient/compute/v2/server_group.py +++ b/openstackclient/compute/v2/server_group.py @@ -55,10 +55,11 @@ class CreateServerGroup(command.ShowOne): parser.add_argument( '--policy', metavar='<policy>', - action='append', - required=True, + choices=['affinity', 'anti-affinity'], + default='affinity', help=_("Add a policy to <name> " - "(repeat option to add multiple policies)") + "('affinity' or 'anti-affinity', " + "default to 'affinity')") ) return parser @@ -67,7 +68,7 @@ class CreateServerGroup(command.ShowOne): info = {} server_group = compute_client.server_groups.create( name=parsed_args.name, - policies=parsed_args.policy) + policies=[parsed_args.policy]) info.update(server_group._info) columns = _get_columns(info) diff --git a/openstackclient/tests/unit/compute/v2/test_server_group.py b/openstackclient/tests/unit/compute/v2/test_server_group.py index d474f41d..088497da 100644 --- a/openstackclient/tests/unit/compute/v2/test_server_group.py +++ b/openstackclient/tests/unit/compute/v2/test_server_group.py @@ -63,54 +63,23 @@ class TestServerGroupCreate(TestServerGroup): def test_server_group_create(self): arglist = [ - '--policy', 'affinity', + '--policy', 'anti-affinity', 'affinity_group', ] verifylist = [ - ('policy', ['affinity']), + ('policy', 'anti-affinity'), ('name', 'affinity_group'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.server_groups_mock.create.assert_called_once_with( name=parsed_args.name, - policies=parsed_args.policy, + policies=[parsed_args.policy], ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) - def test_server_group_create_with_multiple_policies(self): - arglist = [ - '--policy', 'affinity', - '--policy', 'soft-affinity', - 'affinity_group', - ] - verifylist = [ - ('policy', ['affinity', 'soft-affinity']), - ('name', 'affinity_group'), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = self.cmd.take_action(parsed_args) - self.server_groups_mock.create.assert_called_once_with( - name=parsed_args.name, - policies=parsed_args.policy, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.data, data) - - def test_server_group_create_no_policy(self): - arglist = [ - 'affinity_group', - ] - verifylist = None - self.assertRaises(tests_utils.ParserException, - self.check_parser, - self.cmd, - arglist, - verifylist) - class TestServerGroupDelete(TestServerGroup): |
