From f82c5b85ce9d6fee62550044fbabe54155e4b367 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 19 Jun 2018 16:25:40 +0800 Subject: Add --key-name and --key-unset option for server rebuild API. Change-Id: I6d4793a8e961080ea1d6d414cef8d6bbed0c53e7 Story: 2002609 Task: 22228 Signed-off-by: Fan Zhang --- openstackclient/compute/v2/server.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'openstackclient/compute') diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 67b4140a..5723dae3 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -1529,6 +1529,22 @@ class RebuildServer(command.ShowOne): action='store_true', help=_('Wait for rebuild to complete'), ) + key_group = parser.add_mutually_exclusive_group() + key_group.add_argument( + '--key-name', + metavar='', + help=_("Set the key name of key pair on the rebuilt instance." + " Cannot be specified with the '--key-unset' option." + " (Supported by API versions '2.54' - '2.latest')"), + ) + key_group.add_argument( + '--key-unset', + action='store_true', + default=False, + help=_("Unset the key name of key pair on the rebuilt instance." + " Cannot be specified with the '--key-name' option." + " (Supported by API versions '2.54' - '2.latest')"), + ) return parser def take_action(self, parsed_args): @@ -1553,6 +1569,16 @@ class RebuildServer(command.ShowOne): if parsed_args.property: kwargs['meta'] = parsed_args.property + if parsed_args.key_name or parsed_args.key_unset: + if compute_client.api_version < api_versions.APIVersion('2.54'): + msg = _('--os-compute-api-version 2.54 or later is required') + raise exceptions.CommandError(msg) + + if parsed_args.key_unset: + kwargs['key_name'] = None + if parsed_args.key_name: + kwargs['key_name'] = parsed_args.key_name + server = server.rebuild(image, parsed_args.password, **kwargs) if parsed_args.wait: if utils.wait_for_status( -- cgit v1.2.1