[PATCH] [TEST] #3 Fix CS 22 to use providers instead of virsh

# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1216661611 25200 # Node ID abcd4c8a873656b6f12c4416832d185f8c9eb151 # Parent 18d3c235f0c893f934aaf61f9a1de22ed6f3dd60 [TEST] #3 Fix CS 22 to use providers instead of virsh. This test was defining a guest with virsh and then suspending it with virsh, which doesn't touch the providers in anyway. Now the test calls DefineSystem() and RequestStateChange(). Updates from 1 to 2: -Add check to verify guest is the expected state after the RequestStateChange() call. -Create a network pool because the VSMS provider requires a network pool to exist in order to create a guest. Updates from 2 to 3: -Remove destroy_netpool() if create_netpool_conf() fails. This is not needed. Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com> diff -r 18d3c235f0c8 -r abcd4c8a8736 suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py --- a/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py Mon Jul 21 09:51:33 2008 -0700 +++ b/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py Mon Jul 21 10:33:31 2008 -0700 @@ -32,54 +32,71 @@ from XenKvmLib import computersystem from VirtLib import utils from XenKvmLib import vxml -from XenKvmLib.test_doms import destroy_and_undefine_all -from CimTest.Globals import do_main -from CimTest import Globals +from XenKvmLib.test_doms import destroy_and_undefine_domain +from CimTest.Globals import do_main, logger from CimTest.ReturnCodes import PASS, FAIL +from XenKvmLib.common_util import create_using_definesystem, \ + call_request_state_change, get_cs_instance, \ + create_netpool_conf, destroy_netpool sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] test_dom = "domgst" +DEFINE_STATE = 3 +SUSPND_STATE = 9 +TIME = "00000000000000.000000:000" + +def chk_state(domain_name, ip, en_state, virt): + rc, cs = get_cs_instance(domain_name, ip, virt) + if rc != 0: + return rc + + if cs.EnabledState != en_state: + logger.error("EnabledState should be %d not %d", + en_state, cs.EnabledState) + return FAIL + + return PASS + @do_main(sup_types) def main(): options = main.options - status = FAIL - - cxml = vxml.get_class(options.virt)(test_dom) -#define VS + status, test_network = create_netpool_conf(options.ip, options.virt) + if status != PASS: + return FAIL + try: - ret = cxml.define(options.ip) - if not ret: - Globals.logger.error(Globals.VIRSH_ERROR_DEFINE % test_dom) - return status - - cs = computersystem.get_cs_class(options.virt)(options.ip, test_dom) - if not (cs.Name == test_dom) : - Globals.logger.error("Error: VS %s not found" % test_dom) - cxml.undefine(options.ip) + # define the vs + status = create_using_definesystem(test_dom, options.ip, + virt=options.virt) + if status != PASS: + logger.error("Unable to define %s using DefineSystem()" % test_dom) + destroy_netpool(options.ip, options.virt, test_network) return status - except Exception, detail: - Globals.logger.error("Errors: %s" % detail) + # suspend the vs + status = call_request_state_change(test_dom, options.ip, SUSPND_STATE, + TIME, virt=options.virt) + if status != PASS: + logger.info("Suspending defined %s failed, as expected" % test_dom) + status = PASS -#Suspend the defined VS - - try: - ret = cxml.run_virsh_cmd(options.ip, "suspend") - if not ret : - Globals.logger.info("Suspending defined VS %s failed, as expected" \ -% test_dom) - status = PASS + status = chk_state(test_dom, options.ip, DEFINE_STATE, options.virt) + if status != PASS: + logger.error("%s not in defined state as expected." % test_dom) + status = FAIL + else : - Globals.logger.info("Error: Suspending defined VS %s should not \ -have been allowed" % test_dom) + logger.error("Suspending defined %s should have failed" % test_dom) status = FAIL except Exception, detail: - Globals.logger.error("Error: %s" % detail) + logger.error("Error: %s" % detail) + status = FAIL - ret = cxml.undefine(options.ip) + destroy_netpool(options.ip, options.virt, test_network) + destroy_and_undefine_domain(test_dom, options.ip, options.virt) return status if __name__ == "__main__":

# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1216661611 25200 # Node ID abcd4c8a873656b6f12c4416832d185f8c9eb151 # Parent 18d3c235f0c893f934aaf61f9a1de22ed6f3dd60 [TEST] #3 Fix CS 22 to use providers instead of virsh.
This test was defining a guest with virsh and then suspending it with virsh, which doesn't touch the providers in anyway. Now the test calls DefineSystem() and RequestStateChange().
Updates from 1 to 2: -Add check to verify guest is the expected state after the RequestStateChange() call. -Create a network pool because the VSMS provider requires a network pool to exist in order to create a guest.
Updates from 2 to 3: -Remove destroy_netpool() if create_netpool_conf() fails. This is not needed.
Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com>
diff -r 18d3c235f0c8 -r abcd4c8a8736 suites/libvirt- cim/cimtest/ComputerSystem/22_define_suspend.py --- a/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py Mon Jul 21 09:51:33 2008 -0700 +++ b/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py Mon Jul 21 10:33:31 2008 -0700 @@ -32,54 +32,71 @@ from XenKvmLib import computersystem from VirtLib import utils from XenKvmLib import vxml -from XenKvmLib.test_doms import destroy_and_undefine_all -from CimTest.Globals import do_main -from CimTest import Globals +from XenKvmLib.test_doms import destroy_and_undefine_domain +from CimTest.Globals import do_main, logger from CimTest.ReturnCodes import PASS, FAIL +from XenKvmLib.common_util import create_using_definesystem, \ + call_request_state_change, get_cs_instance, \ + create_netpool_conf, destroy_netpool
sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] test_dom = "domgst"
+DEFINE_STATE = 3 +SUSPND_STATE = 9 +TIME = "00000000000000.000000:000" + +def chk_state(domain_name, ip, en_state, virt): + rc, cs = get_cs_instance(domain_name, ip, virt) + if rc != 0: + return rc + + if cs.EnabledState != en_state: + logger.error("EnabledState should be %d not %d", + en_state, cs.EnabledState) + return FAIL + + return PASS + @do_main(sup_types) def main(): options = main.options - status = FAIL - - cxml = vxml.get_class(options.virt)(test_dom)
-#define VS + status, test_network = create_netpool_conf(options.ip,
+1 from me! Best, Regards Daisy (运国莲) VSM Team, China Systems & Technology Labs (CSTL) E-mail: yunguol@cn.ibm.com TEL: (86)-21-60922403 Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203 libvirt-cim-bounces@redhat.com wrote on 2008-07-22 01:36:35: options.virt)
+ if status != PASS: + return FAIL + try: - ret = cxml.define(options.ip) - if not ret: - Globals.logger.error(Globals.VIRSH_ERROR_DEFINE % test_dom) - return status - - cs = computersystem.get_cs_class(options.virt)(options.ip, test_dom) - if not (cs.Name == test_dom) : - Globals.logger.error("Error: VS %s not found" % test_dom) - cxml.undefine(options.ip) + # define the vs + status = create_using_definesystem(test_dom, options.ip, + virt=options.virt) + if status != PASS: + logger.error("Unable to define %s using DefineSystem()" % test_dom) + destroy_netpool(options.ip, options.virt, test_network) return status
- except Exception, detail: - Globals.logger.error("Errors: %s" % detail) + # suspend the vs + status = call_request_state_change(test_dom, options.ip, SUSPND_STATE, + TIME, virt=options.virt) + if status != PASS: + logger.info("Suspending defined %s failed, as expected" % test_dom) + status = PASS
-#Suspend the defined VS - - try: - ret = cxml.run_virsh_cmd(options.ip, "suspend") - if not ret : - Globals.logger.info("Suspending defined VS %s failed, as expected" \ -% test_dom) - status = PASS + status = chk_state(test_dom, options.ip, DEFINE_STATE, options.virt) + if status != PASS: + logger.error("%s not in defined state as expected." % test_dom) + status = FAIL + else : - Globals.logger.info("Error: Suspending defined VS %s should not \ -have been allowed" % test_dom) + logger.error("Suspending defined %s should have failed" % test_dom) status = FAIL
except Exception, detail: - Globals.logger.error("Error: %s" % detail) + logger.error("Error: %s" % detail) + status = FAIL
- ret = cxml.undefine(options.ip) + destroy_netpool(options.ip, options.virt, test_network) + destroy_and_undefine_domain(test_dom, options.ip, options.virt) return status
if __name__ == "__main__":
_______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim

Kaitlin Rupert wrote:
# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1216661611 25200 # Node ID abcd4c8a873656b6f12c4416832d185f8c9eb151 # Parent 18d3c235f0c893f934aaf61f9a1de22ed6f3dd60 [TEST] #3 Fix CS 22 to use providers instead of virsh.
This test was defining a guest with virsh and then suspending it with virsh, which doesn't touch the providers in anyway. Now the test calls DefineSystem() and RequestStateChange().
Updates from 1 to 2: -Add check to verify guest is the expected state after the RequestStateChange() call. -Create a network pool because the VSMS provider requires a network pool to exist in order to create a guest.
Updates from 2 to 3: -Remove destroy_netpool() if create_netpool_conf() fails. This is not needed.
Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com>
diff -r 18d3c235f0c8 -r abcd4c8a8736 suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py --- a/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py Mon Jul 21 09:51:33 2008 -0700 +++ b/suites/libvirt-cim/cimtest/ComputerSystem/22_define_suspend.py Mon Jul 21 10:33:31 2008 -0700 @@ -32,54 +32,71 @@ from XenKvmLib import computersystem from VirtLib import utils from XenKvmLib import vxml -from XenKvmLib.test_doms import destroy_and_undefine_all -from CimTest.Globals import do_main -from CimTest import Globals +from XenKvmLib.test_doms import destroy_and_undefine_domain +from CimTest.Globals import do_main, logger from CimTest.ReturnCodes import PASS, FAIL +from XenKvmLib.common_util import create_using_definesystem, \ + call_request_state_change, get_cs_instance, \ + create_netpool_conf, destroy_netpool
sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] test_dom = "domgst"
+DEFINE_STATE = 3 +SUSPND_STATE = 9 +TIME = "00000000000000.000000:000" + +def chk_state(domain_name, ip, en_state, virt): + rc, cs = get_cs_instance(domain_name, ip, virt) + if rc != 0: + return rc + + if cs.EnabledState != en_state: + logger.error("EnabledState should be %d not %d", + en_state, cs.EnabledState) + return FAIL + + return PASS + @do_main(sup_types) def main(): options = main.options - status = FAIL - - cxml = vxml.get_class(options.virt)(test_dom)
-#define VS + status, test_network = create_netpool_conf(options.ip, options.virt) + if status != PASS: + return FAIL + try: - ret = cxml.define(options.ip) - if not ret: - Globals.logger.error(Globals.VIRSH_ERROR_DEFINE % test_dom) - return status - - cs = computersystem.get_cs_class(options.virt)(options.ip, test_dom) - if not (cs.Name == test_dom) : - Globals.logger.error("Error: VS %s not found" % test_dom) - cxml.undefine(options.ip) + # define the vs + status = create_using_definesystem(test_dom, options.ip, + virt=options.virt) + if status != PASS: + logger.error("Unable to define %s using DefineSystem()" % test_dom) + destroy_netpool(options.ip, options.virt, test_network) return status
- except Exception, detail: - Globals.logger.error("Errors: %s" % detail) + # suspend the vs + status = call_request_state_change(test_dom, options.ip, SUSPND_STATE, + TIME, virt=options.virt) + if status != PASS: + logger.info("Suspending defined %s failed, as expected" % test_dom) + status = PASS
-#Suspend the defined VS - - try: - ret = cxml.run_virsh_cmd(options.ip, "suspend") - if not ret : - Globals.logger.info("Suspending defined VS %s failed, as expected" \ -% test_dom) - status = PASS + status = chk_state(test_dom, options.ip, DEFINE_STATE, options.virt) + if status != PASS: + logger.error("%s not in defined state as expected." % test_dom)
The log message is misleading. It gives me a feeling that domgst is not in defined state and it is expected state for the domgst. Can we chop off the "as expected" part? or have log stmt something like "%s should have been in defined state" ?? If you still feel the log stmt which you have used is correct, then you can ignore my comment. otherwise +1 for me. Thanks and Regards, Deepti.
+ status = FAIL + else : - Globals.logger.info("Error: Suspending defined VS %s should not \ -have been allowed" % test_dom) + logger.error("Suspending defined %s should have failed" % test_dom) status = FAIL
except Exception, detail: - Globals.logger.error("Error: %s" % detail) + logger.error("Error: %s" % detail) + status = FAIL
- ret = cxml.undefine(options.ip) + destroy_netpool(options.ip, options.virt, test_network) + destroy_and_undefine_domain(test_dom, options.ip, options.virt) return status
if __name__ == "__main__":
_______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim

- status = PASS + status = chk_state(test_dom, options.ip, DEFINE_STATE, options.virt) + if status != PASS: + logger.error("%s not in defined state as expected." % test_dom)
The log message is misleading. It gives me a feeling that domgst is not in defined state and it is expected state for the domgst. Can we chop off the "as expected" part? or have log stmt something like "%s should have been in defined state" ??
Sure, I'll change it to "%s should have been in defined state" - this log message is more clear. Thanks! -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com
participants (3)
-
Deepti B Kalakeri
-
Guo Lian Yun
-
Kaitlin Rupert