<br><font size=2 face="sans-serif">+1 from me£¡</font>
<br>
<br><font size=2 face="sans-serif">Best,<br>
Regards<br>
<br>
Daisy (Ô˹úÁ«)<br>
VSM Team, China Systems & Technology Labs (CSTL)<br>
E-mail: yunguol@cn.ibm.com<br>
TEL: (86)-21-60922403<br>
Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203<br>
</font>
<br>
<br><tt><font size=2>libvirt-cim-bounces@redhat.com wrote on 2008-07-22
01:36:35:<br>
<br>
> # HG changeset patch<br>
> # User Kaitlin Rupert <karupert@us.ibm.com><br>
> # Date 1216661611 25200<br>
> # Node ID abcd4c8a873656b6f12c4416832d185f8c9eb151<br>
> # Parent  18d3c235f0c893f934aaf61f9a1de22ed6f3dd60<br>
> [TEST] #3 Fix CS 22 to use providers instead of virsh.<br>
> <br>
> This test was defining a guest with virsh and then suspending it <br>
> with virsh, which doesn't touch the providers in anyway.  Now
the <br>
> test calls DefineSystem() and RequestStateChange().<br>
> <br>
> Updates from 1 to 2:<br>
>   -Add check to verify guest is the expected state after the
<br>
> RequestStateChange() call.<br>
>   -Create a network pool because the VSMS provider requires a
<br>
> network pool to exist in order to create a guest.<br>
> <br>
> Updates from 2 to 3:<br>
>   -Remove destroy_netpool() if create_netpool_conf() fails.  This
is<br>
> not needed.<br>
> <br>
> Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com><br>
> <br>
> diff -r 18d3c235f0c8 -r abcd4c8a8736 suites/libvirt-<br>
> cim/cimtest/ComputerSystem/22_define_suspend.py<br>
> --- a/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py<br>
> Mon Jul 21 09:51:33 2008 -0700<br>
> +++ b/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py<br>
> Mon Jul 21 10:33:31 2008 -0700<br>
> @@ -32,54 +32,71 @@<br>
>  from XenKvmLib import computersystem<br>
>  from VirtLib import utils<br>
>  from XenKvmLib import vxml<br>
> -from XenKvmLib.test_doms import destroy_and_undefine_all<br>
> -from CimTest.Globals import do_main<br>
> -from CimTest import Globals<br>
> +from XenKvmLib.test_doms import destroy_and_undefine_domain<br>
> +from CimTest.Globals import do_main, logger<br>
>  from CimTest.ReturnCodes import PASS, FAIL<br>
> +from XenKvmLib.common_util import create_using_definesystem, \<br>
> +                    
             call_request_state_change,
<br>
> get_cs_instance, \<br>
> +                    
             create_netpool_conf, destroy_netpool<br>
>  <br>
>  sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']<br>
>  test_dom = "domgst"<br>
>  <br>
> +DEFINE_STATE = 3<br>
> +SUSPND_STATE = 9<br>
> +TIME        = "00000000000000.000000:000"<br>
> +<br>
> +def chk_state(domain_name, ip, en_state, virt):<br>
> +    rc, cs = get_cs_instance(domain_name, ip, virt)<br>
> +    if rc != 0:<br>
> +        return rc<br>
> +<br>
> +    if cs.EnabledState != en_state:<br>
> +        logger.error("EnabledState should
be %d not %d",<br>
> +                    
en_state, cs.EnabledState)<br>
> +        return FAIL<br>
> +<br>
> +    return PASS<br>
> +<br>
>  @do_main(sup_types)<br>
>  def main():<br>
>      options = main.options<br>
> -    status = FAIL<br>
> -    <br>
> -    cxml = vxml.get_class(options.virt)(test_dom)<br>
>  <br>
> -#define VS<br>
> +    status, test_network = create_netpool_conf(options.ip,
options.virt)<br>
> +    if status != PASS:<br>
> +        return FAIL<br>
> +<br>
>      try:<br>
> -        ret = cxml.define(options.ip)<br>
> -        if not ret:<br>
> -            Globals.logger.error(Globals.VIRSH_ERROR_DEFINE
% test_dom)<br>
> -            return status<br>
> -        <br>
> -        cs = computersystem.get_cs_class(options.virt)(options.ip,
test_dom)<br>
> -        if not (cs.Name == test_dom) :<br>
> -            Globals.logger.error("Error:
VS %s not found" % test_dom)<br>
> -            cxml.undefine(options.ip)<br>
> +        # define the vs<br>
> +        status = create_using_definesystem(test_dom,
options.ip,<br>
> +                    
                     
virt=options.virt)<br>
> +        if status != PASS:<br>
> +            logger.error("Unable
to define %s using DefineSystem()"<br>
> % test_dom)<br>
> +            destroy_netpool(options.ip,
options.virt, test_network)<br>
>              return status<br>
>  <br>
> -    except Exception, detail:<br>
> -        Globals.logger.error("Errors: %s"
% detail)<br>
> +        # suspend the vs<br>
> +        status = call_request_state_change(test_dom,
options.ip, <br>
> SUSPND_STATE,<br>
> +                    
                     
TIME, virt=options.virt)<br>
> +        if status != PASS:<br>
> +            logger.info("Suspending
defined %s failed, as expected"<br>
> % test_dom)<br>
> +            status = PASS<br>
>  <br>
> -#Suspend the defined VS<br>
> -    <br>
> -    try:<br>
> -        ret = cxml.run_virsh_cmd(options.ip,
"suspend")<br>
> -        if not ret :<br>
> -            Globals.logger.info("Suspending
defined VS %s failed, <br>
> as expected" \<br>
> -% test_dom)<br>
> -            status = PASS<br>
> +            status = chk_state(test_dom,
options.ip, DEFINE_STATE, <br>
> options.virt)<br>
> +            if status != PASS:<br>
> +                logger.error("%s
not in defined state as expected."<br>
> % test_dom)<br>
> +                status =
FAIL <br>
> +            <br>
>          else :<br>
> -            Globals.logger.info("Error:
Suspending defined VS %s should not \<br>
> -have been allowed" % test_dom)<br>
> +            logger.error("Suspending
defined %s should have failed"<br>
> % test_dom)<br>
>              status = FAIL <br>
>  <br>
>      except Exception, detail:<br>
> -        Globals.logger.error("Error: %s"
% detail)<br>
> +        logger.error("Error: %s" %
detail)<br>
> +        status = FAIL <br>
>  <br>
> -    ret = cxml.undefine(options.ip)<br>
> +    destroy_netpool(options.ip, options.virt, test_network)<br>
> +    destroy_and_undefine_domain(test_dom, options.ip, options.virt)<br>
>      return status<br>
>  <br>
>  if __name__ == "__main__":<br>
> <br>
> _______________________________________________<br>
> Libvirt-cim mailing list<br>
> Libvirt-cim@redhat.com<br>
> https://www.redhat.com/mailman/listinfo/libvirt-cim<br>
</font></tt>