yunguol(a)cn.ibm.com wrote:
diff -r 0ecb3a22c361 -r 145cde258442
suites/libvirt-cim/cimtest/HostedService/03_forward_errs.py
--- a/suites/libvirt-cim/cimtest/HostedService/03_forward_errs.py Fri Sep 26 02:44:52
2008 -0700
+++ b/suites/libvirt-cim/cimtest/HostedService/03_forward_errs.py Fri Sep 26 19:29:43
2008 -0700
@@ -25,6 +25,7 @@ from pywbem.cim_obj import CIMInstanceNa
from pywbem.cim_obj import CIMInstanceName
from XenKvmLib import assoc
from XenKvmLib import enumclass
+from XenKvmLib.common_util import get_host_info
from XenKvmLib.classes import get_typed_class
from CimTest.Globals import logger, CIM_ERROR_ENUMERATE, CIM_USER, \
CIM_PASS, CIM_NS
@@ -40,24 +41,22 @@ def main():
options = main.options
rc = -1
status = FAIL
- keys = ['Name', 'CreationClassName']
- try:
- host_sys = enumclass.enumerate(options.ip, 'HostSystem', keys,
options.virt)[0]
- except Exception:
- logger.error(CIM_ERROR_ENUMERATE % host_sys.name)
+ status, host_name, host_ccn = get_host_info(options.ip, options.virt)
+ if status != PASS:
+ logger.error("Error in calling get_host_info function")
return FAIL
-
-
+
conn = assoc.myWBEMConnection('http://%s' % options.ip,
(CIM_USER, CIM_PASS),
CIM_NS)
instanceref = CIMInstanceName(get_typed_class(options.virt, "HostSystem"),
- keybindings = {"Wrong" : "wrong",
"CreationClassName" : host_sys.CreationClassName})
+ keybindings = {"Wrong" : "wrong",
\
+ "CreationClassName" : host_ccn})
names = []
-
+ assoc_class = get_typed_class(options.virt, "HostedService")
try:
- names = conn.AssociatorNames(instanceref, AssocClass =
get_typed_class(options.virt, "HostedService"))
+ names = conn.AssociatorNames(instanceref, AssocClass = assoc_class)
rc = 0
except pywbem.CIMError, (rc, desc):
if rc == exp_rc and desc.find(exp_desc) >= 0:
@@ -70,7 +69,8 @@ def main():
logger.error(details)
if rc == 0:
- logger.error("HostedService associator should NOT return excepted result
with a wrong key name and value of HostSystem input")
+ logger.error("HostedService associator should NOT return excepted result\
+ with a wrong key name and value of HostSystem input")
status = FAIL
return status
The above test case passes with false positive.
The existing test case is intended to verify for exception when a wrong
Name is passed as a parameter.
_
For ex: without the sblim-base-provider the tc would be checking_
wbemcli ain -ac Xen_HostedService
'http://root:p@localhost:5988/root/virt:Xen_HostSystem.CreationClassName="Xen_HostSystem",Wrong="wrong"'
*
* wbemcli: Cim: (6) CIM_ERR_NOT_FOUND: No such instance (Name)
*
_But with the sblim-base-provider installed the tc would be checking_
wbemcli ain -ac Xen_HostedService
'http://root:P@localhost:5988/root/virt:Xen_HostSystem.CreationClassName="Linux_ComputerSystem",Wrong="wrong"'
*
* wbemcli: Cim: (6) CIM_ERR_NOT_FOUND: No such instance (CreationClassName)
*
though getting the exception for Linux_ComputerSystem in the second case
is valid for now, as the query with the Linux_CS does not work yet,
but this is not the expected behavior of the test case.
The tc just verifies only "No such instance " string which is present in
both the exceptions and hence passes.
1) This test cannot be supported to work with sblim-base-provider
installed yet.
2) We need to update the tc to verify the case where we pass Invalid
CreationClassName.
3) We need to be verifying the complete exception instead of just
verifying part of it.
Thanks and Regards,
Deepti.