diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-07-21 09:47:07 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-07-21 09:47:07 +0100 |
commit | 418ce6a5310a93cb95b1bbd74ee8b56f150cdbf1 (patch) | |
tree | 8c73eeae93d0f1eea5b6b81ebcb419affb87c876 | |
parent | d84cb0723cbab44f52f553ca8769bd72b57325ed (diff) | |
download | xen-418ce6a5310a93cb95b1bbd74ee8b56f150cdbf1.tar.gz xen-418ce6a5310a93cb95b1bbd74ee8b56f150cdbf1.tar.bz2 xen-418ce6a5310a93cb95b1bbd74ee8b56f150cdbf1.zip |
xend: Fix keymap handling
Patch allows keymap to be specified inside vfb description and
allows VM configured keymap setting to override XenD default
Signed-off-by: Pat Campbell <plc@novell.com>
-rw-r--r-- | tools/python/xen/xend/image.py | 4 | ||||
-rw-r--r-- | tools/python/xen/xm/create.py | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 615e56da0f..3b1fc4225c 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -265,9 +265,12 @@ class ImageHandler: has_vnc = int(vmConfig['platform'].get('vnc', 0)) != 0 has_sdl = int(vmConfig['platform'].get('sdl', 0)) != 0 opengl = 1 + keymap = vmConfig['platform'].get("keymap") for dev_uuid in vmConfig['console_refs']: dev_type, dev_info = vmConfig['devices'][dev_uuid] if dev_type == 'vfb': + if 'keymap' in dev_info: + keymap = dev_info.get('keymap',{}) vfb_type = dev_info.get('type', {}) if vfb_type == 'sdl': self.display = dev_info.get('display', {}) @@ -279,7 +282,6 @@ class ImageHandler: has_vnc = True break - keymap = vmConfig['platform'].get("keymap") if keymap: ret.append("-k") ret.append(keymap) diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index cef72c63f3..30d2ce18bd 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -325,7 +325,7 @@ gopts.var('irq', val='IRQ', For example 'irq=7'. This option may be repeated to add more than one IRQ.""") -gopts.var('vfb', val="type={vnc,sdl},vncunused=1,vncdisplay=N,vnclisten=ADDR,display=DISPLAY,xauthority=XAUTHORITY,vncpasswd=PASSWORD,opengl=1", +gopts.var('vfb', val="type={vnc,sdl},vncunused=1,vncdisplay=N,vnclisten=ADDR,display=DISPLAY,xauthority=XAUTHORITY,vncpasswd=PASSWORD,opengl=1,keymap=FILE", fn=append_value, default=[], use="""Make the domain a framebuffer backend. The backend type should be either sdl or vnc. @@ -336,7 +336,8 @@ gopts.var('vfb', val="type={vnc,sdl},vncunused=1,vncdisplay=N,vnclisten=ADDR,dis default password. For type=sdl, a viewer will be started automatically using the given DISPLAY and XAUTHORITY, which default to the current user's - ones. OpenGL will be used by default unless opengl is set to 0.""") + ones. OpenGL will be used by default unless opengl is set to 0. + keymap overrides the XendD configured default layout file.""") gopts.var('vif', val="type=TYPE,mac=MAC,bridge=BRIDGE,ip=IPADDR,script=SCRIPT," + \ "backend=DOM,vifname=NAME,rate=RATE,model=MODEL,accel=ACCEL", @@ -741,7 +742,7 @@ def configure_vfbs(config_devs, vals): for (k,v) in d.iteritems(): if not k in [ 'vnclisten', 'vncunused', 'vncdisplay', 'display', 'videoram', 'xauthority', 'type', 'vncpasswd', - 'opengl' ]: + 'opengl', 'keymap' ]: err("configuration option %s unknown to vfbs" % k) config.append([k,v]) if not d.has_key("keymap"): |