Files
proxmox-git-pve-manager/www/manager6/qemu/HDResize.js
T
dualfroz 198fee27a6 fix #6009: ui: drop the 128 TiB limit for disk sizes
The size fields for creating and resizing disks of VMs and mount points
of containers only accepted up to 128 TiB. The API does not have such a
limit, so larger disks could only be created or resized on the CLI.

Remove the limit from the size fields, like it was done for the memory
fields in commit fdce7d56 ("Remove swap/memory limit in the Manager,
fixes #1799").

Signed-off-by: Michal Fox <me@dualfroz.com>
2026-10-02 16:40:54 +02:00

99 lines
2.5 KiB
JavaScript

Ext.define('PVE.window.HDResize', {
extend: 'Ext.window.Window',
resizable: false,
resize_disk: function (disk, size) {
var me = this;
var params = { disk: disk, size: '+' + size + 'G' };
Proxmox.Utils.API2Request({
params: params,
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/resize',
waitMsgTarget: me,
method: 'PUT',
failure: function (response, opts) {
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
},
success: function (response, options) {
Ext.create('Proxmox.window.TaskProgress', {
autoShow: true,
upid: response.result.data,
});
me.close();
},
});
},
initComponent: function () {
var me = this;
if (!me.nodename) {
throw 'no node name specified';
}
if (!me.vmid) {
throw 'no VM ID specified';
}
var items = [
{
xtype: 'displayfield',
name: 'disk',
value: me.disk,
fieldLabel: gettext('Disk'),
vtype: 'StorageId',
allowBlank: false,
},
];
me.hdsizesel = Ext.createWidget('numberfield', {
name: 'size',
minValue: 0,
decimalPrecision: 3,
value: '0',
fieldLabel: `${gettext('Size Increment')} (${gettext('GiB')})`,
allowBlank: false,
});
items.push(me.hdsizesel);
me.formPanel = Ext.create('Ext.form.Panel', {
bodyPadding: 10,
border: false,
fieldDefaults: {
labelWidth: 140,
anchor: '100%',
},
items: items,
});
var form = me.formPanel.getForm();
var submitBtn;
me.title = gettext('Resize disk');
submitBtn = Ext.create('Ext.Button', {
text: gettext('Resize disk'),
handler: function () {
if (form.isValid()) {
let values = form.getValues();
me.resize_disk(me.disk, values.size);
}
},
});
Ext.apply(me, {
modal: true,
width: 250,
height: 150,
border: false,
layout: 'fit',
buttons: [submitBtn],
items: [me.formPanel],
});
me.callParent();
},
});