diff options
| author | Zuul <zuul@review.opendev.org> | 2020-10-21 20:05:12 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-10-21 20:05:12 +0000 |
| commit | deae091f78558a41616fff71d7b55becef955ebf (patch) | |
| tree | ec6034f5a2adae1bcad0adc992907272c8e3bfac /openstackclient/compute | |
| parent | 02287900240d406d6441a98526c70d113986360b (diff) | |
| parent | ab0b1fe885ee0a210a58008b631521025be7f3eb (diff) | |
| download | python-openstackclient-deae091f78558a41616fff71d7b55becef955ebf.tar.gz | |
Merge "Validate 'server group create --policy' option"
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/server_group.py | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py index 1af6e28d..a3363244 100644 --- a/openstackclient/compute/v2/server_group.py +++ b/openstackclient/compute/v2/server_group.py @@ -56,12 +56,18 @@ class CreateServerGroup(command.ShowOne): parser.add_argument( '--policy', metavar='<policy>', + choices=[ + 'affinity', + 'anti-affinity', + 'soft-affinity', + 'soft-anti-affinity', + ], default='affinity', - help=_("Add a policy to <name> " - "('affinity' or 'anti-affinity', " - "defaults to 'affinity'). Specify --os-compute-api-version " - "2.15 or higher for the 'soft-affinity' or " - "'soft-anti-affinity' policy.") + help=_( + "Add a policy to <name> " + "Specify --os-compute-api-version 2.15 or higher for the " + "'soft-affinity' or 'soft-anti-affinity' policy." + ) ) return parser @@ -69,9 +75,18 @@ class CreateServerGroup(command.ShowOne): compute_client = self.app.client_manager.compute info = {} + if parsed_args.policy in ('soft-affinity', 'soft-anti-affinity'): + if compute_client.api_version < api_versions.APIVersion('2.15'): + msg = _( + '--os-compute-api-version 2.15 or greater is required to ' + 'support the %s policy' + ) + raise exceptions.CommandError(msg % parsed_args.policy) + policy_arg = {'policies': [parsed_args.policy]} if compute_client.api_version >= api_versions.APIVersion("2.64"): policy_arg = {'policy': parsed_args.policy} + server_group = compute_client.server_groups.create( name=parsed_args.name, **policy_arg) |
