ui: avoid duplication of guest disc controller maxIDs definition

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2020-01-23 12:15:19 +01:00
parent a22fc39f09
commit 8c4ec8c711
2 changed files with 15 additions and 24 deletions

View File

@ -1156,11 +1156,16 @@ Ext.define('PVE.Utils', { utilities: {
reader.readAsText(file);
},
bus_counts: { ide: 4, sata: 6, scsi: 16, virtio: 16 },
diskControllerMaxIDs: {
ide: 4,
sata: 6,
scsi: 14,
virtio: 16,
},
// types is either undefined (all busses), an array of busses, or a single bus
forEachBus: function(types, func) {
var busses = Object.keys(PVE.Utils.bus_counts);
var busses = Object.keys(PVE.Utils.diskControllerMaxIDs);
var i, j, count, cont;
if (Ext.isArray(types)) {
@ -1171,13 +1176,13 @@ Ext.define('PVE.Utils', { utilities: {
// check if we only have valid busses
for (i = 0; i < busses.length; i++) {
if (!PVE.Utils.bus_counts[busses[i]]) {
if (!PVE.Utils.diskControllerMaxIDs[busses[i]]) {
throw "invalid bus: '" + busses[i] + "'";
}
}
for (i = 0; i < busses.length; i++) {
count = PVE.Utils.bus_counts[busses[i]];
count = PVE.Utils.diskControllerMaxIDs[busses[i]];
for (j = 0; j < count; j++) {
cont = func(busses[i], j);
if (!cont && cont !== undefined) {

View File

@ -1,29 +1,15 @@
Ext.define('PVE.form.ControllerSelector', {
extend: 'Ext.form.FieldContainer',
alias: 'widget.pveControllerSelector',
statics: {
maxIds: {
ide: 3,
sata: 5,
virtio: 15,
scsi: 13
}
},
noVirtIO: false,
vmconfig: {}, // used to check for existing devices
sortByPreviousUsage: function(vmconfig, controllerList) {
var usedControllers = Ext.clone(PVE.form.ControllerSelector.maxIds);
var type;
for (type in usedControllers) {
if(usedControllers.hasOwnProperty(type)) {
usedControllers[type] = 0;
}
let usedControllers = {};
for (const type of PVE.Utils.diskControllerMaxIDs) {
usedControllers[type] = 0;
}
var property;
@ -77,7 +63,7 @@ Ext.define('PVE.form.ControllerSelector', {
Ext.Array.each(clist, function(controller) {
var confid, i;
bussel.setValue(controller);
for (i = 0; i <= PVE.form.ControllerSelector.maxIds[controller]; i++) {
for (i = 0; i < PVE.Utils.diskControllerMaxIDs[controller]; i++) {
confid = controller + i.toString();
if (!Ext.isDefined(me.vmconfig[confid])) {
deviceid.setValue(i);
@ -111,7 +97,7 @@ Ext.define('PVE.form.ControllerSelector', {
return;
}
var field = me.down('field[name=deviceid]');
field.setMaxValue(PVE.form.ControllerSelector.maxIds[value]);
field.setMaxValue(PVE.Utils.diskControllerMaxIDs[value]);
field.validate();
}
}
@ -120,7 +106,7 @@ Ext.define('PVE.form.ControllerSelector', {
xtype: 'proxmoxintegerfield',
name: 'deviceid',
minValue: 0,
maxValue: PVE.form.ControllerSelector.maxIds.ide,
maxValue: PVE.Utils.diskControllerMaxIDs.ide,
value: '0',
flex: 1,
allowBlank: false,