[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xend: Cleanup destroy and destroyDomain methods
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1219913053 -3600 # Node ID c8377b335fbee14e624ce47ba107e4b109436901 # Parent ab50f558a6f344d0aa0277823fce39b6b20b5784 xend: Cleanup destroy and destroyDomain methods When domains are destroyed, _prepare_phantom_paths() method and _cleanup_phantom_devs() method are called twice as follows. destroy()@XendDomainInfo.py _prepare_phantom_paths() --------------- 1 _cleanupVm() destroyDomain() _prepare_phantom_paths() ----------- 2 xc.domain_destroy_hook() xc.domain_pause() do_FLR() xc.domain_destroy() XendDomain.remove_domain() cleanupDomain() _cleanup_phantom_devs() ------------ 1 _cleanup_phantom_devs() ---------------- 2 XendDomain.domain_delete_by_dominfo() This is a cleanup patch. It combines destroyDomain() method into destroy() method, then _prepare_phantom_paths() method and _cleanup_phantom_devs() method are called only once. Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx> --- tools/python/xen/xend/XendDomainInfo.py | 36 ++++++++++---------------------- 1 files changed, 12 insertions(+), 24 deletions(-) diff -r ab50f558a6f3 -r c8377b335fbe tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Thu Aug 28 09:40:10 2008 +0100 +++ b/tools/python/xen/xend/XendDomainInfo.py Thu Aug 28 09:44:13 2008 +0100 @@ -2408,29 +2408,14 @@ class XendDomainInfo: if self.domid is None: return + from xen.xend import XendDomain log.debug("XendDomainInfo.destroy: domid=%s", str(self.domid)) paths = self._prepare_phantom_paths() self._cleanupVm() if self.dompath is not None: - self.destroyDomain() - - self._cleanup_phantom_devs(paths) - - if "transient" in self.info["other_config"] \ - and bool(self.info["other_config"]["transient"]): - from xen.xend import XendDomain - XendDomain.instance().domain_delete_by_dominfo(self) - - - def destroyDomain(self): - log.debug("XendDomainInfo.destroyDomain(%s)", str(self.domid)) - - paths = self._prepare_phantom_paths() - - try: - if self.domid is not None: + try: xc.domain_destroy_hook(self.domid) xc.domain_pause(self.domid) do_FLR(self.domid) @@ -2438,14 +2423,17 @@ class XendDomainInfo: for state in DOM_STATES_OLD: self.info[state] = 0 self._stateSet(DOM_STATE_HALTED) - except: - log.exception("XendDomainInfo.destroy: xc.domain_destroy failed.") - - from xen.xend import XendDomain - XendDomain.instance().remove_domain(self) - - self.cleanupDomain() + except: + log.exception("XendDomainInfo.destroy: domain destruction failed.") + + XendDomain.instance().remove_domain(self) + self.cleanupDomain() + self._cleanup_phantom_devs(paths) + + if "transient" in self.info["other_config"] \ + and bool(self.info["other_config"]["transient"]): + XendDomain.instance().domain_delete_by_dominfo(self) def resetDomain(self): _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |