]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/HDThrottle.js
1 Ext
.define('PVE.qemu.HDThrottleInputPanel', {
2 extend
: 'PVE.panel.InputPanel',
3 alias
: 'widget.PVE.qemu.HDThrottleInputPanel',
7 unused
: false, // ADD usused disk imaged
9 vmconfig
: {}, // used to select usused disks
11 onGetValues: function(values
) {
14 var confid
= me
.confid
;
16 var names
= ['mbps_rd', 'mbps_wr', 'iops_rd', 'iops_wr'];
17 Ext
.Array
.each(names
, function(name
) {
19 me
.drive
[name
] = values
[name
];
21 delete me
.drive
[name
];
23 var burst_name
= name
+ '_max';
24 if (values
[burst_name
] && values
[name
]) {
25 me
.drive
[burst_name
] = values
[burst_name
];
27 delete me
.drive
[burst_name
];
33 params
[confid
] = PVE
.Parser
.printQemuDrive(me
.drive
);
38 setDrive: function(drive
) {
45 values
.mbps_rd
= drive
.mbps_rd
;
46 values
.mbps_wr
= drive
.mbps_wr
;
47 values
.iops_rd
= drive
.iops_rd
;
48 values
.iops_wr
= drive
.iops_wr
;
49 values
.mbps_rd_max
= drive
.mbps_rd_max
;
50 values
.mbps_wr_max
= drive
.mbps_wr_max
;
51 values
.iops_rd_max
= drive
.iops_rd_max
;
52 values
.iops_wr_max
= drive
.iops_wr_max
;
57 initComponent : function() {
67 me
.mbps_rd
= Ext
.widget('numberfield', {
71 fieldLabel
: gettext('Read limit') + ' (MB/s)',
73 emptyText
: gettext('unlimited')
76 me
.column1
.push(me
.mbps_rd
);
78 me
.mbps_rd_max
= Ext
.widget('numberfield', {
82 fieldLabel
: gettext('Read max burst') + ' (MB)',
84 emptyText
: gettext('default')
87 me
.column2
.push(me
.mbps_rd_max
);
90 me
.mbps_wr
= Ext
.widget('numberfield', {
94 fieldLabel
: gettext('Write limit') + ' (MB/s)',
96 emptyText
: gettext('unlimited')
99 me
.column1
.push(me
.mbps_wr
);
101 me
.mbps_wr_max
= Ext
.widget('numberfield', {
105 fieldLabel
: gettext('Write max burst') + ' (MB)',
107 emptyText
: gettext('default')
110 me
.column2
.push(me
.mbps_wr_max
);
112 me
.iops_rd
= Ext
.widget('proxmoxintegerfield', {
116 fieldLabel
: gettext('Read limit') + ' (ops/s)',
118 emptyText
: gettext('unlimited')
121 me
.column1
.push(me
.iops_rd
);
123 me
.iops_rd_max
= Ext
.widget('proxmoxintegerfield', {
127 fieldLabel
: gettext('Read max burst') + ' (ops)',
129 emptyText
: gettext('default')
132 me
.column2
.push(me
.iops_rd_max
);
134 me
.iops_wr
= Ext
.widget('proxmoxintegerfield', {
138 fieldLabel
: gettext('Write limit') + ' (ops/s)',
140 emptyText
: gettext('unlimited')
143 me
.column1
.push(me
.iops_wr
);
145 me
.iops_wr_max
= Ext
.widget('proxmoxintegerfield', {
149 fieldLabel
: gettext('Write max burst') + ' (ops)',
151 emptyText
: gettext('default')
154 me
.column2
.push(me
.iops_wr_max
);
160 Ext
.define('PVE.qemu.HDThrottle', {
161 extend
: 'Proxmox.window.Edit',
165 initComponent : function() {
168 var nodename
= me
.pveSelNode
.data
.node
;
170 throw "no node name specified";
173 var unused
= me
.confid
&& me
.confid
.match(/^unused\d+$/);
175 me
.isCreate
= me
.confid
? unused
: true;
177 var ipanel
= Ext
.create('PVE.qemu.HDThrottleInputPanel', {
184 me
.subject
= gettext('Unused Disk');
186 me
.subject
= gettext('Hard Disk') + ' (' + me
.confid
+ ')';
189 me
.items
= [ ipanel
];
194 success: function(response
, options
) {
196 var value
= response
.result
.data
[me
.confid
];
197 var drive
= PVE
.Parser
.parseQemuDrive(me
.confid
, value
);
199 Ext
.Msg
.alert(gettext('Error'), 'Unable to parse drive options');
203 ipanel
.setDrive(drive
);
204 me
.isValid(); // trigger validation