From 3d420b96222cf64535a04f07ddbddee7a1e423e7 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 18 May 2022 12:36:33 +0530 Subject: [PATCH] kvm: truncate vnc password to 8 chars (#6244) This PR truncates the vnc password of kvm vms to 8 chars to support latest versions of libvirt. Backport of https://github.com/apache/cloudstack/commit/aa0197c1416f696906ec12392107783bc7f7d815 Signed-off-by: Rohit Yadav --- .../java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java | 2 +- .../hypervisor/kvm/resource/LibvirtComputingResourceTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java index 3ea7a19e645..59ceb508781 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java @@ -1723,7 +1723,7 @@ public class LibvirtVMDef { graphicBuilder.append(" listen=''"); } if (_passwd != null) { - graphicBuilder.append(" passwd='" + _passwd + "'"); + graphicBuilder.append(" passwd='" + StringUtils.truncate(_passwd, 8) + "'"); } else if (_keyMap != null) { graphicBuilder.append(" _keymap='" + _keyMap + "'"); } diff --git a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java index bd651f4c02c..ddb893dc10b 100644 --- a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java +++ b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java @@ -60,6 +60,7 @@ import org.apache.cloudstack.utils.linux.CPUStat; import org.apache.cloudstack.utils.linux.MemStat; import org.apache.cloudstack.utils.qemu.QemuImg.PhysicalDiskFormat; import org.apache.commons.lang.SystemUtils; +import org.apache.commons.lang3.StringUtils; import org.joda.time.Duration; import org.junit.Assert; import org.junit.Before; @@ -372,7 +373,7 @@ public class LibvirtComputingResourceTest { assertXpath(domainDoc, "/domain/devices/graphics/@type", "vnc"); assertXpath(domainDoc, "/domain/devices/graphics/@listen", to.getVncAddr()); assertXpath(domainDoc, "/domain/devices/graphics/@autoport", "yes"); - assertXpath(domainDoc, "/domain/devices/graphics/@passwd", to.getVncPassword()); + assertXpath(domainDoc, "/domain/devices/graphics/@passwd", StringUtils.truncate(to.getVncPassword(), 8)); assertXpath(domainDoc, "/domain/devices/console/@type", "pty"); assertXpath(domainDoc, "/domain/devices/console/target/@port", "0");