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

Daniel Kral d.kral at proxmox.com
Wed Oct 16 18:47:09 CEST 2024


Adds cache and async I/O selectors to the CDROM Drive Edit modal window
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.

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

diff --git a/www/manager6/qemu/CDEdit.js b/www/manager6/qemu/CDEdit.js
index 3cc16205..f15905e7 100644
--- a/www/manager6/qemu/CDEdit.js
+++ b/www/manager6/qemu/CDEdit.js
@@ -7,6 +7,7 @@ Ext.define('PVE.qemu.CDInputPanel', {
     onGetValues: function(values) {
 	var me = this;
 
+	var params = {};
 	var confid = me.confid || values.controller + values.deviceid;
 
 	me.drive.media = 'cdrom';
@@ -18,7 +19,8 @@ Ext.define('PVE.qemu.CDInputPanel', {
 	    me.drive.file = 'none';
 	}
 
-	var params = {};
+	PVE.Utils.propertyStringSet(me.drive, values.cache, 'cache');
+	PVE.Utils.propertyStringSet(me.drive, values.aio, 'aio');
 
 	params[confid] = PVE.Parser.printQemuDrive(me.drive);
 
@@ -46,6 +48,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 +123,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: 'AsyncIOTypeSelector',
+		    name: 'aio',
+		    value: '__default__',
+		    fieldLabel: gettext('Async IO'),
+		    allowBlank: false,
+		},
+	    ];
+	}
+
 	me.callParent();
     },
 });
@@ -125,7 +151,7 @@ Ext.define('PVE.qemu.CDInputPanel', {
 Ext.define('PVE.qemu.CDEdit', {
     extend: 'Proxmox.window.Edit',
 
-    width: 400,
+    width: 550,
 
     initComponent: function() {
 	var me = this;
-- 
2.39.5





More information about the pve-devel mailing list