27 lines
1.3 KiB
Diff
27 lines
1.3 KiB
Diff
|
Only add cpuid and cpuid_check to sexpr once
|
||
|
|
||
|
When converting a XendConfig object to sexpr, cpuid and cpuid_check
|
||
|
were being emitted twice in the resulting sexpr. The first conversion
|
||
|
writes incorrect sexpr, causing parsing of the sexpr to fail when xend
|
||
|
is restarted and domain sexpr files in /var/lib/xend/domains/<dom-uuid>
|
||
|
are read and parsed.
|
||
|
|
||
|
This patch skips the first conversion, and uses only the custom
|
||
|
cpuid{_check} conversion methods called later. It is not pretty, but
|
||
|
is the least invasive fix in this complex code.
|
||
|
Index: xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
|
||
|
===================================================================
|
||
|
--- xen-4.1.2-testing.orig/tools/python/xen/xend/XendConfig.py
|
||
|
+++ xen-4.1.2-testing/tools/python/xen/xend/XendConfig.py
|
||
|
@@ -1125,6 +1125,10 @@ class XendConfig(dict):
|
||
|
else:
|
||
|
for name, typ in XENAPI_CFG_TYPES.items():
|
||
|
if name in self and self[name] not in (None, []):
|
||
|
+ # Skip cpuid and cpuid_check. Custom conversion
|
||
|
+ # methods for these are called below.
|
||
|
+ if name in ("cpuid", "cpuid_check"):
|
||
|
+ continue
|
||
|
if typ == dict:
|
||
|
s = self[name].items()
|
||
|
elif typ == list:
|