Dube, Lutz
2010-Jul-21 07:58 UTC
[Xen-devel] Error in Xend-API method VM_set_actions_after_crash
Xend-API defines the method VM_set_actions_after_crash with vaild action names coredump_and_destroy, coredump_and_restart,... . These values have to be converted into internal representation "coredump-destroy", "coredump-restart", ... otherwise start of the domain is rejected. Same error occurs, if I try to create a VM using the Xend-API with actions_after_crash set to coredump_and_destroy. Signed-off-by: Lutz Dube Lutz.Dube@ts.fujitsu.com diff -r 8963f83ba73b -r dcd575d8a83b tools/python/xen/xend/XendAPI.py --- a/tools/python/xen/xend/XendAPI.py Tue Jul 20 17:56:07 2010 +0100 +++ b/tools/python/xen/xend/XendAPI.py Wed Jul 21 09:52:10 2010 +0200 @@ -1701,7 +1701,8 @@ def VM_set_actions_after_crash(self, session, vm_ref, action): if action not in XEN_API_ON_CRASH_BEHAVIOUR: return xen_api_error([''VM_ON_CRASH_BEHAVIOUR_INVALID'', vm_ref]) - return self.VM_set(''actions_after_crash'', session, vm_ref, action) + return self.VM_set(''actions_after_crash'', session, vm_ref, + XEN_API_ON_CRASH_BEHAVIOUR_LEGACY[action]) def VM_set_HVM_boot_policy(self, session, vm_ref, value): if value != "" and value != "BIOS order": diff -r 8963f83ba73b -r dcd575d8a83b tools/python/xen/xend/XendAPIConstants.py --- a/tools/python/xen/xend/XendAPIConstants.py Tue Jul 20 17:56:07 2010 +0100 +++ b/tools/python/xen/xend/XendAPIConstants.py Wed Jul 21 09:52:10 2010 +0200 @@ -63,6 +63,18 @@ ''rename_restart'' : ''rename_restart'', } +XEN_API_ON_CRASH_BEHAVIOUR_LEGACY = { + ''destroy'' : ''destroy'', + ''coredump-destroy'' : ''coredump-destroy'', + ''coredump_and_destroy'' : ''coredump-destroy'', + ''restart'' : ''restart'', + ''coredump-restart'' : ''coredump-restart'', + ''coredump_and_restart'' : ''coredump-restart'', + ''preserve'' : ''preserve'', + ''rename-restart'' : ''rename-restart'', + ''rename_restart'' : ''rename-restart'', +} + XEN_API_VBD_MODE = [''RO'', ''RW''] XEN_API_VDI_TYPE = [''system'', ''user'', ''ephemeral''] XEN_API_VBD_TYPE = [''CD'', ''Disk''] diff -r 8963f83ba73b -r dcd575d8a83b tools/python/xen/xend/XendConfig.py --- a/tools/python/xen/xend/XendConfig.py Tue Jul 20 17:56:07 2010 +0100 +++ b/tools/python/xen/xend/XendConfig.py Wed Jul 21 09:52:10 2010 +0200 @@ -41,6 +41,7 @@ from xen.xend.XendSXPDev import dev_dict_to_sxp from xen.util import xsconstants from xen.util import auxbin +from xen.xend.XendAPIConstants import * import xen.util.fileuri log = logging.getLogger("xend.XendConfig") @@ -61,6 +62,11 @@ def bool0(v): return v != ''0'' and v != ''False'' and bool(v) + +def convert_on_crash(v): + v = str(v) + return XEN_API_ON_CRASH_BEHAVIOUR_LEGACY[v] \ + if v in XEN_API_ON_CRASH_BEHAVIOUR else v # Recursively copy a data struct, scrubbing out VNC passwords. # Will scrub any dict entry with a key of ''vncpasswd'' or any @@ -212,7 +218,7 @@ ''VCPUs_live'': int, ''actions_after_shutdown'': str, ''actions_after_reboot'': str, - ''actions_after_crash'': str, + ''actions_after_crash'': convert_on_crash, ''PV_bootloader'': str, ''PV_kernel'': str, ''PV_ramdisk'': str, Best regards Lutz Dube Softwareentwickler TSP ES&S SWE OS7 FUJITSU TECHNOLOGY SOLUTIONS GMBH Domagkstr. 28 D-80807 München Telefon: +49 (0)89 3222 2688 Telefax: +49 (0)89 3222 329 2688 Email: Lutz Dube@ts.fujitsu.com Internet: http://ts.fujitsu.com<http://ts.fujitsu.com/> Firmenangaben: http://de.ts.fujitsu.com/imprint.html _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel