[pve-devel] [PATCH manager v3 4/6] fix #5430: ui: vm: allow editing cdrom aio and cache options

Daniel Kral d.kral at proxmox.com
Wed Oct 23 14:37:20 CEST 2024


Adds cache and async I/O selectors to the CDROM Drive Edit modal in the
"Hardware" tab. This allows users to set these options in the WebGUI
when the VM fails to start because the underlying storage (driver) does
not support a specific set of configurations.

To accommodate the new fields in the modal, the total width is increased
here, so that the fields' content is visible.

Signed-off-by: Daniel Kral <d.kral at proxmox.com>
---
 www/manager6/qemu/CDEdit.js | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/www/manager6/qemu/CDEdit.js b/www/manager6/qemu/CDEdit.js
index d26d8631..f98fe0f9 100644
--- a/www/manager6/qemu/CDEdit.js
+++ b/www/manager6/qemu/CDEdit.js
@@ -19,6 +19,9 @@ Ext.define('PVE.qemu.CDInputPanel', {
 	    me.drive.file = 'none';
 	}
 
+	PVE.Utils.propertyStringSet(me.drive, values.cache, 'cache');
+	PVE.Utils.propertyStringSet(me.drive, values.aio, 'aio');
+
 	params[confid] = PVE.Parser.printQemuDrive(me.drive);
 
 	return params;
@@ -46,6 +49,9 @@ Ext.define('PVE.qemu.CDInputPanel', {
 	    values.cdimage = drive.file;
 	}
 
+	values.cache = drive.cache || '__default__';
+	values.aio = drive.aio || '__default__';
+
 	me.drive = drive;
 
 	me.setValues(values);
@@ -118,6 +124,27 @@ Ext.define('PVE.qemu.CDInputPanel', {
 
 	me.items = items;
 
+	// those are only useful for specific niche use cases
+	if (!me.insideWizard) {
+	    me.advancedColumn1 = [
+		{
+		    xtype: 'CacheTypeSelector',
+		    name: 'cache',
+		    value: '__default__',
+		    fieldLabel: gettext('Cache'),
+		},
+	    ];
+	    me.advancedColumn2 = [
+		{
+		    xtype: 'pveAsyncIoTypeSelector',
+		    name: 'aio',
+		    value: '__default__',
+		    fieldLabel: gettext('Async IO'),
+		    allowBlank: false,
+		},
+	    ];
+	}
+
 	me.callParent();
     },
 });
@@ -125,7 +152,7 @@ Ext.define('PVE.qemu.CDInputPanel', {
 Ext.define('PVE.qemu.CDEdit', {
     extend: 'Proxmox.window.Edit',
 
-    width: 400,
+    width: 550,
 
     initComponent: function() {
 	let me = this;
-- 
2.39.5





More information about the pve-devel mailing list