Guo Lian Yun wrote:
libvirt-cim-bounces(a)redhat.com wrote on 2009-03-09 14:24:42:
>
>
> yunguol(a)cn.ibm.com wrote:
> > # HG changeset patch
> > # User Guolian Yun <yunguol(a)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(a)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(a)redhat.com
> >
https://www.redhat.com/mailman/listinfo/libvirt-cim
> >
>
> --
> Thanks and Regards,
> Deepti B. Kalakeri
> IBM Linux Technology Center
> deeptik(a)linux.vnet.ibm.com
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim(a)redhat.com
>
https://www.redhat.com/mailman/listinfo/libvirt-cim
------------------------------------------------------------------------
_______________________________________________
Libvirt-cim mailing list
Libvirt-cim(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-cim
--
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik(a)linux.vnet.ibm.com