Martin Beták has uploaded a new change for review.

Change subject: engine: VncKeyboardLayout [WIP] DO NOT MERGE
......................................................................

engine: VncKeyboardLayout
[WIP] DO NOT MERGE

Added support for per-VM VncKeyboardLayout setting.

Change-Id: Ib73338ce279aa4f14f1332dbdebb1dd0f1cec974
Signed-off-by: Martin Betak <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateHandler.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java
12 files changed, 50 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/11314/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
index 2d0a7ac..cf2e567 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
@@ -291,7 +291,8 @@
                 getParameters().getMasterVm().getDefaultBootSequence(), 
getParameters()
                         .getMasterVm().getVmType(),
                 getParameters().getMasterVm().isSmartcardEnabled(),
-                getParameters().getMasterVm().isDeleteProtected()));
+                getParameters().getMasterVm().isDeleteProtected(),
+                getParameters().getMasterVm().getVncKeyboardLayout()));
         
getVmTemplate().setAutoStartup(getParameters().getMasterVm().isAutoStartup());
         
getVmTemplate().setPriority(getParameters().getMasterVm().getPriority());
         
getVmTemplate().setDefaultDisplayType(getParameters().getMasterVm().getDefaultDisplayType());
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
index b964955..eaf0835 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
@@ -88,7 +88,8 @@
                 "images", // images list is relational entity - ignore value 
changes
                 "interfaces", // interfaces is relational entity - ignore 
value changes
                 "useHostCpuFlags",
-                "quotaDefault"
+                "quotaDefault",
+                "vncKeyboardLayout"
         });
         mUpdateVmsStatic.AddFields(
                 Arrays.asList(new Enum<?>[] { VMStatus.Down }),
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateHandler.java
index 39d6647..690d5f1 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmTemplateHandler.java
@@ -36,7 +36,7 @@
                 "isoPath", "diskImageMap", "defaultDisplayType", "priority", 
"autoStartup", "stateless",
                 "initrdUrl", "kernelUrl", "kernelParams", "images", 
"interfaces", "quotaId", "quotaName",
                 "quotaEnforcementType", "migrationSupport", 
"dedicatedVmForVds", "smartcardEnabled","dbGeneration", "deleteProtected",
-                "quotaDefault"
+                "quotaDefault", "vncKeyboardLayout",
         });
     }
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java
index a0ab10d..23f781c 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java
@@ -387,6 +387,14 @@
         return vmStatic.isDeleteProtected();
     }
 
+    public String getVncKeyboardLayout() {
+        return vmStatic.getVncKeyboardLayout();
+    }
+
+    public void setVncKeyboardLayout(String vncKeyboardLayout) {
+        vmStatic.setVncKeyboardLayout(vncKeyboardLayout);
+    }
+
     public DisplayType getDefaultDisplayType() {
         return vmStatic.getDefaultDisplayType();
     }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java
index 4cf0e9f..7b838cc 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java
@@ -187,6 +187,9 @@
     @Enumerated
     protected DisplayType defaultDisplayType = DisplayType.qxl;
 
+    @Column(name = "vnc_keyboard_layout")
+    private String vncKeyboardLayout;
+
     public VmBase(Guid id,
             Guid vdsGroupId,
             VmOsType os,
@@ -214,7 +217,8 @@
             String initrdUrl,
             Guid quotaId,
             boolean smartcardEnabled,
-            boolean deleteProtected) {
+            boolean deleteProtected,
+            String vncKeyboardLayout) {
         super();
         this.id = id;
         this.vdsGroupId = vdsGroupId;
@@ -243,6 +247,7 @@
         this.initrdUrl = initrdUrl;
         this.smartcardEnabled = smartcardEnabled;
         this.deleteProtected = deleteProtected;
+        this.vncKeyboardLayout = vncKeyboardLayout;
         setQuotaId(quotaId);
     }
 
@@ -538,6 +543,14 @@
         this.deleteProtected = deleteProtected;
     }
 
+    public String getVncKeyboardLayout() {
+        return vncKeyboardLayout;
+    }
+
+    public void setVncKeyboardLayout(String vncKeyboardLayout) {
+        this.vncKeyboardLayout = vncKeyboardLayout;
+    }
+
     @Override
     public int hashCode() {
         final int prime = 31;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java
index 343d811..8cd210c 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmStatic.java
@@ -106,7 +106,8 @@
                 vmStatic.getInitrdUrl(),
                 vmStatic.getQuotaId(),
                 vmStatic.isSmartcardEnabled(),
-                vmStatic.isDeleteProtected());
+                vmStatic.isDeleteProtected(),
+                vmStatic.getVncKeyboardLayout());
         name = vmStatic.getVmName();
         vmtGuid = vmStatic.getVmtGuid();
         setCustomProperties(vmStatic.getCustomProperties());
@@ -127,7 +128,8 @@
             int numOfMonitors,
             UsbPolicy usb_policy, String time_zone, boolean auto_startup, 
boolean is_stateless, boolean fail_back,
             BootSequence default_boot_sequence, VmType vm_type,
-            int minAllocatedMem, Guid quotaGuid, boolean smartcardEnabled, 
boolean deleteProtected, boolean useHostCpuFlags) {
+            int minAllocatedMem, Guid quotaGuid, boolean smartcardEnabled, 
boolean deleteProtected, boolean useHostCpuFlags,
+            String vncKeyboardLayout) {
         super(vm_guid,
                 vds_group_id,
                 os,
@@ -155,7 +157,8 @@
                 null,
                 quotaGuid,
                 smartcardEnabled,
-                deleteProtected);
+                deleteProtected,
+                vncKeyboardLayout);
 
         this.name = vm_name;
         this.vmtGuid = vmt_guid;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
index c57df7d..e5eb2fd 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java
@@ -91,7 +91,7 @@
             int num_of_sockets, int cpu_per_socket, VmOsType os, Guid 
vds_group_id, Guid vmt_guid, String domain,
             int num_of_monitors, int status, int usb_policy, String time_zone, 
boolean is_auto_suspend, int nice_level,
             boolean fail_back, BootSequence default_boot_sequence, VmType 
vm_type,
-            boolean smartcardEnabled, boolean deleteProtected) {
+            boolean smartcardEnabled, boolean deleteProtected, String 
vncKeyboardLayout) {
         super(vmt_guid,
                 vds_group_id,
                 os,
@@ -119,7 +119,8 @@
                 null,
                 null,
                 smartcardEnabled,
-                deleteProtected);
+                deleteProtected,
+                vncKeyboardLayout);
 
         diskTemplateMap = new HashMap<Guid, DiskImage>();
 
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
index 0d5cb36..83537ef 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java
@@ -41,6 +41,7 @@
         entity.setInitrdUrl(rs.getString("initrd_url"));
         entity.setSmartcardEnabled(rs.getBoolean("is_smartcard_enabled"));
         entity.setDeleteProtected(rs.getBoolean("is_delete_protected"));
+        entity.setVncKeyboardLayout(rs.getString("vnc_keyboard_layout"));
     }
 
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
index 49ffba1..fa70519 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
@@ -232,7 +232,8 @@
                 .addValue("min_allocated_mem", vm.getMinAllocatedMem())
                 .addValue("cpu_pinning", vm.getCpuPinning())
                 .addValue("host_cpu_flags", vm.isUseHostCpuFlags())
-                .addValue("guest_agent_nics_hash", 
vm.getGuestAgentNicsHash()));
+                .addValue("guest_agent_nics_hash", vm.getGuestAgentNicsHash())
+                .addValue("vnc_keyboard_layout", vm.getVncKeyboardLayout()));
     }
 
     @Override
@@ -361,6 +362,7 @@
             entity.setCpuPinning(rs.getString("cpu_pinning"));
             entity.setUseHostCpuFlags(rs.getBoolean("host_cpu_flags"));
             entity.setGuestAgentNicsHash(rs.getInt("guest_agent_nics_hash"));
+            entity.setVncKeyboardLayout(rs.getString("vnc_keyboard_layout"));
             return entity;
         }
     }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
index 411f5a3..5cf2e38 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java
@@ -83,7 +83,8 @@
                 .addValue("quota_id", vm.getQuotaId())
                 .addValue("allow_console_reconnect", 
vm.isAllowConsoleReconnect())
                 .addValue("cpu_pinning", vm.getCpuPinning())
-                .addValue("host_cpu_flags", vm.isUseHostCpuFlags());
+                .addValue("host_cpu_flags", vm.isUseHostCpuFlags())
+                .addValue("vnc_keyboard_layout", vm.getVncKeyboardLayout());
     }
 
     @Override
@@ -199,6 +200,7 @@
             
entity.setQuotaId(Guid.createGuidFromString(rs.getString("quota_id")));
             entity.setCpuPinning(rs.getString("cpu_pinning"));
             entity.setUseHostCpuFlags(rs.getBoolean("host_cpu_flags"));
+            entity.setVncKeyboardLayout(rs.getString("vnc_keyboard_layout"));
 
             return entity;
         }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
index 036bc4a..2d13cf4 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java
@@ -164,7 +164,8 @@
                 .addValue("is_disabled", template.isDisabled())
                 .addValue("quota_id", template.getQuotaId())
                 .addValue("migration_support", 
template.getMigrationSupport().getValue())
-                .addValue("dedicated_vm_for_vds", 
template.getDedicatedVmForVds());
+                .addValue("dedicated_vm_for_vds", 
template.getDedicatedVmForVds())
+                .addValue("vnc_keyboard_layout", 
template.getVncKeyboardLayout());
     }
 
     @Override
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java
index 0b6de75..d53ae33 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java
@@ -87,8 +87,11 @@
             createInfo.add(VdsProperties.hiberVolHandle,
                     vm.getHibernationVolHandle());
         }
-        createInfo.add(VdsProperties.KeyboardLayout,
-                Config.<String> GetValue(ConfigValues.VncKeyboardLayout));
+        String keyboardLayout = vm.getVncKeyboardLayout(); // if set per VM 
use that value
+        if (keyboardLayout == null) { // otherwise fall back to global setting
+            keyboardLayout = Config.<String> 
GetValue(ConfigValues.VncKeyboardLayout);
+        }
+        createInfo.add(VdsProperties.KeyboardLayout, keyboardLayout);
         if (vm.getVmOs().isLinux()) {
             createInfo.add(VdsProperties.PitReinjection, "false");
         }


--
To view, visit http://gerrit.ovirt.org/11314
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib73338ce279aa4f14f1332dbdebb1dd0f1cec974
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Beták <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to