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); 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 // types is either undefined (all busses), an array of busses, or a single bus
forEachBus: function(types, func) { forEachBus: function(types, func) {
var busses = Object.keys(PVE.Utils.bus_counts); var busses = Object.keys(PVE.Utils.diskControllerMaxIDs);
var i, j, count, cont; var i, j, count, cont;
if (Ext.isArray(types)) { if (Ext.isArray(types)) {
@ -1171,13 +1176,13 @@ Ext.define('PVE.Utils', { utilities: {
// check if we only have valid busses // check if we only have valid busses
for (i = 0; i < busses.length; i++) { 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] + "'"; throw "invalid bus: '" + busses[i] + "'";
} }
} }
for (i = 0; i < busses.length; 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++) { for (j = 0; j < count; j++) {
cont = func(busses[i], j); cont = func(busses[i], j);
if (!cont && cont !== undefined) { if (!cont && cont !== undefined) {

View File

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