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

Re: [Xen-devel] [PATCH] xen: handle TapdiskException when add device failed



On Thu, Mar 20, 2014 at 06:36:54PM +0800, æä wrote:
> >From 79220a11ce64324228ba0390790773b41bf5f156 Mon Sep 17 00:00:00 2001
> From: Yi Li <peteryili@xxxxxxxxxxx>
> Date: Thu, 20 Mar 2014 18:25:03 +0800
> Subject: [PATCH] xen: handle TapdiskException when add device failed
> 
> handle the TapdiskException when add device
> and check the args when using xm block-attach
> 
> Signed-off-by: Yi Li <peteryili@xxxxxxxxxxx>
> ---
>  tools/python/xen/xend/XendDomainInfo.py |    4 ++--
>  tools/python/xen/xm/main.py             |   12 ++++++++++++
>  2 files changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/python/xen/xend/XendDomainInfo.py
> b/tools/python/xen/xend/XendDomainInfo.py
> index 8d4ff5c..2270ab1 100644
> --- a/tools/python/xen/xend/XendDomainInfo.py
> +++ b/tools/python/xen/xend/XendDomainInfo.py
> @@ -65,7 +65,7 @@ from xen.xend.XendConstants import *
>  from xen.xend.XendAPIConstants import *
>  from xen.xend.XendCPUPool import XendCPUPool
>  from xen.xend.server.DevConstants import xenbusState
> -from xen.xend.server.BlktapController import TapdiskController
> +from xen.xend.server.BlktapController import TapdiskController,
> TapdiskException
> 

This line is wrapped by your email client.

>  from xen.xend.XendVMMetrics import XendVMMetrics
> 
> @@ -861,7 +861,7 @@ class XendDomainInfo:
>                      # blktap1
>                      dev_type = self.getBlockDeviceClass(devid)
>                  self._waitForDevice(dev_type, devid)
> -            except VmError, ex:
> +            except (VmError, TapdiskException), ex:
>                  del self.info['devices'][dev_uuid]
>                  if dev_type == 'pci':
>                      for dev in dev_config_dict['devs']:
> diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py
> index 5ed781c..d28fb68 100644
> --- a/tools/python/xen/xm/main.py
> +++ b/tools/python/xen/xm/main.py
> @@ -2650,6 +2650,18 @@ def parse_block_configuration(args):
>  def xm_block_attach(args):
>      arg_check(args, 'block-attach', 4, 5)
> 
> +    uname=args[1]
> +    uname_list=uname.split(":")
> +    back_dev=uname_list[len(uname_list)-1]
> +    front_dev=args[2] if ("/dev" in args[2]) else ("/dev/" + args[2])

Coding style: need space between "=".

And hardcoding a path in code is not very good practice. Further more
what's the rationale to restrict everything in "/dev"? Isn't the most
rationale thing to do is for user to use the exact path he / she
provides?

> +    if not os.path.exists(back_dev):
> +        print "Error: %s not exist " % back_dev
> +        sys.exit(1)
> +
> +    if os.path.exists(front_dev):
> +        print "Error: %s already exists " % front_dev
> +        sys.exit(1)
> +
>      if serverType == SERVER_XEN_API:
>          dom   = args[0]
>          uname = args[1]
> -- 
> 1.7.1


> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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