Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- www/manager6/Makefile | 1 - www/manager6/qemu/HDEdit.js | 99 ++++++++++++++++++ www/manager6/qemu/HDThrottle.js | 209 -------------------------------------- www/manager6/qemu/HardwareView.js | 27 ----- 4 files changed, 99 insertions(+), 237 deletions(-) delete mode 100644 www/manager6/qemu/HDThrottle.js
diff --git a/www/manager6/Makefile b/www/manager6/Makefile index dc4cebbd..60e8103e 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -114,7 +114,6 @@ JSSRC= \ qemu/HDEdit.js \ qemu/HDResize.js \ qemu/HDMove.js \ - qemu/HDThrottle.js \ qemu/HDEfi.js \ qemu/DisplayEdit.js \ qemu/KeyboardEdit.js \ diff --git a/www/manager6/qemu/HDEdit.js b/www/manager6/qemu/HDEdit.js index 4e0001cd..237128e5 100644 --- a/www/manager6/qemu/HDEdit.js +++ b/www/manager6/qemu/HDEdit.js @@ -101,6 +101,22 @@ Ext.define('PVE.qemu.HDInputPanel', { params.scsihw = values.scsihw; } + var names = ['mbps_rd', 'mbps_wr', 'iops_rd', 'iops_wr']; + Ext.Array.each(names, function(name) { + if (values[name]) { + me.drive[name] = values[name]; + } else { + delete me.drive[name]; + } + var burst_name = name + '_max'; + if (values[burst_name] && values[name]) { + me.drive[burst_name] = values[burst_name]; + } else { + delete me.drive[burst_name]; + } + }); + + params[confid] = PVE.Parser.printQemuDrive(me.drive); return params; @@ -146,6 +162,15 @@ Ext.define('PVE.qemu.HDInputPanel', { values.discard = (drive.discard === 'on'); values.iothread = PVE.Parser.parseBoolean(drive.iothread); + values.mbps_rd = drive.mbps_rd; + values.mbps_wr = drive.mbps_wr; + values.iops_rd = drive.iops_rd; + values.iops_wr = drive.iops_wr; + values.mbps_rd_max = drive.mbps_rd_max; + values.mbps_wr_max = drive.mbps_wr_max; + values.iops_rd_max = drive.iops_rd_max; + values.iops_wr_max = drive.iops_wr_max; + me.setValues(values); }, @@ -158,6 +183,8 @@ Ext.define('PVE.qemu.HDInputPanel', { initComponent : function() { var me = this; + var labelWidth = 140; + me.drive = {}; me.column1 = []; @@ -237,6 +264,42 @@ Ext.define('PVE.qemu.HDInputPanel', { labelWidth: labelWidth, reference: 'iothread', name: 'iothread' + }, + { + xtype: 'numberfield', + name: 'mbps_rd', + minValue: 1, + step: 1, + fieldLabel: gettext('Read limit') + ' (MB/s)', + labelWidth: labelWidth, + emptyText: gettext('unlimited') + }, + { + xtype: 'numberfield', + name: 'mbps_wr', + minValue: 1, + step: 1, + fieldLabel: gettext('Write limit') + ' (MB/s)', + labelWidth: labelWidth, + emptyText: gettext('unlimited') + }, + { + xtype: 'proxmoxintegerfield', + name: 'iops_rd', + minValue: 10, + step: 10, + fieldLabel: gettext('Read limit') + ' (ops/s)', + labelWidth: labelWidth, + emptyText: gettext('unlimited') + }, + { + xtype: 'proxmoxintegerfield', + name: 'iops_wr', + minValue: 10, + step: 10, + fieldLabel: gettext('Write limit') + ' (ops/s)', + labelWidth: labelWidth, + emptyText: gettext('unlimited') } ); @@ -252,6 +315,42 @@ Ext.define('PVE.qemu.HDInputPanel', { fieldLabel: gettext('Skip replication'), labelWidth: labelWidth, name: 'noreplicate' + }, + { + xtype: 'numberfield', + name: 'mbps_rd_max', + minValue: 1, + step: 1, + fieldLabel: gettext('Read max burst') + ' (MB)', + labelWidth: labelWidth, + emptyText: gettext('default') + }, + { + xtype: 'numberfield', + name: 'mbps_wr_max', + minValue: 1, + step: 1, + fieldLabel: gettext('Write max burst') + ' (MB)', + labelWidth: labelWidth, + emptyText: gettext('default') + }, + { + xtype: 'proxmoxintegerfield', + name: 'iops_rd_max', + minValue: 10, + step: 10, + fieldLabel: gettext('Read max burst') + ' (ops)', + labelWidth: labelWidth, + emptyText: gettext('default') + }, + { + xtype: 'proxmoxintegerfield', + name: 'iops_wr_max', + minValue: 10, + step: 10, + fieldLabel: gettext('Write max burst') + ' (ops)', + labelWidth: labelWidth, + emptyText: gettext('default') } ); diff --git a/www/manager6/qemu/HDThrottle.js b/www/manager6/qemu/HDThrottle.js deleted file mode 100644 index 11c1edbc..00000000 --- a/www/manager6/qemu/HDThrottle.js +++ /dev/null @@ -1,209 +0,0 @@ -Ext.define('PVE.qemu.HDThrottleInputPanel', { - extend: 'Proxmox.panel.InputPanel', - alias: 'widget.PVE.qemu.HDThrottleInputPanel', - - insideWizard: false, - - unused: false, // ADD usused disk imaged - - vmconfig: {}, // used to select usused disks - - onGetValues: function(values) { - var me = this; - - var confid = me.confid; - - var names = ['mbps_rd', 'mbps_wr', 'iops_rd', 'iops_wr']; - Ext.Array.each(names, function(name) { - if (values[name]) { - me.drive[name] = values[name]; - } else { - delete me.drive[name]; - } - var burst_name = name + '_max'; - if (values[burst_name] && values[name]) { - me.drive[burst_name] = values[burst_name]; - } else { - delete me.drive[burst_name]; - } - }); - - var params = {}; - - params[confid] = PVE.Parser.printQemuDrive(me.drive); - - return params; - }, - - setDrive: function(drive) { - var me = this; - - me.drive = drive; - - var values = {}; - - values.mbps_rd = drive.mbps_rd; - values.mbps_wr = drive.mbps_wr; - values.iops_rd = drive.iops_rd; - values.iops_wr = drive.iops_wr; - values.mbps_rd_max = drive.mbps_rd_max; - values.mbps_wr_max = drive.mbps_wr_max; - values.iops_rd_max = drive.iops_rd_max; - values.iops_wr_max = drive.iops_wr_max; - - me.setValues(values); - }, - - initComponent : function() { - var me = this; - - me.drive = {}; - - me.column1 = []; - me.column2 = []; - - var width2 = 140; - - me.mbps_rd = Ext.widget('numberfield', { - name: 'mbps_rd', - minValue: 1, - step: 1, - fieldLabel: gettext('Read limit') + ' (MB/s)', - labelWidth: width2, - emptyText: gettext('unlimited') - }); - - me.column1.push(me.mbps_rd); - - me.mbps_rd_max = Ext.widget('numberfield', { - name: 'mbps_rd_max', - minValue: 1, - step: 1, - fieldLabel: gettext('Read max burst') + ' (MB)', - labelWidth: width2, - emptyText: gettext('default') - }); - - me.column2.push(me.mbps_rd_max); - - - me.mbps_wr = Ext.widget('numberfield', { - name: 'mbps_wr', - minValue: 1, - step: 1, - fieldLabel: gettext('Write limit') + ' (MB/s)', - labelWidth: width2, - emptyText: gettext('unlimited') - }); - - me.column1.push(me.mbps_wr); - - me.mbps_wr_max = Ext.widget('numberfield', { - name: 'mbps_wr_max', - minValue: 1, - step: 1, - fieldLabel: gettext('Write max burst') + ' (MB)', - labelWidth: width2, - emptyText: gettext('default') - }); - - me.column2.push(me.mbps_wr_max); - - me.iops_rd = Ext.widget('proxmoxintegerfield', { - name: 'iops_rd', - minValue: 10, - step: 10, - fieldLabel: gettext('Read limit') + ' (ops/s)', - labelWidth: width2, - emptyText: gettext('unlimited') - }); - - me.column1.push(me.iops_rd); - - me.iops_rd_max = Ext.widget('proxmoxintegerfield', { - name: 'iops_rd_max', - minValue: 10, - step: 10, - fieldLabel: gettext('Read max burst') + ' (ops)', - labelWidth: width2, - emptyText: gettext('default') - }); - - me.column2.push(me.iops_rd_max); - - me.iops_wr = Ext.widget('proxmoxintegerfield', { - name: 'iops_wr', - minValue: 10, - step: 10, - fieldLabel: gettext('Write limit') + ' (ops/s)', - labelWidth: width2, - emptyText: gettext('unlimited') - }); - - me.column1.push(me.iops_wr); - - me.iops_wr_max = Ext.widget('proxmoxintegerfield', { - name: 'iops_wr_max', - minValue: 10, - step: 10, - fieldLabel: gettext('Write max burst') + ' (ops)', - labelWidth: width2, - emptyText: gettext('default') - }); - - me.column2.push(me.iops_wr_max); - - me.callParent(); - } -}); - -Ext.define('PVE.qemu.HDThrottle', { - extend: 'Proxmox.window.Edit', - - isAdd: true, - - initComponent : function() { - var me = this; - - var nodename = me.pveSelNode.data.node; - if (!nodename) { - throw "no node name specified"; - } - - var unused = me.confid && me.confid.match(/^unused\d+$/); - - me.isCreate = me.confid ? unused : true; - - var ipanel = Ext.create('PVE.qemu.HDThrottleInputPanel', { - confid: me.confid, - nodename: nodename - }); - - var subject; - if (unused) { - me.subject = gettext('Unused Disk'); - } else { - me.subject = gettext('Hard Disk') + ' (' + me.confid + ')'; - } - - me.items = [ ipanel ]; - - me.callParent(); - - me.load({ - success: function(response, options) { - if (me.confid) { - var value = response.result.data[me.confid]; - var drive = PVE.Parser.parseQemuDrive(me.confid, value); - if (!drive) { - Ext.Msg.alert(gettext('Error'), 'Unable to parse drive options'); - me.close(); - return; - } - ipanel.setDrive(drive); - me.isValid(); // trigger validation - } - } - }); - } -}); diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js index 218f9059..d27f224a 100644 --- a/www/manager6/qemu/HardwareView.js +++ b/www/manager6/qemu/HardwareView.js @@ -275,22 +275,6 @@ Ext.define('PVE.qemu.HardwareView', { win.on('destroy', reload); }; - var run_diskthrottle = function() { - var rec = sm.getSelection()[0]; - if (!rec) { - return; - } - - var win = Ext.create('PVE.qemu.HDThrottle', { - pveSelNode: me.pveSelNode, - confid: rec.data.key, - url: '/api2/extjs/' + baseurl - }); - - win.show(); - win.on('destroy', reload); - }; - var run_resize = function() { var rec = sm.getSelection()[0]; if (!rec) { @@ -346,13 +330,6 @@ Ext.define('PVE.qemu.HardwareView', { handler: run_move }); - var diskthrottle_btn = new Proxmox.button.Button({ - text: gettext('Disk Throttle'), - selModel: sm, - disabled: true, - handler: run_diskthrottle - }); - var remove_btn = new Proxmox.button.Button({ text: gettext('Remove'), defaultText: gettext('Remove'), @@ -484,7 +461,6 @@ Ext.define('PVE.qemu.HardwareView', { edit_btn.disable(); resize_btn.disable(); move_btn.disable(); - diskthrottle_btn.disable(); revert_btn.disable(); return; } @@ -510,8 +486,6 @@ Ext.define('PVE.qemu.HardwareView', { move_btn.setDisabled(pending || !isUsedDisk); - diskthrottle_btn.setDisabled(pending || !isUsedDisk || isEfi); - revert_btn.setDisabled(!pending); }; @@ -600,7 +574,6 @@ Ext.define('PVE.qemu.HardwareView', { edit_btn, resize_btn, move_btn, - diskthrottle_btn, revert_btn ], rows: rows, -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel