Commit 8e738dd5 by Guba Sándor

vmdriver: made shutdown blocking until finished

parent aae6fcec
...@@ -7,7 +7,7 @@ import socket ...@@ -7,7 +7,7 @@ import socket
import json import json
from decorator import decorator from decorator import decorator
from psutil import NUM_CPUS, virtual_memory, virtmem_usage, cpu_percent from psutil import NUM_CPUS, virtual_memory, cpu_percent
from vm import VMInstance from vm import VMInstance
...@@ -190,12 +190,28 @@ def create(vm_desc): ...@@ -190,12 +190,28 @@ def create(vm_desc):
@celery.task @celery.task
@req_connection @req_connection
@wrap_libvirtError
def shutdown(name): def shutdown(name):
""" Shutdown virtual machine (need ACPI support). """ """ Shutdown virtual machine (need ACPI support).
Return When domain is missing.
"""
from time import sleep
try:
domain = lookupByName(name) domain = lookupByName(name)
domain.shutdown() domain.shutdown()
while True:
try:
Connection.get().lookupByName(name)
except Exception as e:
if e.get_error_code() == libvirt.VIR_ERR_NO_DOMAIN:
return
else:
raise
else:
sleep(5)
except Exception as e:
new_e = Exception(e.get_error_message())
new_e.libvirtError = True
raise new_e
@celery.task @celery.task
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment