<br><tt><font size=2>libvirt-cim-bounces@redhat.com wrote on 2009-05-18
17:27:04:<br>
<br>
> <br>
> This tc fails for routed and isolated mode because that the forward
<br>
> mode is "nat" always when we dumpxml in verify_pool() function.
<br>
> Although the networkpool is created with routed/isolated <br>
> ForwardMode, the forward mode of dump netxml is "nat". <br>
> <br>
> Is there any error in mode setting on cimtest? <br>
> Thanks! <br>
> </font></tt>
<br><tt><font size=2>  I'm not sure if this failure because of the
test_mode = ["None", "nat", "route eth1"]
setting in tc.</font></tt>
<br><tt><font size=2>  Below are the part code of libvirt-cim provider.
I tried to define the test_mode as [0, 1, 2], but it</font></tt>
<br><tt><font size=2>  fails yet. How to set the test_mode in cimtest
for different types?</font></tt>
<br>
<br>
<br><tt><font size=2>        if (cu_get_u16_prop(inst,
"ForwardMode", &type) != CMPI_RC_OK) {</font></tt>
<br><tt><font size=2>               
pool->pool_info.net.forward_mode = strdup("nat");</font></tt>
<br><tt><font size=2>        } else {</font></tt>
<br><tt><font size=2>               
free(pool->pool_info.net.forward_mode);</font></tt>
<br>
<br><tt><font size=2>               
switch (type) {</font></tt>
<br><tt><font size=2>               
case NETPOOL_FORWARD_NONE:</font></tt>
<br><tt><font size=2>               
        pool->pool_info.net.forward_mode = NULL;</font></tt>
<br><tt><font size=2>               
        break;</font></tt>
<br><tt><font size=2>               
case NETPOOL_FORWARD_NAT:</font></tt>
<br><tt><font size=2>               
        pool->pool_info.net.forward_mode = strdup("nat");</font></tt>
<br><tt><font size=2>               
        break;</font></tt>
<br><tt><font size=2>               
case NETPOOL_FORWARD_ROUTED:</font></tt>
<br><tt><font size=2>               
        pool->pool_info.net.forward_mode = strdup("route");</font></tt>
<br><tt><font size=2>               
        break;</font></tt>
<br><tt><font size=2>               
default:</font></tt>
<br><tt><font size=2>               
        return "Storage pool type not supported";</font></tt>
<br><tt><font size=2><br>
> <br>
> libvirt-cim-bounces@redhat.com wrote on 2009-05-18 17:28:43:<br>
> <br>
> > # HG changeset patch<br>
> > # User Yun Guo Lian <yunguol@cn.ibm.com><br>
> > # Date 1242638914 25200<br>
> > # Node ID eb0bbc2200a1b3c1649dcbe921f7e7103c2345a0<br>
> > # Parent  43fb40db432952d38509a76e92e61d7d3d3702f7<br>
> > [TEST] #2 Update RPCS/04 with the latest updatesof pool verification<br>
> > <br>
> > <br>
> > Tested for KVM with current sources<br>
> > Signed-off-by: Guolian Yun<yunguol@cn.ibm.com<br>
> > <br>
> > diff -r 43fb40db4329 -r eb0bbc2200a1 suites/libvirt-<br>
> > cim/cimtest/ResourcePoolConfigurationService/04_CreateChildResourcePool.py<br>
> > --- a/suites/libvirt-<br>
> > cim/cimtest/ResourcePoolConfigurationService/04_CreateChildResourcePool.<br>
> > py   Fri May 15 14:03:39 2009 -0700<br>
> > +++ b/suites/libvirt-<br>
> > cim/cimtest/ResourcePoolConfigurationService/04_CreateChildResourcePool.<br>
> > py   Mon May 18 02:28:34 2009 -0700<br>
> > @@ -39,45 +39,73 @@<br>
> >  # OUT -- Error -- String  -- Encoded error instance
if the operation <br>
> >  #                
           failed and did not return a job<br>
> >  #<br>
> > -# REVISIT : <br>
> > -# --------<br>
> > -# As of now the CreateChildResourcePool() simply throws an Exception.<br>
> > -# We must improve this tc once the service is implemented. <br>
> > -# <br>
> > -#                  
                     
                     
   <br>
> > -Date: 20.02.2008<br>
> > -<br>
> > +# Exception details before Revision 837<br>
> > +# -----<br>
> > +# Error code: CIM_ERR_NOT_SUPPORTED <br>
> > +#<br>
> > +# After revision 837, the service is implemented<br>
> > +#<br>
> > +#                  
                     
          -Date: 20.02.2008<br>
> >  <br>
> >  import sys<br>
> > -import pywbem <br>
> > -from XenKvmLib import rpcs_service<br>
> > +import random<br>
> >  from CimTest.Globals import logger<br>
> >  from CimTest.ReturnCodes import FAIL, PASS<br>
> >  from XenKvmLib.const import do_main, platform_sup<br>
> >  from XenKvmLib.classes import get_typed_class<br>
> > +from XenKvmLib.common_util import destroy_netpool<br>
> > +from XenKvmLib.pool import create_netpool, verify_pool, undefine_netpool<br>
> >  <br>
> > -cim_errno  = pywbem.CIM_ERR_NOT_SUPPORTED<br>
> > -cim_mname  = "CreateChildResourcePool"<br>
> > +test_pool = "testpool"<br>
> > +test_mode = ["None", "nat", "route
eth1"]<br>
> >  <br>
> >  @do_main(platform_sup)<br>
> >  def main():<br>
> > +    status = PASS<br>
> >      options = main.options<br>
> > -    rpcs_conn = eval("rpcs_service." + get_typed_class(options.virt,
\<br>
> > -                  
   "ResourcePoolConfigurationService"))(options.ip)<br>
> > -    try:<br>
> > -        rpcs_conn.CreateChildResourcePool()<br>
> > -    except pywbem.CIMError, (err_no, desc):<br>
> > -        if err_no == cim_errno :<br>
> > -            logger.info("Got
expected exception for '%s' <br>
> service", cim_mname)<br>
> > -            logger.info("Errno
is '%s' ", err_no)<br>
> > -            logger.info("Error
string is '%s'", desc)<br>
> > -            return PASS<br>
> > -        else:<br>
> > -            logger.error("Unexpected
rc code %s and description %s\n",<br>
> > -                  
      err_no, desc)<br>
> > +<br>
> > +    np = get_typed_class(options.virt, 'NetworkPool')<br>
> > +    np_id = "NetworkPool/%s" % test_pool<br>
> > +<br>
> > +    subnet = '192.168.0.'<br>
> > +    ip_base = random.randint(1, 100)<br>
> > +    addr = subnet+'%d' % ip_base<br>
> > +    range_addr_start = subnet+'%d' % (ip_base + 1)<br>
> > +    range_addr_end = subnet+'%d' %(ip_base + 10)<br>
> > +    pool_attr = {<br>
> > +                 "Address"
: addr,<br>
> > +                 "Netmask"
: "255.255.255.0",<br>
> > +                 "IPRangeStart"
: range_addr_start,<br>
> > +                 "IPRangeEnd"
  : range_addr_end<br>
> > +                }<br>
> > +    for i in range(0, len(test_mode)):<br>
> > +        pool_attr["ForwardMode"]
= test_mode[i]<br>
> > +        <br>
> > +        status = create_netpool(options.ip,
options.virt, <br>
> > +                  
             test_pool, pool_attr)<br>
> > +        if status != PASS:<br>
> > +            logger.error("Error
in networkpool creation")<br>
> >              return FAIL<br>
> > -     <br>
> > -    logger.error("The execution should not have
reached here!!")<br>
> > -    return FAIL<br>
> > +<br>
> > +        status = verify_pool(options.ip,
options.virt, np, <br>
> > +                  
          test_pool, pool_attr)<br>
> > +        if status != PASS:<br>
> > +            logger.error("Error
in networkpool verification")<br>
> > +            destroy_netpool(options.ip,
options.virt, test_pool)<br>
> > +            undefine_netpool(options.ip,
options.virt, test_pool)<br>
> > +            return FAIL<br>
> > +<br>
> > +        status = destroy_netpool(options.ip,
options.virt, test_pool)<br>
> > +        if status != PASS:<br>
> > +            logger.error("Unable
to destroy networkpool %s", test_pool)<br>
> > +            return FAIL<br>
> > +<br>
> > +        status = undefine_netpool(options.ip,
options.virt, test_pool)<br>
> > +        if status != PASS:<br>
> > +            logger.error("Unable
to undefine networkpool %s", test_pool)<br>
> > +            return FAIL<br>
> > +<br>
> > +    return status<br>
> > +<br>
> >  if __name__ == "__main__":<br>
> >      sys.exit(main())<br>
> > -    <br>
> > <br>
> > _______________________________________________<br>
> > Libvirt-cim mailing list<br>
> > Libvirt-cim@redhat.com<br>
> > https://www.redhat.com/mailman/listinfo/libvirt-cim<br>
> _______________________________________________<br>
> Libvirt-cim mailing list<br>
> Libvirt-cim@redhat.com<br>
> https://www.redhat.com/mailman/listinfo/libvirt-cim</font></tt>