From 773aea23b8817aaa077db90ebcecedb33383550e Mon Sep 17 00:00:00 2001 From: Andrey Kurilin Date: Tue, 28 Mar 2017 15:32:01 +0300 Subject: [PATCH] Explicitly specify arguments of server_groups creation Create API call expectes two parameters - name and policies[*]. It is not a complex structure, so there is no reason to support kwargs. It is better to specify explicitly all expected parameters. PS: removing support of kwargs is "backward compatible", since we have validation at API side and usage of additional parameters was an error previously. [*] - https://developer.openstack.org/api-ref/compute/?expanded=create-server-group-detail Change-Id: I8b40b0db450287bbc5ee8d69834aa764353dbd98 --- novaclient/v2/server_groups.py | 9 +++++++-- novaclient/v2/shell.py | 5 ++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/novaclient/v2/server_groups.py b/novaclient/v2/server_groups.py index 62758c34b..7a01ba0db 100644 --- a/novaclient/v2/server_groups.py +++ b/novaclient/v2/server_groups.py @@ -84,10 +84,15 @@ class ServerGroupsManager(base.ManagerWithFind): """ return self._delete('/os-server-groups/%s' % id) - def create(self, **kwargs): + def create(self, name, policies): """Create (allocate) a server group. + :param name: The name of the server group. + :param policies: Policy name or a list of exactly one policy name to + associate with the server group. :rtype: list of :class:`ServerGroup` """ - body = {'server_group': kwargs} + policies = policies if isinstance(policies, list) else [policies] + body = {'server_group': {'name': name, + 'policies': policies}} return self._create('/os-server-groups', body, 'server_group') diff --git a/novaclient/v2/shell.py b/novaclient/v2/shell.py index 48fc4968a..90602c204 100644 --- a/novaclient/v2/shell.py +++ b/novaclient/v2/shell.py @@ -4280,9 +4280,8 @@ def do_server_group_list(cs, args): help=_('Policies for the server groups.')) def do_server_group_create(cs, args): """Create a new server group with the specified details.""" - kwargs = {'name': args.name, - 'policies': args.policy} - server_group = cs.server_groups.create(**kwargs) + server_group = cs.server_groups.create(name=args.name, + policies=args.policy) _print_server_group_details(cs, [server_group])