aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/python/xen/xend/XendDomainInfo.py28
1 files changed, 11 insertions, 17 deletions
diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py
index be6b6fe89c..2b3bf06667 100644
--- a/tools/python/xen/xend/XendDomainInfo.py
+++ b/tools/python/xen/xend/XendDomainInfo.py
@@ -153,6 +153,11 @@ def create(config):
vm = XendDomainInfo(getUuid(), parseConfig(config))
try:
vm.construct()
+ vm.initDomain()
+ vm.construct_image()
+ vm.configure()
+ vm.storeVmDetails()
+ vm.storeDomDetails()
vm.refreshShutdown()
return vm
except:
@@ -223,19 +228,14 @@ def restore(config):
except TypeError, exn:
raise VmError('Invalid ssidref in config: %s' % exn)
- domid = xc.domain_create(ssidref = ssidref)
- if domid < 0:
- raise VmError('Creating domain failed for restore')
- try:
- vm = XendDomainInfo(uuid, parseConfig(config), domid)
- except:
- xc.domain_destroy(domid)
- raise
+ vm = XendDomainInfo(uuid, parseConfig(config))
try:
- vm.storeVmDetails()
+ vm.construct()
vm.configure()
vm.create_channel()
+ vm.storeVmDetails()
vm.storeDomDetails()
+ vm.refreshShutdown()
return vm
except:
vm.destroy()
@@ -1001,12 +1001,6 @@ class XendDomainInfo:
# shutdown_start_time from killing the domain, for example.
self.removeDom()
- self.initDomain()
- self.construct_image()
- self.configure()
- self.storeVmDetails()
- self.storeDomDetails()
-
def initDomain(self):
log.debug('XendDomainInfo.initDomain: %s %s %s',
@@ -1100,14 +1094,14 @@ class XendDomainInfo:
def destroyDomain(self):
log.debug("XendDomainInfo.destroyDomain(%s)", str(self.domid))
- self.cleanupDomain()
-
try:
if self.domid is not None:
xc.domain_destroy(dom=self.domid)
except:
log.exception("XendDomainInfo.destroy: xc.domain_destroy failed.")
+ self.cleanupDomain()
+
## private: