99 lines
3.5 KiB
Diff
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
|
|
|