[pve-devel] [PATCH manager 3/5] fix #5430: ui: vm: allow editing cdrom aio and cache options
Lukas Wagner
l.wagner at proxmox.com
Fri Oct 18 09:42:29 CEST 2024
Some suggestions inline. Skimmed over the code to spot style issues, correctness
was not really checked.
On 2024-10-16 18:47, Daniel Kral wrote:
> 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 = {};
Note: For new code we should use `let` or `const` insted of `var` [1].
When touching existing code can IMO also change it to `let`, but of course
familiarize yourself first with the differences between the three and make sure
that you don't introduce any unwanted changes (e.g. due to changed scoping).
[1]: https://pve.proxmox.com/wiki/Javascript_Style_Guide
> 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,
This change is not mentioned in the commit message and should probably
be split out into its own commit.
>
> initComponent: function() {
> var me = this;
--
- Lukas
More information about the pve-devel
mailing list