diff -r ca78d9668fdb tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Wed Sep 28 14:06:48 2005 +++ b/tools/python/xen/xend/XendDomainInfo.py Wed Sep 28 08:22:10 2005 @@ -693,7 +693,7 @@ if not info: info = dom_get(self.domid) if not info: - return + return False self.info.update(info) self.validateInfo() @@ -701,6 +701,8 @@ log.debug("XendDomainInfo.update done on domain %d: %s", self.domid, self.info) + + return True ## private: diff -r ca78d9668fdb tools/python/xen/xend/server/SrvDomain.py --- a/tools/python/xen/xend/server/SrvDomain.py Wed Sep 28 14:06:48 2005 +++ b/tools/python/xen/xend/server/SrvDomain.py Wed Sep 28 08:22:10 2005 @@ -21,6 +21,8 @@ from xen.xend import XendDomain from xen.xend import PrettyPrint from xen.xend.Args import FormFn +from xen.xend.XendError import XendError +from xen.xend.XendLogging import log from xen.web.SrvDir import SrvDir @@ -221,7 +223,9 @@ # # if op and op[0] in ['vifs', 'vif', 'vbds', 'vbd', 'mem_target_set']: # return self.perform(req) - self.dom.update() + if not self.dom.update(): + raise XendError("Domain %s no longer exists" % self.dom.getName()) + if self.use_sxp(req): req.setHeader("Content-Type", sxp.mime_type) sxp.show(self.dom.sxpr(), out=req) diff -r ca78d9668fdb tools/python/xen/xm/main.py --- a/tools/python/xen/xm/main.py Wed Sep 28 14:06:48 2005 +++ b/tools/python/xen/xm/main.py Wed Sep 28 08:22:10 2005 @@ -32,6 +32,7 @@ warnings.filterwarnings('ignore', category=FutureWarning) from xen.xend import PrettyPrint from xen.xend import sxp +from xen.xend.XendClient import XendError from xen.xm.opts import * shorthelp = """Usage: xm [args] Control, list, and manipulate Xen guest instances @@ -385,14 +386,24 @@ name = args[0] from xen.xend.XendClient import server - dom = server.xend_domain(name) + try: + dom = server.xend_domain(name) + except XendError, e: + err("Unable to get info for domain %s" % name) + sys.exit(1) + print sxp.child_value(dom, 'domid') def xm_domname(args): name = args[0] from xen.xend.XendClient import server - dom = server.xend_domain(name) + try: + dom = server.xend_domain(name) + except XendError, e: + err("Unable to get info for domain %s" % name) + sys.exit(1) + print sxp.child_value(dom, 'name') def xm_sched_bvt(args): @@ -687,7 +698,6 @@ args = argv[2:] if cmd: try: - from xen.xend.XendClient import XendError rc = cmd(args) if rc: usage()