[Libvirt-cim] [PATCH] [TEST] Updating 02_enum_crscap.py tc of RedirectionService to work with libvirt-cim provider with no CRS CAP support

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Tue Nov 4 18:30:58 UTC 2008


Deepti B. Kalakeri wrote:
> # HG changeset patch
> # User Deepti B. Kalakeri<deeptik at linux.vnet.ibm.com>
> # Date 1225804761 28800
> # Node ID 82afd0f6f9b91ef42c6fd1602d9929faecb94c9e
> # Parent  a63c661d0e709149d874d7632ac16f721aea60e6
> [TEST] Updating 02_enum_crscap.py tc of RedirectionService to work with libvirt-cim provider with no CRS CAP support.
> 
> Updating 02_enum_crscap.py tc of RedirectionService to skip the tc if CRS CAP provider is not present
> in the libvirt_cim provider when the libvirt_cim_revision < 691.
> 
> Signed-off-by: Deepti B. Kalakeri <deeptik at linux.vnet.ibm.com>
> 
> diff -r a63c661d0e70 -r 82afd0f6f9b9 suites/libvirt-cim/cimtest/RedirectionService/02_enum_crscap.py
> --- a/suites/libvirt-cim/cimtest/RedirectionService/02_enum_crscap.py	Tue Nov 04 04:48:25 2008 -0800
> +++ b/suites/libvirt-cim/cimtest/RedirectionService/02_enum_crscap.py	Tue Nov 04 05:19:21 2008 -0800
> @@ -31,15 +31,29 @@
>  from CimTest.Globals import logger, CIM_ERROR_ENUMERATE
>  from XenKvmLib.classes import get_typed_class
>  from XenKvmLib.const import do_main 
> -from CimTest.ReturnCodes import PASS, FAIL
> +from CimTest.ReturnCodes import PASS, FAIL, SKIP
> +from XenKvmLib.const import get_provider_version
> 
>  SHAREMODESUPP = 3
> 
>  sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']
> +libvirtcim_crscap_changes = 691
> +
>  @do_main(sup_types)
>  def main():
>      virt = main.options.virt
>      server = main.options.ip
> +
> +    # This check is required for libivirt-cim providers which do not have 
> +    # CRSCAP changes in it and the CRSCAP provider is available with 
> +    # revision >= 691.
> +    curr_cim_rev, changeset = get_provider_version(virt, server)
> +    if curr_cim_rev  < libvirtcim_crscap_changes:
> +        logger.info("ConsoleRedirectionServiceCapabilities provider not"
> +                    " supported, hence skipping the tc ....")
> +        return SKIP 
> +
> +
>      cname = 'ConsoleRedirectionServiceCapabilities'
>      cap_name = 'ConsoleRedirectionCapabilities'
>      classname = get_typed_class(virt, cname)
> 

This approach works for handling test cases that run against new 
providers.  However, I think it'd be useful to have a function that 
calls GetClass() to determine whether the class is registered with the 
CIMOM.  If the class isn't registered, the test would be skipped and an 
error message would be printed indicating that the class isn't registered.

If all of the libvirt-cim classes aren't registered properly, then all 
of the tests would be skipped instead of all of them failing.

This is something you could embed into the do_main() call, so that it 
happens before the test is even run.  The tricky part is determining the 
classname or classnames associated with each test.

I'm going to apply this change for now, and I'll add a to-do on the wiki 
for coming up with a way to check the classnames before running a test.

-- 
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list