From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Smith Subject: [PATCH] Fix block-detach of non-existent device Date: Tue, 04 Oct 2005 15:07:54 -0700 Message-ID: <87k6gtx7et.fsf@us.ibm.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen Developers List-Id: xen-devel@lists.xenproject.org --=-=-= The attached patch prevents Xend from blowing up when a user tries to detach a non-existent block device. I also added a check in xm to make sure that a numeric id is supplied, instead of a device name. This will cause xm-test 04_block-destroy_nonattached_neg to pass. Signed-off-by: Dan Smith --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=block_detach.patch diff -r ec84b119e4ed tools/python/xen/xend/server/DevController.py --- a/tools/python/xen/xend/server/DevController.py Tue Oct 4 14:02:51 2005 +++ b/tools/python/xen/xend/server/DevController.py Tue Oct 4 13:12:38 2005 @@ -78,8 +78,12 @@ backpath = xstransact.Read(frontpath, "backend") xstransact.Remove(frontpath) - xstransact.Remove(backpath) - + + if backpath: + xstransact.Remove(backpath) + else: + raise VmError("Device not connected") + def configurations(self): return map(lambda x: self.configuration(int(x)), diff -r ec84b119e4ed tools/python/xen/xm/main.py --- a/tools/python/xen/xm/main.py Tue Oct 4 14:02:51 2005 +++ b/tools/python/xen/xm/main.py Tue Oct 4 13:12:38 2005 @@ -165,6 +165,9 @@ error = str(ex) if error == "Not found" and dom != None: err("Domain '%s' not found when running 'xm %s'" % (dom, cmd)) + sys.exit(1) + elif error == "Exception: Device not connected": + err("Device not connected") sys.exit(1) else: raise ex @@ -532,7 +535,12 @@ arg_check(args,2,"block-detach") dom = args[0] - dev = args[1] + + try: + dev = int(args[1]) + except ValueError, e: + err("Invalid device id: %s" % args[1]) + sys.exit(1) from xen.xend.XendClient import server server.xend_domain_device_destroy(dom, 'vbd', dev) --=-=-= -- Dan Smith IBM Linux Technology Center Open Hypervisor Team email: danms@us.ibm.com --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --=-=-=--