[PATCH] [TEST] Some VirtualSystemManagementService -t 02_destroysystem.py cleanup

# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1214852675 25200 # Node ID 7d3d5dcffad210d1da9f208ce1881f391a21ba9e # Parent 692121d37b3aefafce0d6856d81468add629514d [TEST] Some VirtualSystemManagementService -t 02_destroysystem.py cleanup. Add checks to see if the define() / start() calls pass. Added cleanup_env() function to destroy()/undefine() guest in case of error. Ensure status is set to PASS only if the guest is not found in the domain list after the DestroySystem() call is made. Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com> diff -r 692121d37b3a -r 7d3d5dcffad2 suites/libvirt-cim/cimtest/VirtualSystemManagementService/02_destroysystem.py --- a/suites/libvirt-cim/cimtest/VirtualSystemManagementService/02_destroysystem.py Mon Jun 30 09:58:36 2008 -0700 +++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementService/02_destroysystem.py Mon Jun 30 12:04:35 2008 -0700 @@ -35,47 +35,53 @@ sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] default_dom = 'test_domain' +def cleanup_env(ip, cxml): + cxml.destroy(ip) + cxml.undefine(ip) + @do_main(sup_types) def main(): options = main.options service = vsms.get_vsms_class(options.virt)(options.ip) cxml = vxml.get_class(options.virt)(default_dom) - cxml.define(options.ip) - cxml.start(options.ip) + ret = cxml.define(options.ip) + if not ret: + logger.error("Failed to define the dom: %s", default_dom) + return FAIL + ret = cxml.start(options.ip) + if not ret: + logger.error("Failed to define the dom: %s", default_dom) + cleanup_env(options.ip, cxml) + return FAIL classname = get_typed_class(options.virt, 'ComputerSystem') cs_ref = CIMInstanceName(classname, keybindings = { 'Name':default_dom, 'CreationClassName':classname}) list_before = domain_list(options.ip, options.virt) - status = PASS - rc = -1 + if default_dom not in list_before: + logger.error("Domain not in domain list") + cleanup_env(options.ip, cxml) + return FAIL try: service.DestroySystem(AffectedSystem=cs_ref) - rc = 0 except Exception, details: logger.error('Unknow exception happened') logger.error(details) - status = FAIL + cleanup_env(options.ip, cxml) + return FAIL list_after = domain_list(options.ip, options.virt) - status = PASS - if default_dom not in list_before: - logger.error("Domain not started, check config") + if default_dom in list_after: + logger.error("Domain %s not destroyed: provider didn't return error" % \ + default_dom) + cleanup_env(options.ip, cxml) status = FAIL else: - destroyed = set(list_before) - set(list_after) - if len(destroyed) != 1: - logger.error("Destroyed multiple domains") - status = FAIL - elif default_dom not in destroyed: - logger.error("Wrong domain destroyed") - status = FAIL - - cxml.undefine(options.ip) + status = PASS return status

libvirt-cim-bounces@redhat.com wrote on 2008-07-01 03:04:41:
# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1214852675 25200 # Node ID 7d3d5dcffad210d1da9f208ce1881f391a21ba9e # Parent 692121d37b3aefafce0d6856d81468add629514d [TEST] Some VirtualSystemManagementService -t 02_destroysystem.py cleanup.
Add checks to see if the define() / start() calls pass. Added cleanup_env() function to destroy()/undefine() guest in case of error. Ensure status is set to PASS only if the guest is not found in the domain list after the DestroySystem() call is made.
Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com>
diff -r 692121d37b3a -r 7d3d5dcffad2 suites/libvirt- cim/cimtest/VirtualSystemManagementService/02_destroysystem.py --- a/suites/libvirt- cim/cimtest/VirtualSystemManagementService/02_destroysystem.py Mon Jun 30 09:58:36 2008 -0700 +++ b/suites/libvirt- cim/cimtest/VirtualSystemManagementService/02_destroysystem.py Mon Jun 30 12:04:35 2008 -0700 @@ -35,47 +35,53 @@ sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] default_dom = 'test_domain'
+def cleanup_env(ip, cxml): + cxml.destroy(ip) + cxml.undefine(ip) + @do_main(sup_types) def main(): options = main.options
service = vsms.get_vsms_class(options.virt)(options.ip) cxml = vxml.get_class(options.virt)(default_dom) - cxml.define(options.ip) - cxml.start(options.ip) + ret = cxml.define(options.ip) + if not ret: + logger.error("Failed to define the dom: %s", default_dom) + return FAIL + ret = cxml.start(options.ip) + if not ret: + logger.error("Failed to define the dom: %s", default_dom)
It's better to log the error as "logger.error("Failed to create(or start) the dom: %s", default_dom)", which more reflect the actual failure.
+ cleanup_env(options.ip, cxml) + return FAIL
classname = get_typed_class(options.virt, 'ComputerSystem') cs_ref = CIMInstanceName(classname, keybindings = { 'Name':default_dom, 'CreationClassName':classname}) list_before = domain_list(options.ip, options.virt) - status = PASS - rc = -1 + if default_dom not in list_before: + logger.error("Domain not in domain list") + cleanup_env(options.ip, cxml) + return FAIL
try: service.DestroySystem(AffectedSystem=cs_ref) - rc = 0 except Exception, details: logger.error('Unknow exception happened') logger.error(details) - status = FAIL + cleanup_env(options.ip, cxml) + return FAIL
list_after = domain_list(options.ip, options.virt)
- status = PASS - if default_dom not in list_before: - logger.error("Domain not started, check config") + if default_dom in list_after: + logger.error("Domain %s not destroyed: provider didn't return error" % \ + default_dom) + cleanup_env(options.ip, cxml) status = FAIL else: - destroyed = set(list_before) - set(list_after) - if len(destroyed) != 1: - logger.error("Destroyed multiple domains") - status = FAIL - elif default_dom not in destroyed: - logger.error("Wrong domain destroyed") - status = FAIL - - cxml.undefine(options.ip) + status = PASS
return status
_______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim

+ ret = cxml.define(options.ip) + if not ret: + logger.error("Failed to define the dom: %s", default_dom) + return FAIL + ret = cxml.start(options.ip) + if not ret: + logger.error("Failed to define the dom: %s", default_dom)
It's better to log the error as "logger.error("Failed to create(or start) the dom: %s", default_dom)", which more reflect the actual failure.
Yes, good catch - thanks! I had a copy/paste error here. I'll change it to be "Failed to start the dom: %s" since we're starting it (not creating it). -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com
participants (2)
-
Guo Lian Yun
-
Kaitlin Rupert