Hi All,
I've been working on the ability to set keyboard layout for VNC server as per each
individual VM. Currently the only option is to use engine-config to set the value
globally, e.g. engine-config -s VncKeyboardLayout=en-us. After adding this option to
database and respective entities there were raised valid concerns about why is this option
called VncKeyboardLayout and not just KeyboardLayout as it applies to SPICE equally (note
that also VDSM calls this config value as 'keyboardLayout').
So to achieve consistency I also renamed it in engine-config.properties and set
KeyboardLayout.alternateKey=VncKeyboardLayout. This indeed works for setting
(engine-config -s VncKeyboardLayout=en-us sets KeyboardLayout and engine-config -g
KeyboardLayout works but it is unable to read the value by the alternateKey)
engine-config -g VncKeyboardLayout fails with "no such entry with default
version" in the method EngineConfigLogic.printAllValuesForKey as it is passing the
user given key name directly to database which returns zero results. Setter methods such
as EngineConfigLogic.persistValue use the entity ConfigKey constructed from the user given
key-name which correctly constructs appropriate ConfigKey even when given alternateKey
name.
So I wanted to ask whether this is the desired behaviour (set by alternateKey name but get
only by the primary) or is this a bug? I have also simple patch that fixes this and
enables also getting the config value by alternateKey.
Thank you