
# HG changeset patch # User Deepti B. Kalakeri <deeptik@linux.vnet.ibm.com> # Date 1213968570 25200 # Node ID 92675efb0941a25500820ccfde0a7d73d6058acc # Parent 1837fcafef1281396deb7d03f6754da320af8a36 [TEST] Fixing 06_paused_active_suspend.py tc of ComputerSystem. 1) Included the poll method since the enabledState was not getting set for XenFV appropriately. 2) Included the bugno["0001"], since RequestStateChange() method was not able to suspend a XenFV domain even when it was in a expected running state. Signed-off-by: Deepti B. Kalakeri <deeptik@linux.vnet.ibm.com> diff -r 1837fcafef12 -r 92675efb0941 suites/libvirt-cim/cimtest/ComputerSystem/06_paused_active_suspend.py --- a/suites/libvirt-cim/cimtest/ComputerSystem/06_paused_active_suspend.py Fri Jun 20 05:58:16 2008 -0700 +++ b/suites/libvirt-cim/cimtest/ComputerSystem/06_paused_active_suspend.py Fri Jun 20 06:29:30 2008 -0700 @@ -48,7 +48,7 @@ from XenKvmLib.test_doms import destroy_ from XenKvmLib.test_doms import destroy_and_undefine_all from CimTest.Globals import logger from CimTest.Globals import do_main -from XenKvmLib.common_util import call_request_state_change +from XenKvmLib.common_util import call_request_state_change, get_cs_instance from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC sup_types = ['Xen', 'KVM', 'XenFV'] @@ -56,94 +56,102 @@ mem = 128 # MB mem = 128 # MB # Keeping the bug no for future reference # bug_no_req_change_method = "90559" +bug_no_req_method = "00001" bug_no_req_change_prop = "00002" START_STATE = 2 FINAL_STATE = 9 REQUESTED_STATE = FINAL_STATE TIME = "00000000000000.000000:000" -@do_main(sup_types) -def main(): - options = main.options +def check_attributes(server, virt, cxml, verify_state): + enabledState = RequestedState = None status = FAIL - - cxml = vxml.get_class(options.virt)(test_dom, mem) - -#Create VS - try: - ret = cxml.create(options.ip) - if not ret: - logger.error("ERROR: VS %s was not created" % test_dom) - return status - cs = computersystem.get_cs_class(options.virt)(options.ip, test_dom) - if cs.Name == test_dom: - from_State = cs.EnabledState - else: - logger.error("ERROR: VS %s not found" % test_dom) - return status - except Exception, detail: - logger.error("Exception variable: %s" % detail) - cxml.destroy(options.ip) - cxml.undefine(options.ip) - return status - -#Suspend the VS - rc = call_request_state_change(test_dom, options.ip, REQUESTED_STATE, - TIME, options.virt) - if rc != 0: - logger.error("Unable to suspend dom %s using RequestedStateChange()", test_dom) - cxml.destroy(options.ip) - cxml.undefine(options.ip) - return status -#Polling for the value of EnabledState to be set to 9. -#We need to wait for the EnabledState to be set appropriately since -#it does not get set immediatley to value of 9 when suspended. timeout = 10 try: - for i in range(1, (timeout + 1)): sleep(1) - cs = computersystem.get_cs_class(options.virt)(options.ip, test_dom) - if cs.Name == test_dom: - to_RequestedState = cs.RequestedState - enabledState = cs.EnabledState - else: - logger.error("VS %s not found" % test_dom) - return status - if enabledState == FINAL_STATE: + status, cs = get_cs_instance(test_dom, server, virt) + if status != PASS: + cxml.destroy(server) + cxml.undefine(server) + return status, enabledState, RequestedState + + enabledState = cs.EnabledState + RequestedState = cs.RequestedState + + if enabledState == verify_state: status = PASS break except Exception, detail: logger.error("Exception variable: %s" % detail) - return status + cxml.destroy(server) + cxml.undefine(server) + return status, enabledState, RequestedState - if enabledState != FINAL_STATE: - logger.error("EnabledState has %i instead of %i", enabledState, FINAL_STATE) + if enabledState != verify_state: + logger.error("EnabledState has %i instead of %i", enabledState, + verify_state) logger.error("Try to increase the timeout and run the test again") if status != PASS: - ret = cxml.destroy(options.ip) - cxml.undefine(options.ip) + cxml.destroy(server) + cxml.undefine(server) + return status, enabledState, RequestedState + +@do_main(sup_types) +def main(): + options = main.options + server = options.ip + virt = options.virt + + #Create VS + cxml = vxml.get_class(virt)(test_dom, mem) + ret = cxml.create(server) + if not ret: + logger.error("ERROR: VS %s was not created" % test_dom) return status -# Success: -# if -# From state == 9 -# To state == 2 -# Enabled_state == RequestedState + status, from_State, req_state = check_attributes(server, virt, cxml, + START_STATE) + if status != PASS: + return status + + #Suspend the VS + status = call_request_state_change(test_dom, server, REQUESTED_STATE, + TIME, virt) + if status != PASS: + logger.error("Unable to suspend dom '%s' using RequestedStateChange()", + test_dom) + cxml.destroy(server) + cxml.undefine(server) + status = XFAIL_RC(bug_no_req_method) + return status + + status, enabledState, to_RequestedState = check_attributes(server, + virt, cxml, + FINAL_STATE) + if status != PASS: + return status + + # Success: + # if + # From state == 9 + # To state == 2 + # Enabled_state == RequestedState if from_State == START_STATE and \ to_RequestedState == FINAL_STATE and \ enabledState == to_RequestedState: status = PASS else: - logger.error("ERROR: VS %s transition from suspend State to Activate state \ - was not Successful" % test_dom) -# Replace the status with FAIL once the bug is fixed. + logger.error("VS '%s' transition from suspend State to Activate " + "state was not Successful" % test_dom) + # Replace the status with FAIL once the bug is fixed. status = XFAIL_RC(bug_no_req_change_prop) - ret = cxml.destroy(options.ip) - cxml.undefine(options.ip) + + ret = cxml.destroy(server) + cxml.undefine(server) return status if __name__ == "__main__":