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 | |
| 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
| -rw-r--r-- | doc/source/command-objects/server-group.rst | 4 | ||||
| -rw-r--r-- | openstackclient/compute/v2/server_group.py | 9 | ||||
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/test_server_group.py | 37 |
3 files changed, 10 insertions, 40 deletions
diff --git a/doc/source/command-objects/server-group.rst b/doc/source/command-objects/server-group.rst index 77c6431c..97696350 100644 --- a/doc/source/command-objects/server-group.rst +++ b/doc/source/command-objects/server-group.rst @@ -15,13 +15,13 @@ Create a new server group .. code-block:: bash openstack server group create - --policy <policy> [--policy <policy>] ... + --policy <policy> <name> .. option:: --policy <policy> Add a policy to :ref:`\<name\> <server_group_create-name>` - (repeat option to add multiple policies) + ('affinity' or 'anti-affinity', default to 'affinity') .. _server_group_create-name: .. describe:: <name> 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): |
