summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorzhiyong.dai <zhiyong.dai@easystack.cn>2016-11-25 01:04:34 +0800
committerzhiyong.dai <zhiyong.dai@easystack.cn>2016-11-27 15:32:28 +0800
commit26a74d4596101fcd371ebf0a401265a0e0b4e1e0 (patch)
tree84d9abdbec306c80a90e714d263690f283abc4a1 /openstackclient
parent083b115d09b7ccf15bb3c3ab5c799a47efc2d6ac (diff)
downloadpython-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.py9
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server_group.py37
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):