[pve-devel] [PATCH manager v6 7/9] ui: guest import: add storage selector for ova extraction storage

Thomas Lamprecht t.lamprecht at proxmox.com
Sun Nov 17 17:31:00 CET 2024


Am 15.11.24 um 16:17 schrieb Dominik Csapak:
> but only when we detect the 'ova-needs-extraction' warning.
> This can be used to select the storage where the disks contained in an
> OVA will be extracted to temporarily.
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  www/manager6/window/GuestImport.js | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/www/manager6/window/GuestImport.js b/www/manager6/window/GuestImport.js
> index 1483d97f..56417f27 100644
> --- a/www/manager6/window/GuestImport.js
> +++ b/www/manager6/window/GuestImport.js
> @@ -303,6 +303,7 @@ Ext.define('PVE.window.GuestImport', {
>  	    os: 'l26',
>  	    maxCdDrives: false,
>  	    uniqueMACAdresses: false,
> +	    isOva: false,
>  	    warnings: [],
>  	},
>  
> @@ -432,6 +433,10 @@ Ext.define('PVE.window.GuestImport', {
>  			}
>  		    }
>  
> +		    if (config['import-extraction-storage'] === '') {
> +			delete config['import-extraction-storage'];
> +		    }
> +
>  		    return config;
>  		},
>  
> @@ -553,6 +558,22 @@ Ext.define('PVE.window.GuestImport', {
>  			allowBlank: false,
>  			fieldLabel: gettext('Default Bridge'),
>  		    },
> +		    {
> +			xtype: 'pveStorageSelector',
> +			reference: 'extractionStorage',
> +			fieldLabel: gettext('Extraction Storage'),

This reads a bit strange to me, but the alternatives from top of my mind aren't
perfect either, fwiw:

'Working Storage'

or 

'Import Working Storage'

or

'Extraction Target Storage'

> +			storageContent: 'images',
> +			emptyText: gettext('Import Storage'),
> +			autoSelect: false,
> +			name: 'import-extraction-storage',
> +			disabled: true,
> +			hidden: true,
> +			allowBlank: true,
> +			bind: {
> +			    disabled: '{!isOva}',
> +			    hidden: '{!isOva}',
> +			},
> +		    },
>  		],
>  
>  		columnB: [
> @@ -925,6 +946,7 @@ Ext.define('PVE.window.GuestImport', {
>  
>  	me.lookup('defaultStorage').setNodename(me.nodename);
>  	me.lookup('defaultBridge').setNodename(me.nodename);
> +	me.lookup('extractionStorage').setNodename(me.nodename);
>  
>  	let renderWarning = w => {
>  	    const warningsCatalogue = {
> @@ -1006,6 +1028,7 @@ Ext.define('PVE.window.GuestImport', {
>  		}
>  
>  		me.getViewModel().set('warnings', data.warnings.map(w => renderWarning(w)));
> +		me.getViewModel().set('isOva', data.warnings.map(w => w.type).indexOf('ova-needs-extracting') !== -1);
>  
>  		let osinfo = PVE.Utils.get_kvm_osinfo(me.vmConfig.ostype ?? '');
>  		let prepareForVirtIO = (me.vmConfig.ostype ?? '').startsWith('w') && (me.vmConfig.bios ?? '').indexOf('ovmf') !== -1;





More information about the pve-devel mailing list