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
