[Libvirt-cim] [PATCH 1 of 7] [TEST] Adding verify_err_desc(), Modifying poll_for_state_change() and Fixing get_cs_instance()

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Mon Aug 4 19:24:19 UTC 2008


> +
> +def try_request_state_change(domain_name, ip, rs, time, exp_rc, 
> +                             exp_desc, virt='Xen'):
> +    rc, cs = get_cs_instance(domain_name, ip, virt)
> +    if rc != 0:
> +        return FAIL 
> +
> +    try:
> +        cs.RequestStateChange(RequestedState=pywbem.cim_types.Uint16(rs),
> +                              TimeoutPeriod=pywbem.cim_types.CIMDateTime(time))
> +
> +    except Exception, (err_no, err_desc) :
> +        return verify_err_desc(exp_rc, exp_desc, err_no, err_desc)
> +    logger.error("RequestStateChange failed to generate an exception")
> +    return FAIL 

I think this is a special case and that we don't need a separate 
function for this.  There will only be a few cases where this is used, I 
think.

Or maybe it's possible to modify call_request_state_change(0 to handle 
errors?

> 
>  def poll_for_state_change(server, virt, dom, exp_state, timeout=30):
> +    dom_cs = None
>      cs = computersystem.get_cs_class(virt)
> 
>      try:
> @@ -146,22 +174,22 @@
>              dom_cs = cs(server, name=dom)
>              if dom_cs is None or dom_cs.Name != dom:
>                  logger.error("CS instance not returned for %s." % dom)
> -                return FAIL
> +                return FAIL, dom_cs
> 
>              if dom_cs.EnabledState == exp_state:
>                  break
> 
>      except Exception, detail:
>          logger.error("Exception: %s" % detail)
> -        return FAIL
> +        return FAIL, dom_cs
> 
>      if dom_cs.EnabledState != exp_state:
>          logger.error("EnabledState is %i instead of %i." % (dom_cs.EnabledState,
>                       exp_state))
>          logger.error("Try to increase the timeout and run the test again")
> -        return FAIL
> +        return FAIL, dom_cs
> 
> -    return PASS 
> +    return PASS, dom_cs 

This is a good set of changes - thanks!
-- 
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list