From a5267772186add4e37c454c5a97d0ea3a1c88a81 Mon Sep 17 00:00:00 2001 From: David Moreau Simard Date: Wed, 9 Dec 2015 16:18:54 -0500 Subject: Make --image parameter optional in "server rebuild" The command will now default to the image currently in-use by the server, effectively making the --image parameter optional. This commit also adds basic tests for ServerRebuild since there wasn't any. Will add more full tests for it. Change-Id: I733fd3ad5a825f06563c72aa430122e1a0e3b3b0 Closes-bug: #1524406 Co-Authored-By: David Moreau Simard Co-Authored-By: Tang Chen --- openstackclient/compute/v2/server.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'openstackclient/compute/v2/server.py') diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 9e2721fb..6dce8ed5 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -1096,8 +1096,8 @@ class RebuildServer(show.ShowOne): parser.add_argument( '--image', metavar='', - required=True, - help=_('Recreate server from this image'), + help=_('Recreate server from the specified image (name or ID).' + ' Defaults to the currently used one.'), ) parser.add_argument( '--password', @@ -1115,12 +1115,13 @@ class RebuildServer(show.ShowOne): def take_action(self, parsed_args): compute_client = self.app.client_manager.compute - # Lookup parsed_args.image - image = utils.find_resource(compute_client.images, parsed_args.image) - server = utils.find_resource( compute_client.servers, parsed_args.server) + # If parsed_args.image is not set, default to the currently used one. + image_id = parsed_args.image or server._info.get('image', {}).get('id') + image = utils.find_resource(compute_client.images, image_id) + server = server.rebuild(image, parsed_args.password) if parsed_args.wait: if utils.wait_for_status( -- cgit v1.2.1