summaryrefslogtreecommitdiff
path: root/openstackclient/compute/v2/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/compute/v2/server.py')
-rw-r--r--openstackclient/compute/v2/server.py18
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: