Expose the new fabric field added to the EVPN controller in the UI. Users can now select any fabric in the EVPN controller, instead of having to specify peers manually. This simplifies setting up an EVPN zone via SDN fabrics considerably.
Since the peers field can now be empty, we have to adapt the existing field to allow empty values and properly send the delete property when updating a controller. Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com> --- www/manager6/sdn/controllers/Base.js | 17 ++++++++++++ www/manager6/sdn/controllers/EvpnEdit.js | 35 ++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/www/manager6/sdn/controllers/Base.js b/www/manager6/sdn/controllers/Base.js index fd8bd9a05..f75080e4e 100644 --- a/www/manager6/sdn/controllers/Base.js +++ b/www/manager6/sdn/controllers/Base.js @@ -8,8 +8,25 @@ Ext.define('PVE.panel.SDNControllerBase', { if (me.isCreate) { values.type = me.type; + delete values.delete; } else { delete values.controller; + + for (const [key, value] of Object.entries(values)) { + if (value === null || value === undefined || value === "") { + delete values[key]; + + if (values.delete) { + if (Array.isArray(values.delete)) { + values.delete.push(key); + } else { + values.delete = [values.delete, key]; + } + } else { + values.delete = [key]; + } + } + } } return values; diff --git a/www/manager6/sdn/controllers/EvpnEdit.js b/www/manager6/sdn/controllers/EvpnEdit.js index d04b3e544..f9fa0215c 100644 --- a/www/manager6/sdn/controllers/EvpnEdit.js +++ b/www/manager6/sdn/controllers/EvpnEdit.js @@ -25,10 +25,41 @@ Ext.define('PVE.sdn.controllers.EvpnInputPanel', { allowBlank: false, }, { - xtype: 'textfield', + xtype: 'proxmoxNetworkSelector', + name: 'fabric', + type: 'fabric', + valueField: 'iface', + displayField: 'iface', + fieldLabel: 'SDN Fabric', + allowBlank: true, + skipEmptyText: true, + autoSelect: false, + emptyText: gettext('used as underlay network'), + nodename: 'localhost', + listConfig: { + width: 600, + columns: [ + { + header: gettext('Fabric'), + width: 90, + dataIndex: 'iface', + }, + { + + header: gettext('CIDR'), + dataIndex: 'cidr', + hideable: false, + flex: 1, + }, + ], + }, + }, + { + xtype: 'proxmoxtextfield', name: 'peers', fieldLabel: gettext('Peers'), - allowBlank: false, + allowBlank: true, + deleteEmpty: true, }, ]; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel