diff options
Diffstat (limited to 'openstackclient/compute/v2/server.py')
-rw-r--r-- | openstackclient/compute/v2/server.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index cde4ab05..844ac737 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -3536,6 +3536,15 @@ class RebuildServer(command.ShowOne): 'future release.' ) + status = getattr(server, 'status', '').lower() + if status == 'shutoff': + success_status = ['shutoff'] + elif status in ('error', 'active'): + success_status = ['active'] + else: + msg = _("The server status is not ACTIVE, SHUTOFF or ERROR.") + raise exceptions.CommandError(msg) + try: server = server.rebuild(image, parsed_args.password, **kwargs) finally: @@ -3547,6 +3556,7 @@ class RebuildServer(command.ShowOne): compute_client.servers.get, server.id, callback=_show_progress, + success_status=success_status, ): self.app.stdout.write(_('Complete\n')) else: @@ -4721,10 +4731,10 @@ class StartServer(command.Command): for server in parsed_args.server: try: server_id = compute_client.find_server( - name=server, + server, + ignore_missing=False, details=False, all_projects=parsed_args.all_projects, - ignore_missing=False, ).id except sdk_exceptions.HttpException as exc: if exc.status_code == 403: @@ -4761,10 +4771,10 @@ class StopServer(command.Command): for server in parsed_args.server: try: server_id = compute_client.find_server( - name=server, + server, + ignore_missing=False, details=False, all_projects=parsed_args.all_projects, - ignore_missing=False, ).id except sdk_exceptions.HttpException as exc: if exc.status_code == 403: |