diff options
| author | René Ribaud <rribaud@redhat.com> | 2022-03-03 17:50:08 +0100 |
|---|---|---|
| committer | René Ribaud <rribaud@redhat.com> | 2022-08-22 15:03:24 +0200 |
| commit | 6e0699c1cf3e603850580a6bb5ca2e377fe1bc84 (patch) | |
| tree | 05459c4776b841abc7f1181737d06578775fa5cb /openstackclient/compute/v2 | |
| parent | 27b2496e03ceb95b56b3b1b68a57058fe90251b5 (diff) | |
| download | python-openstackclient-6e0699c1cf3e603850580a6bb5ca2e377fe1bc84.tar.gz | |
Microversion 2.91: Support specifying destination host to unshelve
This patch adds a new parameter ``--host`` to
``openstack server unshelve`` command. This can help administrators to specify
an ``host`` to unshelve a shelve offloaded server.
And add new parameter ``--no-availability-zone`` to unpin a server availability
These parameters are available in the 2.91 microversion.
Depends-On: https://review.opendev.org/c/openstack/python-novaclient/+/831651
Implements: blueprint unshelve-to-host
Change-Id: I7986adc7563f63bcd4b3caf5eb7bc4329b4e1eca
Diffstat (limited to 'openstackclient/compute/v2')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index b02ee6ff..0bcad8fc 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -4564,13 +4564,30 @@ class UnshelveServer(command.Command): nargs='+', help=_('Server(s) to unshelve (name or ID)'), ) - parser.add_argument( + group = parser.add_mutually_exclusive_group() + group.add_argument( '--availability-zone', default=None, help=_('Name of the availability zone in which to unshelve a ' 'SHELVED_OFFLOADED server (supported by ' '--os-compute-api-version 2.77 or above)'), ) + group.add_argument( + '--no-availability-zone', + action='store_true', + default=False, + help=_('Unpin the availability zone of a SHELVED_OFFLOADED ' + 'server. Server will be unshelved on a host without ' + 'availability zone constraint (supported by ' + '--os-compute-api-version 2.91 or above)'), + ) + parser.add_argument( + '--host', + default=None, + help=_('Name of the destination host in which to unshelve a ' + 'SHELVED_OFFLOADED server (supported by ' + '--os-compute-api-version 2.91 or above)'), + ) parser.add_argument( '--wait', action='store_true', @@ -4599,6 +4616,26 @@ class UnshelveServer(command.Command): kwargs['availability_zone'] = parsed_args.availability_zone + if parsed_args.host: + if compute_client.api_version < api_versions.APIVersion('2.91'): + msg = _( + '--os-compute-api-version 2.91 or greater is required ' + 'to support the --host option' + ) + raise exceptions.CommandError(msg) + + kwargs['host'] = parsed_args.host + + if parsed_args.no_availability_zone: + if compute_client.api_version < api_versions.APIVersion('2.91'): + msg = _( + '--os-compute-api-version 2.91 or greater is required ' + 'to support the --no-availability-zone option' + ) + raise exceptions.CommandError(msg) + + kwargs['availability_zone'] = None + for server in parsed_args.server: server_obj = utils.find_resource( compute_client.servers, |
