xen/13778_xenapi.patch

99 lines
3.5 KiB
Diff

# HG changeset patch
# User Ewan Mellor <ewan@xensource.com>
# Date 1170344640 0
# Node ID f84ba62ca615e67f297820455c76f4a061e32490
# Parent 1fb0302683d34317d363f5e7b627fb432f1ac19e
Fix SDL option for HVM domains.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
Index: xen-3.0.4-testing/tools/python/xen/xend/image.py
===================================================================
--- xen-3.0.4-testing.orig/tools/python/xen/xend/image.py
+++ xen-3.0.4-testing/tools/python/xen/xend/image.py
@@ -472,48 +472,50 @@ class HVMImageHandler(ImageHandler):
return ret
vnc_config = {}
- has_vfb = False
has_vnc = int(vmConfig['image'].get('vnc', 0)) != 0
+ has_sdl = int(vmConfig['image'].get('sdl', 0)) != 0
for dev_uuid in vmConfig['console_refs']:
dev_type, dev_info = vmConfig['devices'][dev_uuid]
if dev_type == 'vfb':
vnc_config = dev_info.get('other_config', {})
- has_vfb = True
+ has_vnc = True
break
- if not vnc_config:
- for key in ('vncunused', 'vnclisten', 'vncdisplay', 'vncpasswd'):
- if key in vmConfig['image']:
- vnc_config[key] = vmConfig['image'][key]
-
- if not has_vfb and not has_vnc:
- ret.append('-nographic')
- return ret
-
-
- if not vnc_config.get('vncunused', 0) and \
- vnc_config.get('vncdisplay', 0):
- ret.append('-vnc')
- ret.append(str(vncdisplay))
+ if has_vnc:
+ if not vnc_config:
+ for key in ('vncunused', 'vnclisten', 'vncdisplay',
+ 'vncpasswd'):
+ if key in vmConfig['image']:
+ vnc_config[key] = vmConfig['image'][key]
+
+ if not vnc_config.get('vncunused', 0) and \
+ vnc_config.get('vncdisplay', 0):
+ ret.append('-vnc')
+ ret.append(str(vncdisplay))
+ else:
+ ret.append('-vncunused')
+
+ vnclisten = vnc_config.get('vnclisten',
+ XendRoot.instance().get_vnclisten_address())
+ ret.append('-vnclisten')
+ ret.append(str(vnclisten))
+
+ # Store vncpassword in xenstore
+ vncpasswd = vnc_config.get('vncpasswd')
+ if not vncpasswd:
+ vncpasswd = XendRoot.instance().get_vncpasswd_default()
+
+ if vncpasswd is None:
+ raise VmError('vncpasswd is not setup in vmconfig or '
+ 'xend-config.sxp')
+
+ if vncpasswd != '':
+ self.vm.storeVm('vncpasswd', vncpasswd)
+ elif has_sdl:
+ # SDL is default in QEMU.
+ pass
else:
- ret.append('-vncunused')
-
- vnclisten = vnc_config.get('vnclisten',
- XendRoot.instance().get_vnclisten_address())
- ret.append('-vnclisten')
- ret.append(str(vnclisten))
-
- # Store vncpassword in xenstore
- vncpasswd = vnc_config.get('vncpasswd')
- if not vncpasswd:
- vncpasswd = XendRoot.instance().get_vncpasswd_default()
-
- if vncpasswd is None:
- raise VmError('vncpasswd is not setup in vmconfig or '
- 'xend-config.sxp')
-
- if vncpasswd != '':
- self.vm.storeVm('vncpasswd', vncpasswd)
+ ret.append('-nographic')
return ret