From 7140bed3bcda9ef5734e8c0783149477d215809c Mon Sep 17 00:00:00 2001 From: nvazquez Date: Wed, 3 Sep 2025 13:19:11 -0300 Subject: [PATCH 1/2] [KVM] Allow passing OS type machine to XML domains --- api/src/main/java/com/cloud/vm/VmDetailConstants.java | 1 + .../hypervisor/kvm/resource/LibvirtComputingResource.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/api/src/main/java/com/cloud/vm/VmDetailConstants.java b/api/src/main/java/com/cloud/vm/VmDetailConstants.java index ea5d209a5d41..5e1bdc1eb4ea 100644 --- a/api/src/main/java/com/cloud/vm/VmDetailConstants.java +++ b/api/src/main/java/com/cloud/vm/VmDetailConstants.java @@ -41,6 +41,7 @@ public interface VmDetailConstants { String KVM_VNC_PORT = "kvm.vnc.port"; String KVM_VNC_ADDRESS = "kvm.vnc.address"; String KVM_VNC_PASSWORD = "kvm.vnc.password"; + String KVM_GUEST_OS_TYPE_MACHINE = "kvm.guest.os.type.machine"; // KVM specific, custom virtual GPU hardware String VIDEO_HARDWARE = "video.hardware"; diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 096ec26e8783..2fca59c12785 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -3292,6 +3292,9 @@ protected GuestDef createGuestFromSpec(VirtualMachineTO vmTO, LibvirtVMDef vm, S } } guest.setIothreads(customParams.containsKey(VmDetailConstants.IOTHREADS)); + if (customParams.containsKey(VmDetailConstants.KVM_GUEST_OS_TYPE_MACHINE)) { + guest.setMachineType(customParams.get(VmDetailConstants.KVM_GUEST_OS_TYPE_MACHINE)); + } } guest.setUuid(uuid); if(!isGuestS390x()) { From 3c1064b7212368f7bef513b0aa3e9cac0dc830bb Mon Sep 17 00:00:00 2001 From: nvazquez Date: Thu, 4 Sep 2025 13:15:12 -0300 Subject: [PATCH 2/2] Address review comment --- api/src/main/java/com/cloud/vm/VmDetailConstants.java | 2 +- .../hypervisor/kvm/resource/LibvirtComputingResource.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/com/cloud/vm/VmDetailConstants.java b/api/src/main/java/com/cloud/vm/VmDetailConstants.java index 5e1bdc1eb4ea..596c861218f0 100644 --- a/api/src/main/java/com/cloud/vm/VmDetailConstants.java +++ b/api/src/main/java/com/cloud/vm/VmDetailConstants.java @@ -41,7 +41,7 @@ public interface VmDetailConstants { String KVM_VNC_PORT = "kvm.vnc.port"; String KVM_VNC_ADDRESS = "kvm.vnc.address"; String KVM_VNC_PASSWORD = "kvm.vnc.password"; - String KVM_GUEST_OS_TYPE_MACHINE = "kvm.guest.os.type.machine"; + String KVM_GUEST_OS_MACHINE_TYPE = "kvm.guest.os.machine.type"; // KVM specific, custom virtual GPU hardware String VIDEO_HARDWARE = "video.hardware"; diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 2fca59c12785..3bb692e420fe 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -3292,8 +3292,8 @@ protected GuestDef createGuestFromSpec(VirtualMachineTO vmTO, LibvirtVMDef vm, S } } guest.setIothreads(customParams.containsKey(VmDetailConstants.IOTHREADS)); - if (customParams.containsKey(VmDetailConstants.KVM_GUEST_OS_TYPE_MACHINE)) { - guest.setMachineType(customParams.get(VmDetailConstants.KVM_GUEST_OS_TYPE_MACHINE)); + if (customParams.containsKey(VmDetailConstants.KVM_GUEST_OS_MACHINE_TYPE)) { + guest.setMachineType(customParams.get(VmDetailConstants.KVM_GUEST_OS_MACHINE_TYPE)); } } guest.setUuid(uuid);