Merge "'policy' should be required in server_group_create"

This commit is contained in:
Jenkins 2014-06-25 05:06:47 +00:00 committed by Gerrit Code Review
commit 614f9ebf2b
2 changed files with 31 additions and 4 deletions

View File

@ -2075,6 +2075,13 @@ class ShellTest(utils.TestCase):
self.run_command('keypair-delete test')
self.assert_called('DELETE', '/os-keypairs/test')
def test_create_server_group(self):
self.run_command('server-group-create wjsg affinity')
self.assert_called('POST', '/os-server-groups',
{'server_group':
{'name': 'wjsg',
'policies': ['affinity']}})
def test_delete_multi_server_groups(self):
self.run_command('server-group-delete 12345 56789')
self.assert_called('DELETE', '/os-server-groups/56789')

View File

@ -3568,13 +3568,33 @@ def do_server_group_list(cs, args):
@utils.arg('name', metavar='<name>', help='Server group name.')
@utils.arg('--policy', metavar='<policy>', action='append',
dest='policies', default=[], type=str,
help='Policies for the server groups')
# NOTE(wingwj): The '--policy' way is still reserved here for preserving
# the backwards compatibility of CLI, even if a user won't get this usage
# in '--help' description. It will be deprecated after an suitable deprecation
# period(probably 2 coordinated releases or so).
#
# Moreover, we imagine that a given user will use only positional parameters or
# only the "--policy" option. So we don't need to properly handle
# the possibility that they might mix them here. That usage is unsupported.
# The related discussion can be found in
# https://review.openstack.org/#/c/96382/2/.
@utils.arg('policy',
metavar='<policy>',
default=argparse.SUPPRESS,
nargs='*',
help='Policies for the server groups '
'("affinity" or "anti-affinity")')
@utils.arg('--policy',
default=[],
action='append',
help=argparse.SUPPRESS)
def do_server_group_create(cs, args):
"""Create a new server group with the specified details."""
if not args.policy:
raise exceptions.CommandError(_("at least one policy must be "
"specified"))
kwargs = {'name': args.name,
'policies': args.policies}
'policies': args.policy}
server_group = cs.server_groups.create(**kwargs)
_print_server_group_details([server_group])