
# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1214156795 25200 # Node ID a379b9abb12cffae8e19c5db0e312df0581b9541 # Parent 59fce67164a22315bb712f692dfd93314c4f30e0 [TEST] #2 Add generic poll function to poll for guest state. Updates from patch 1 to 2: -Added timeout as a parameter - still has defualt value of 30 -Added a check to verify the Name of the CS instance returned matches the name of the guest we're polling for. Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com> diff -r 59fce67164a2 -r a379b9abb12c suites/libvirt-cim/lib/XenKvmLib/common_util.py --- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py Thu Jun 05 19:37:57 2008 -0700 +++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py Sun Jun 22 10:46:35 2008 -0700 @@ -23,6 +23,7 @@ import os import pywbem import random +from time import sleep from distutils.file_util import move_file from XenKvmLib.test_xml import * from XenKvmLib.test_doms import * @@ -135,6 +136,32 @@ return 1 return 0 + +def poll_for_state_change(server, virt, dom, exp_state, timeout=30): + cs = computersystem.get_cs_class(virt) + + try: + for i in range(1, (timeout + 1)): + sleep(1) + 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 + + if dom_cs.EnabledState == exp_state: + break + + except Exception, detail: + logger.error("Exception: %s" % detail) + return FAIL + + 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 PASS def get_host_info(server, virt="Xen"): status = PASS