[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Regig the construction of new domains so that restore and create can share the



# HG changeset patch
# User emellor@ewan
# Node ID b5c5360a61d01912ccd71c0d07b03d424024d14f
# Parent  2a3e10a132a2a57795ff9a46e465f99793c31da5
Regig the construction of new domains so that restore and create can share the
construct method.  This ensures that the domain will have any stale paths in
the store removed on restore.

Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>

diff -r 2a3e10a132a2 -r b5c5360a61d0 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py   Fri Oct  7 10:16:28 2005
+++ b/tools/python/xen/xend/XendDomainInfo.py   Fri Oct  7 12:34:10 2005
@@ -153,6 +153,11 @@
     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 @@
     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')
+    vm = XendDomainInfo(uuid, parseConfig(config))
     try:
-        vm = XendDomainInfo(uuid, parseConfig(config), domid)
-    except:
-        xc.domain_destroy(domid)
-        raise
-    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 @@
         # 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,13 +1094,13 @@
     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:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.