diff options
Diffstat (limited to 'novaclient/v2/shell.py')
-rw-r--r-- | novaclient/v2/shell.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/novaclient/v2/shell.py b/novaclient/v2/shell.py index 7b9c0206..3eb68bc2 100644 --- a/novaclient/v2/shell.py +++ b/novaclient/v2/shell.py @@ -2285,9 +2285,25 @@ def do_shelve_offload(cs, args): @utils.arg('server', metavar='<server>', help=_('Name or ID of server.')) +@utils.arg( + '--availability-zone', + metavar='<availability-zone>', + default=None, + dest='availability_zone', + help=_('Name of the availability zone in which to unshelve a ' + 'SHELVED_OFFLOADED server.'), + start_version='2.77') def do_unshelve(cs, args): """Unshelve a server.""" - _find_server(cs, args.server).unshelve() + update_kwargs = {} + # Microversion >= 2.77 will support user to specify an + # availability_zone to unshelve a shelve offloaded server. + if cs.api_version >= api_versions.APIVersion('2.77'): + if 'availability_zone' in args and args.availability_zone is not None: + update_kwargs['availability_zone'] = args.availability_zone + + server = _find_server(cs, args.server) + server.unshelve(**update_kwargs) @utils.arg('server', metavar='<server>', help=_('Name or ID of server.')) |