Kaitlin Rupert wrote:
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1251828184 25200
# Node ID ddb880e221d36151a9f91c3b0ab95f9cca97c2fa
# Parent 95fa64bf447e5bc2bab501564e3d9336edef997d
[TEST] Add try / except to VSMS 15
This will catch any unexpected exceptions. Otherwise, the exception isn't
caught and the guest may not be properly undefined
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 95fa64bf447e -r ddb880e221d3
suites/libvirt-cim/cimtest/VirtualSystemManagementService/15_mod_system_settings.py
---
a/suites/libvirt-cim/cimtest/VirtualSystemManagementService/15_mod_system_settings.py Thu
Aug 27 16:39:53 2009 -0700
+++
b/suites/libvirt-cim/cimtest/VirtualSystemManagementService/15_mod_system_settings.py Tue
Sep 01 11:03:04 2009 -0700
@@ -74,72 +74,71 @@
Though it is not part of the changes in this patch, can you remove the
following import statements from the tc:
remove the import statement for default_network_name
cxml = vxml.get_class(options.virt)(default_dom, vcpus=cpu)
service = vsms.get_vsms_class(options.virt)(options.ip)
- for case in test_cases:
- #Each time through, define guest using a default XML
- cxml.undefine(options.ip)
- cxml = vxml.get_class(options.virt)(default_dom, vcpus=cpu)
- ret = cxml.cim_define(options.ip)
- if not ret:
- logger.error("Failed to define the dom: %s", default_dom)
- cleanup_env(options.ip, cxml)
- return FAIL
+ try:
- if case == "start":
- ret = cxml.start(options.ip)
+ for case in test_cases:
+ #Each time through, define guest using a default XML
+ cxml.undefine(options.ip)
+ cxml = vxml.get_class(options.virt)(default_dom, vcpus=cpu)
+ ret = cxml.cim_define(options.ip)
if not ret:
- logger.error("Failed to start %s", default_dom)
- cleanup_env(options.ip, cxml)
- return FAIL
+ raise Exception("Failed to define the dom: %s", default_dom)
Remove the comma in the Exception statement and use % default instead,
otherwise the exception will be printed as follows, the format string
wont be substituted properly.
ERROR - ('Failed to define the dom: %s', 'rstest_domain')
Instead the above could be
raise Exception("Failed to define the dom: %s" % default_dom)
which would print the exception as below:
ERROR - Failed to define the dom: rstest_domain
- status, inst = get_vssd(options.ip, options.virt, True)
- if status != PASS:
- logger.error("Failed to get the VSSD instance for %s",
default_dom)
- cleanup_env(options.ip, cxml)
- return FAIL
+ if case == "start":
+ ret = cxml.start(options.ip)
+ if not ret:
+ raise Exception("Failed to start %s", default_dom)
Same here Remove the comma in the Exception statement and use % after "
- inst['AutomaticRecoveryAction'] =
pywbem.cim_types.Uint16(RECOVERY_VAL)
- vssd = inst_to_mof(inst)
+ status, inst = get_vssd(options.ip, options.virt, True)
+ if status != PASS:
+ raise Expcetion("Failed to get the VSSD instance for %s",
+ default_dom)
Same here Remove the comma in the Exception statement and use % after "
- ret = service.ModifySystemSettings(SystemSettings=vssd)
- curr_cim_rev, changeset = get_provider_version(options.virt, options.ip)
- if curr_cim_rev >= libvirt_modify_setting_changes:
- if ret[0] != 0:
- logger.error("Failed to modify dom: %s", default_dom)
- cleanup_env(options.ip, cxml)
- return FAIL
+ val = pywbem.cim_types.Uint16(RECOVERY_VAL)
+ inst['AutomaticRecoveryAction'] = val
+ vssd = inst_to_mof(inst)
- if case == "start":
- #This should be replaced with a RSC to shutdownt he guest
- cxml.destroy(options.ip)
- status, cs = poll_for_state_change(options.ip, options.virt,
- default_dom, DEFINED_STATE)
+ ret = service.ModifySystemSettings(SystemSettings=vssd)
+ curr_cim_rev, changeset = get_provider_version(options.virt,
+ options.ip)
+ if curr_cim_rev >= libvirt_modify_setting_changes:
+ if ret[0] != 0:
+ raise Exception("Failed to modify dom: %s", default_dom)
+
+ if case == "start":
+ #This should be replaced with a RSC to shutdownt he guest
+ cxml.destroy(options.ip)
+ status, cs = poll_for_state_change(options.ip, options.virt,
+ default_dom, DEFINED_STATE)
you can use cim_destroy() instead.
+ if status != PASS:
+ raise Exception("Failed to destroy %s", default_dom)
Same here Remove the comma in the Exception statement and use % after "
+
+ status, inst = get_vssd(options.ip, options.virt, False)
if status != PASS:
- logger.error("Failed to destroy %s", default_dom)
- cleanup_env(options.ip, cxml)
- return FAIL
+ raise Exception("Failed to get the VSSD instance for %s",
+ default_dom)
Same here Remove the comma in the Exception statement and use % after "
- status, inst = get_vssd(options.ip, options.virt, False)
- if status != PASS:
- logger.error("Failed to get the VSSD instance for %s",
default_dom)
- cleanup_env(options.ip, cxml)
- return FAIL
+ if inst.AutomaticRecoveryAction != RECOVERY_VAL:
+ logger.error("Exp AutomaticRecoveryAction=%d, got %d",
+ RECOVERY_VAL, inst.AutomaticRecoveryAction)
+ raise Exception("%s not updated properly.", default_dom)
Same here Remove the comma in the Exception statement and use % after "
- if inst.AutomaticRecoveryAction != RECOVERY_VAL:
- logger.error("%s not updated properly.", default_dom)
- logger.error("Exp AutomaticRecoveryAction=%d, got %d",
RECOVERY_VAL,
- inst.AutomaticRecoveryAction)
- cleanup_env(options.ip, cxml)
- curr_cim_rev, changeset = get_provider_version(options.virt, options.ip)
- if curr_cim_rev <= libvirt_f9_revision and options.virt ==
"KVM":
- return XFAIL_RC(f9_bug)
+ status = PASS
- if options.virt == "LXC":
- return XFAIL_RC(bug)
- return FAIL
+ except Exception, details:
+ logger.error(details)
+ status = FAIL
cleanup_env(options.ip, cxml)
- return PASS
+ curr_cim_rev, changeset = get_provider_version(options.virt, options.ip)
+ if curr_cim_rev <= libvirt_f9_revision and options.virt == "KVM":
+ return XFAIL_RC(f9_bug)
+
+ if options.virt == "LXC":
+ return XFAIL_RC(bug)
+
+ return status
if __name__ == "__main__":
sys.exit(main())
_______________________________________________
Libvirt-cim mailing list
Libvirt-cim(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-cim
--
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik(a)linux.vnet.ibm.com