[pve-devel] [PATCH manager 2/5] ui/machine: fix Windows pinning and detect "pc" as non-pinned

Stefan Reiter s.reiter at proxmox.com
Mon Mar 8 11:01:48 CET 2021


We need to detect "isWindows" before splitting a pinned version into
.version/.machine, otherwise .machine will always be "pc" or "q35", and
the check in "isWindows" will succeed even for pinned versions. This
resulted in "5.1" being shown even if a different version has been set
for a Windows machine.

Also alias "pc" directly to "__default__", as they have the same
meaning, but "pc" is not a valid entry in the "machine" combobox,
leading to an invalid state when editing the (valid) configuration of
"machine: pc" on a VM.

Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
---
 www/manager6/qemu/MachineEdit.js | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/www/manager6/qemu/MachineEdit.js b/www/manager6/qemu/MachineEdit.js
index ec391513..9dcdb012 100644
--- a/www/manager6/qemu/MachineEdit.js
+++ b/www/manager6/qemu/MachineEdit.js
@@ -47,7 +47,17 @@ Ext.define('PVE.qemu.MachineInputPanel', {
 	let me = this;
 
 	me.isWindows = values.isWindows;
+	if (values.machine === 'pc') {
+	    values.machine = '__default__';
+	}
 
+	if (me.isWindows) {
+	    if (values.machine === '__default__') {
+		values.version = 'pc-i440fx-5.1';
+	    } else if (values.machine === 'q35') {
+		values.version = 'pc-q35-5.1';
+	    }
+	}
 	if (values.machine !== '__default__' && values.machine !== 'q35') {
 	    values.version = values.machine;
 	    values.machine = values.version.match(/q35/) ? 'q35' : '__default__';
@@ -55,13 +65,6 @@ Ext.define('PVE.qemu.MachineInputPanel', {
 	    // avoid hiding a pinned version
 	    me.setAdvancedVisible(true);
 	}
-	if (me.isWindows) {
-	    if (values.machine === '__default__' || values.machine === 'pc') {
-		values.version = 'pc-i440fx-5.1';
-	    } else if (values.machine === 'q35') {
-		values.version = 'pc-q35-5.1';
-	    }
-	}
 
 	this.callParent(arguments);
     },
-- 
2.20.1






More information about the pve-devel mailing list