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