[Libvirt-cim] [PATCH] [TEST] #3 Fix ElementCapabilities/03_forward_errs.py with provider's updated err message

Deepti B Kalakeri deeptik at linux.vnet.ibm.com
Mon Mar 9 07:37:34 UTC 2009



Guo Lian Yun wrote:
>
> libvirt-cim-bounces at redhat.com wrote on 2009-03-09 14:24:42:
>
> >
> >
> > yunguol at cn.ibm.com wrote:
> > > # HG changeset patch
> > > # User Guolian Yun <yunguol at cn.ibm.com>
> > > # Date 1236567513 25200
> > > # Node ID e601bc0ba234dae371ec38b8289b5827d12f2910
> > > # Parent  087aaba2658940bbc8718aa55cbcd6150f7cac23
> > > [TEST] #3 Fix ElementCapabilities/03_forward_errs.py with
> > provider's updated err message
> > >
> > >
> > > Updates from 2 to 3:
> > > Get correct CS Name instead of hard code of "Xen_ComputerSystem"
> > >
> > > Updates from 1 to 2:
> > > Use a variable to assign revision value to be calculated for 
> comparison
> > >
> > > Also fix the line to meet 80 length
> > >
> > > Tested for KVM/LXC with current sources and rpm
> > >
> > > Signed-off-by: Guolian Yun<yunguol at cn.ibm.com>
> > >
> > > diff -r 087aaba26589 -r e601bc0ba234 suites/libvirt-
> > cim/cimtest/ElementCapabilities/03_forward_errs.py
> > > --- a/suites/libvirt-
> > cim/cimtest/ElementCapabilities/03_forward_errs.py   Thu Mar 05 22:
> > 04:39 2009 -0800
> > > +++ b/suites/libvirt-
> > cim/cimtest/ElementCapabilities/03_forward_errs.py   Sun Mar 08 19:
> > 58:33 2009 -0700
> > > @@ -27,10 +27,11 @@
> > >  from XenKvmLib import enumclass
> > >  from XenKvmLib.classes import get_typed_class
> > >  from CimTest.Globals import logger, CIM_USER, CIM_PASS, CIM_NS
> > > -from XenKvmLib.const import do_main
> > > +from XenKvmLib.const import do_main, get_provider_version
> > >  from CimTest.ReturnCodes import PASS, FAIL
> > >
> > >  sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
> > > +libvirt_ec_changes = 815
> > >
> > >  exp_rc = 6 #CIM_ERR_NOT_FOUND
> > >  exp_desc = "No such instance"
> > > @@ -42,23 +43,24 @@
> > >      status = FAIL
> > >      rc = -1
> > >      names = []
> > > -
> > > +    ec = get_typed_class(options.virt, "ElementCapabilities")
> > >      try:
> > > -        names = conn.AssociatorNames(ref, AssocClass =
> > get_typed_class(options.virt, "ElementCapabilities"))
> > > +        names = conn.AssociatorNames(ref, AssocClass = ec)
> > >          rc = 0
> > >      except pywbem.CIMError, (rc, desc):
> > >          if rc == exp_rc and desc.find(exp_desc) >= 0:
> > >              logger.info("Got expected rc code and error string")
> > >              status = PASS
> > >          else:
> > > -            logger.error("Unexpected rc code %s and description %
> > s\n", rc, desc)
> > > +            logger.error("Unexpected rc code %s and description 
> %s\n", rc,
> > > +                          desc)
> > >      except Exception, details:
> > >          logger.error("Unknown exception happened")
> > >          logger.error(details)
> > >
> > >      if rc == 0:
> > > -        logger.error("ElementCapabilities associator should NOT
> > return excepted \
> > > -                      result with a wrong key name and value of %
> > s input", ref_class)
> > > +        logger.error("ElementCapabilities associator should NOT" + \
> > > +                     " return records with a wrong key name and 
> value")
> > >  
> > Remove the + sign here, using slash is enough to continue the string.
> > >          status = FAIL
> > >      
> > >      return status
> > > @@ -73,7 +75,8 @@
> > >      cs = get_typed_class(options.virt, "ComputerSystem")
> > >
> > >      instanceref = CIMInstanceName(hs,
> > > -                                  keybindings = {"Name" :
> > "wrong", "CreationClassName" : "wrong"})
> > > +                                  keybindings = {"Name" : "wrong",
> > > +                                  "CreationClassName" : "wrong"})
> > >      rc = try_assoc(instanceref, hs, exp_rc, exp_desc, options)
> > >      
> > >      if rc != PASS:
> > > @@ -81,8 +84,16 @@
> > >          return status
> > >
> > >      instance_cs = CIMInstanceName(cs,
> > > -                                  keybindings = {"Name" :
> > "wrong", "CreationClassName" : "Xen_ComputerSystem"})
> > > -    rc = try_assoc(instance_cs, cs, exp_rc, exp_desc, options)
> > > +                                  keybindings = {"Name" : "wrong",
> > > +                                  "CreationClassName" : cs})
> > > +
> > > +    curr_cim_rev, changeset = get_provider_version(options.virt,
> > options.ip)
> > > +    if curr_cim_rev >= libvirt_ec_changes:
> > > +        cs_exp_desc = "Referenced domain `wrong' does not exist:" + \
> > > +                      " Domain not found"
> > >  
> > Remove the "+" sign here. Only slash is enough.
> > Also, instead of calling try_assoc twice you can do the following:
> >
> > if curr_cim_rev >= libvirt_ec_changes:
> >         exp_desc = "Referenced domain `wrong' does not exist:"  \
> >                      " Domain not found"
> >
> > I tried to do this in the first patch, but it reports error as follows:
>
>   ERROR   - UnboundLocalError : local variable 'exp_desc' referenced 
> before assignment
>   Traceback (most recent call last):
>   File "./lib/XenKvmLib/const.py", line 141, in do_try
>   File "03_forward_errs.py", line 80, in main
>     rc = try_assoc(instanceref, hs, exp_rc, exp_desc, options)
> UnboundLocalError: local variable 'exp_desc' referenced before assignment
> ERROR   - None
The error is coming from line no 80 and not from the control stmt added.
Let me check this.
>  
>   So I define a new variable of cs_exp_desc to cover this and call 
> try_assco twice.
>
> > try_assoc(instance_cs, cs, exp_rc, exp_desc, options)
> > Since exp_desc will be changed only when curr_cim_rev >= 
> libvirt_ec_changes.
> >
> > > +        try_assoc(instance_cs, cs, exp_rc, cs_exp_desc, options)
> > > +    else:
> > > +        rc = try_assoc(instance_cs, cs, exp_rc, exp_desc, options)
> > >      if rc != PASS:
> > >          status = FAIL        
> > >          return status
> > >
> > > _______________________________________________
> > > Libvirt-cim mailing list
> > > Libvirt-cim at redhat.com
> > > https://www.redhat.com/mailman/listinfo/libvirt-cim
> > >  
> >
> > --
> > Thanks and Regards,
> > Deepti B. Kalakeri
> > IBM Linux Technology Center
> > deeptik at linux.vnet.ibm.com
> >
> > _______________________________________________
> > Libvirt-cim mailing list
> > Libvirt-cim at redhat.com
> > https://www.redhat.com/mailman/listinfo/libvirt-cim
> ------------------------------------------------------------------------
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim

-- 
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list