[PATCH] [TEST] #2 Update 32_start_reboot.py to use cim_() functions

# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1231264630 28800 # Node ID d0566805a9ec7b5d3a9a20af71b89053b3b01b09 # Parent ae40dfa1b8f6e134d200233d2e5b3395855cafa2 [TEST] #2 Update 32_start_reboot.py to use cim_() functions Also change cim_state_change() to support enable and requested state parameters. Updates: -Remove unused variables -Don't return an XFAIL is starting the guest fails Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com> diff -r ae40dfa1b8f6 -r d0566805a9ec suites/libvirt-cim/cimtest/ComputerSystem/32_start_reboot.py --- a/suites/libvirt-cim/cimtest/ComputerSystem/32_start_reboot.py Mon Jan 05 14:08:38 2009 -0800 +++ b/suites/libvirt-cim/cimtest/ComputerSystem/32_start_reboot.py Tue Jan 06 09:57:10 2009 -0800 @@ -28,34 +28,18 @@ # The test is considered to be successful if RequestedState Property # has a value of 10 when the VS is moved from active to reboot state. # -# List of Valid state values (Refer to VSP spec doc Table 2 for more) -# --------------------------------- -# State | Values -# --------------------------------- -# Defined | 3 -# Active | 2 -# Rebooted | 10 -# # Date: 03-03-2008 import sys -from VirtLib import utils -from time import sleep from CimTest.Globals import logger from XenKvmLib.const import do_main from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC -from XenKvmLib.test_doms import destroy_and_undefine_domain -from XenKvmLib.common_util import create_using_definesystem, \ - call_request_state_change, \ - poll_for_state_change +from XenKvmLib.vxml import get_class sup_types = ['Xen', 'XenFV', 'KVM', 'LXC'] bug_libvirt = "00005" -ACTIVE_STATE = 2 -REBOOT_STATE = 10 default_dom = 'cs_test_domain' -TIME = "00000000000000.000000:000" @do_main(sup_types) def main(): @@ -64,45 +48,34 @@ server = options.ip virt = options.virt - tc_scen = [('Start', [ACTIVE_STATE, ACTIVE_STATE]), \ - ('Reboot', [ACTIVE_STATE, REBOOT_STATE])] - + action_failed = False try: # define the vs - status = create_using_definesystem(default_dom, server, - virt=virt) + cxml = get_class(virt)(default_dom) + ret = cxml.cim_define(server) + if not ret: + raise Exception("Failed to define the guest: %s" % default_dom) + + status = cxml.cim_start(server) if status != PASS: - logger.error("Unable to define domain '%s' using DefineSystem()", - default_dom) - return status + raise Exception("Unable start dom '%s'" % default_dom) - # start, then reboot - for action, state in tc_scen: - en_state = state[0] - rq_state = state[1] - status = call_request_state_change(default_dom, server, - rq_state, TIME, - virt=virt) - if status != PASS: - logger.error("Unable to '%s' dom '%s' using RequestedStateChange()", - action, default_dom) - status = XFAIL_RC(bug_libvirt) - break - - status, dom_cs = poll_for_state_change(server, virt, default_dom, en_state, - timeout=10) - - if status != PASS or dom_cs.RequestedState != rq_state: - status = FAIL - logger.error("Attributes for dom '%s' is not set as expected.", - default_dom) - break + status = cxml.cim_reboot(server) + if status != PASS: + action_failed = True + raise Exception("Unable reboot dom '%s'" % default_dom) except Exception, detail: logger.error("Exception: %s", detail) status = FAIL - destroy_and_undefine_domain(default_dom, server, virt) + cxml.cim_destroy(server) + cxml.undefine(server) + + if action_failed: + if virt == "KVM" or virt == "LXC": + return XFAIL_RC(bug_libvirt) + return status if __name__ == "__main__": diff -r ae40dfa1b8f6 -r d0566805a9ec suites/libvirt-cim/lib/XenKvmLib/vxml.py --- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Mon Jan 05 14:08:38 2009 -0800 +++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue Jan 06 09:57:10 2009 -0800 @@ -535,7 +535,7 @@ try: cs = GetInstance(server, cs_class, keys) - if cs.Name != self.domain_name: + if cs is None or cs.Name != self.domain_name: raise Exception("Wrong guest instance") if cs.EnabledState != en_state: @@ -553,7 +553,11 @@ return PASS - def cim_state_change(self, server, req_state, req_timeout, poll_time): + def cim_state_change(self, server, req_state, req_timeout, poll_time, + en_state=None): + if en_state is None: + en_state = req_state + cs = None cs_class = get_typed_class(self.virt, 'ComputerSystem') keys = { 'Name' : self.domain_name, 'CreationClassName' : cs_class } @@ -562,7 +566,7 @@ return status try: - req_state_change = pywbem.cim_types.Uint16(req_state) + req_state_change = pywbem.cim_types.Uint16(req_state) time_period = pywbem.cim_types.CIMDateTime(req_timeout) cs.RequestStateChange(RequestedState=req_state_change, TimeoutPeriod=time_period) @@ -574,7 +578,7 @@ return FAIL for i in range(1, (poll_time + 1)): - status = self.check_guest_state(server, req_state) + status = self.check_guest_state(server, en_state, req_state) if status == PASS: break @@ -606,7 +610,7 @@ def cim_reboot(self, server, req_time=const.TIME, poll_time=30): return self.cim_state_change(server, const.CIM_REBOOT, - req_time, poll_time) + req_time, poll_time, const.CIM_ENABLE) def cim_reset(self, server, req_time=const.TIME, poll_time=30): return self.cim_state_change(server, const.CIM_RESET,
participants (2)
-
Deepti B Kalakeri
-
Kaitlin Rupert