[Libvirt-cim] [PATCH] [TEST] Add try / except to VSMS 15

Deepti B Kalakeri deeptik at linux.vnet.ibm.com
Thu Sep 3 11:03:40 UTC 2009



Kaitlin Rupert wrote:
> # HG changeset patch
> # User Kaitlin Rupert <karupert at us.ibm.com>
> # Date 1251828184 25200
> # Node ID ddb880e221d36151a9f91c3b0ab95f9cca97c2fa
> # Parent  95fa64bf447e5bc2bab501564e3d9336edef997d
> [TEST] Add try / except to VSMS 15
>
> This will catch any unexpected exceptions.  Otherwise, the exception isn't
> caught and the guest may not be properly undefined
>
> Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>
>
> diff -r 95fa64bf447e -r ddb880e221d3 suites/libvirt-cim/cimtest/VirtualSystemManagementService/15_mod_system_settings.py
> --- a/suites/libvirt-cim/cimtest/VirtualSystemManagementService/15_mod_system_settings.py	Thu Aug 27 16:39:53 2009 -0700
> +++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementService/15_mod_system_settings.py	Tue Sep 01 11:03:04 2009 -0700
> @@ -74,72 +74,71 @@
>   
Though it is not part of the changes in this patch, can you remove the 
following import statements from the tc:

remove the import statement for default_network_name


>      cxml = vxml.get_class(options.virt)(default_dom, vcpus=cpu)
>      service = vsms.get_vsms_class(options.virt)(options.ip)
>
> -    for case in test_cases:
> -        #Each time through, define guest using a default XML
> -        cxml.undefine(options.ip)
> -        cxml = vxml.get_class(options.virt)(default_dom, vcpus=cpu)
> -        ret = cxml.cim_define(options.ip)
> -        if not ret:
> -            logger.error("Failed to define the dom: %s", default_dom)
> -            cleanup_env(options.ip, cxml)
> -            return FAIL
> +    try:
>
> -        if case == "start":
> -            ret = cxml.start(options.ip)
> +        for case in test_cases:
> +            #Each time through, define guest using a default XML
> +            cxml.undefine(options.ip)
> +            cxml = vxml.get_class(options.virt)(default_dom, vcpus=cpu)
> +            ret = cxml.cim_define(options.ip)
>              if not ret:
> -                logger.error("Failed to start %s", default_dom)
> -                cleanup_env(options.ip, cxml)
> -                return FAIL
> +                raise Exception("Failed to define the dom: %s", default_dom)
>
>   
Remove the comma in the Exception statement and use % default instead, 
otherwise the exception will be printed as follows, the format string 
wont be substituted properly.
ERROR - ('Failed to define the dom: %s', 'rstest_domain')

Instead the above could be

raise Exception("Failed to define the dom: %s" % default_dom)

which would print the exception as below:

ERROR   - Failed to define the dom: rstest_domain



> -        status, inst = get_vssd(options.ip, options.virt, True)
> -        if status != PASS:
> -            logger.error("Failed to get the VSSD instance for %s", default_dom)
> -            cleanup_env(options.ip, cxml)
> -            return FAIL
> +            if case == "start":
> +                ret = cxml.start(options.ip)
> +                if not ret:
> +                    raise Exception("Failed to start %s", default_dom)
>   
Same here Remove the comma in the Exception statement and use % after "
> -        inst['AutomaticRecoveryAction'] = pywbem.cim_types.Uint16(RECOVERY_VAL)
> -        vssd = inst_to_mof(inst)
> +            status, inst = get_vssd(options.ip, options.virt, True)
> +            if status != PASS:
> +                raise Expcetion("Failed to get the VSSD instance for %s", 
> +                                default_dom)
>
>   
Same here Remove the comma in the Exception statement and use % after "
> -        ret = service.ModifySystemSettings(SystemSettings=vssd) 
> -        curr_cim_rev, changeset = get_provider_version(options.virt, options.ip)
> -        if curr_cim_rev >= libvirt_modify_setting_changes:
> -            if ret[0] != 0:
> -                logger.error("Failed to modify dom: %s", default_dom)
> -                cleanup_env(options.ip, cxml)
> -                return FAIL
> +            val = pywbem.cim_types.Uint16(RECOVERY_VAL)
> +            inst['AutomaticRecoveryAction'] = val
> +            vssd = inst_to_mof(inst)
>
> -        if case == "start":
> -            #This should be replaced with a RSC to shutdownt he guest
> -            cxml.destroy(options.ip)
> -            status, cs = poll_for_state_change(options.ip, options.virt, 
> -                                               default_dom, DEFINED_STATE)
> +            ret = service.ModifySystemSettings(SystemSettings=vssd) 
> +            curr_cim_rev, changeset = get_provider_version(options.virt, 
> +                                                           options.ip)
> +            if curr_cim_rev >= libvirt_modify_setting_changes:
> +                if ret[0] != 0:
> +                    raise Exception("Failed to modify dom: %s", default_dom)
> +
> +            if case == "start":
> +                #This should be replaced with a RSC to shutdownt he guest
> +                cxml.destroy(options.ip)
> +                status, cs = poll_for_state_change(options.ip, options.virt, 
> +                                                   default_dom, DEFINED_STATE)
>   
you can use cim_destroy() instead.
> +                if status != PASS:
> +                    raise Exception("Failed to destroy %s", default_dom)
>   

Same here Remove the comma in the Exception statement and use % after "
> +
> +            status, inst = get_vssd(options.ip, options.virt, False)
>              if status != PASS:
> -                logger.error("Failed to destroy %s", default_dom)
> -                cleanup_env(options.ip, cxml)
> -                return FAIL
> +                raise Exception("Failed to get the VSSD instance for %s", 
> +                                default_dom)
>
>   
Same here Remove the comma in the Exception statement and use % after "
> -        status, inst = get_vssd(options.ip, options.virt, False)
> -        if status != PASS:
> -            logger.error("Failed to get the VSSD instance for %s", default_dom)
> -            cleanup_env(options.ip, cxml)
> -            return FAIL
> +            if inst.AutomaticRecoveryAction != RECOVERY_VAL:
> +                logger.error("Exp AutomaticRecoveryAction=%d, got %d", 
> +                             RECOVERY_VAL, inst.AutomaticRecoveryAction)
> +                raise Exception("%s not updated properly.", default_dom)
>
>   
Same here Remove the comma in the Exception statement and use % after "
> -        if inst.AutomaticRecoveryAction != RECOVERY_VAL:
> -            logger.error("%s not updated properly.", default_dom)
> -            logger.error("Exp AutomaticRecoveryAction=%d, got %d", RECOVERY_VAL,
> -                         inst.AutomaticRecoveryAction)
> -            cleanup_env(options.ip, cxml)
> -            curr_cim_rev, changeset = get_provider_version(options.virt, options.ip)
> -            if curr_cim_rev <= libvirt_f9_revision and options.virt == "KVM":
> -                return XFAIL_RC(f9_bug)
> +            status = PASS
>
> -            if options.virt == "LXC":
> -                return XFAIL_RC(bug)
> -            return FAIL 
> +    except Exception, details:
> +        logger.error(details)
> +        status = FAIL
>
>      cleanup_env(options.ip, cxml)
>
> -    return PASS 
> +    curr_cim_rev, changeset = get_provider_version(options.virt, options.ip)
> +    if curr_cim_rev <= libvirt_f9_revision and options.virt == "KVM":
> +        return XFAIL_RC(f9_bug)
> +
> +    if options.virt == "LXC":
> +        return XFAIL_RC(bug)
> +
> +    return status 
>
>  if __name__ == "__main__":
>      sys.exit(main())
>
> _______________________________________________
> 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