[pve-devel] [PATCH pve-manager v5 18/18] ui: sdn: vxlan: add fabric property

Gabriel Goller g.goller at proxmox.com
Wed Jul 16 15:08:35 CEST 2025


From: Stefan Hanreich <s.hanreich at proxmox.com>

VXLAN zones can now use fabrics instead of having to specify peers
manually. Since the network selector doesn't implement deleteEmpty,
we have to manually handle deleted properties in the VXLAN input
panel.

Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
 www/manager6/sdn/zones/VxlanEdit.js | 51 +++++++++++++++++++++++++++--
 1 file changed, 49 insertions(+), 2 deletions(-)

diff --git a/www/manager6/sdn/zones/VxlanEdit.js b/www/manager6/sdn/zones/VxlanEdit.js
index bbf1ce8c2df0..20e1c5bb7b00 100644
--- a/www/manager6/sdn/zones/VxlanEdit.js
+++ b/www/manager6/sdn/zones/VxlanEdit.js
@@ -8,8 +8,25 @@ Ext.define('PVE.sdn.zones.VxlanInputPanel', {
 
         if (me.isCreate) {
             values.type = me.type;
+            delete values.delete;
         } else {
             delete values.zone;
+
+            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];
+                    }
+                }
+            }
         }
 
         delete values.mode;
@@ -22,10 +39,40 @@ Ext.define('PVE.sdn.zones.VxlanInputPanel', {
 
         me.items = [
             {
-                xtype: 'textfield',
+                xtype: 'proxmoxtextfield',
                 name: 'peers',
                 fieldLabel: gettext('Peer Address List'),
-                allowBlank: false,
+                allowBlank: true,
+                deleteEmpty: true,
+            },
+            {
+                xtype: 'proxmoxNetworkSelector',
+                name: 'fabric',
+                type: 'fabric',
+                valueField: 'iface',
+                displayField: 'iface',
+                fieldLabel: 'SDN Fabric',
+                skipEmptyText: true,
+                allowBlank: 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,
+                        },
+                    ],
+                },
             },
         ];
 
-- 
2.39.5





More information about the pve-devel mailing list