summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorFan Zhang <zh.f@outlook.com>2018-06-19 16:25:40 +0800
committerFan Zhang <zh.f@outlook.com>2018-10-09 14:34:44 +0800
commitf82c5b85ce9d6fee62550044fbabe54155e4b367 (patch)
tree3f6a6e395ad0f1f9570453e16065867c7cea8208 /openstackclient/compute
parente3dc30fe8c1ae6a13926bf1eae52097e8bb37aab (diff)
downloadpython-openstackclient-f82c5b85ce9d6fee62550044fbabe54155e4b367.tar.gz
Add --key-name and --key-unset option for server rebuild API.
Change-Id: I6d4793a8e961080ea1d6d414cef8d6bbed0c53e7 Story: 2002609 Task: 22228 Signed-off-by: Fan Zhang <zh.f@outlook.com>
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py26
1 files changed, 26 insertions, 0 deletions
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='<key-name>',
+ 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(