mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
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@jp.fujitsu.com>
This commit is contained in:
1 parent
2e8459a4fc
commit
309af15419
1 file changed
+10
-22
@@ -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,15 +2423,18 @@ 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.")
|
||||
except:
|
||||
log.exception("XendDomainInfo.destroy: domain destruction failed.")
|
||||
|
||||
from xen.xend import XendDomain
|
||||
XendDomain.instance().remove_domain(self)
|
||||
XendDomain.instance().remove_domain(self)
|
||||
self.cleanupDomain()
|
||||
|
||||
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):
|
||||
log.debug("XendDomainInfo.resetDomain(%s)", str(self.domid))
|
||||
|
||||