From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 048DE1FF16F for ; Tue, 19 Aug 2025 15:18:51 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id AD9D415B6D; Tue, 19 Aug 2025 15:19:56 +0200 (CEST) From: Gabriel Goller To: pve-devel@lists.proxmox.com Date: Tue, 19 Aug 2025 15:19:04 +0200 Message-ID: <20250819131916.324392-6-g.goller@proxmox.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250819131916.324392-1-g.goller@proxmox.com> References: <20250819131916.324392-1-g.goller@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1755609518248 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.006 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH pve-manager 1/2] fabrics: add IS-IS panels X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" The IS-IS panels have the same properties as OpenFabric both on the FabricEdit and the NodeEdit. Signed-off-by: Gabriel Goller --- www/manager6/Makefile | 19 ++--- www/manager6/sdn/FabricsView.js | 12 ++++ www/manager6/sdn/fabrics/NodeEdit.js | 1 + www/manager6/sdn/fabrics/isis/FabricEdit.js | 69 +++++++++++++++++++ .../sdn/fabrics/isis/InterfacePanel.js | 34 +++++++++ www/manager6/sdn/fabrics/isis/NodeEdit.js | 22 ++++++ 6 files changed, 149 insertions(+), 8 deletions(-) create mode 100644 www/manager6/sdn/fabrics/isis/FabricEdit.js create mode 100644 www/manager6/sdn/fabrics/isis/InterfacePanel.js create mode 100644 www/manager6/sdn/fabrics/isis/NodeEdit.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 07401f21520b..9e16bdef46bc 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -314,15 +314,18 @@ JSSRC= \ sdn/zones/VxlanEdit.js \ sdn/FabricsView.js \ sdn/fabrics/Common.js \ - sdn/fabrics/InterfacePanel.js \ + sdn/fabrics/InterfacePanel.js \ sdn/fabrics/NodeEdit.js \ - sdn/fabrics/FabricEdit.js \ - sdn/fabrics/openfabric/InterfacePanel.js \ - sdn/fabrics/openfabric/NodeEdit.js \ - sdn/fabrics/openfabric/FabricEdit.js \ - sdn/fabrics/ospf/InterfacePanel.js \ - sdn/fabrics/ospf/NodeEdit.js \ - sdn/fabrics/ospf/FabricEdit.js \ + sdn/fabrics/FabricEdit.js \ + sdn/fabrics/openfabric/InterfacePanel.js \ + sdn/fabrics/openfabric/NodeEdit.js \ + sdn/fabrics/openfabric/FabricEdit.js \ + sdn/fabrics/isis/InterfacePanel.js \ + sdn/fabrics/isis/NodeEdit.js \ + sdn/fabrics/isis/FabricEdit.js \ + sdn/fabrics/ospf/InterfacePanel.js \ + sdn/fabrics/ospf/NodeEdit.js \ + sdn/fabrics/ospf/FabricEdit.js \ storage/ContentView.js \ storage/BackupView.js \ storage/Base.js \ diff --git a/www/manager6/sdn/FabricsView.js b/www/manager6/sdn/FabricsView.js index 093a70f35d3c..dcedc214e184 100644 --- a/www/manager6/sdn/FabricsView.js +++ b/www/manager6/sdn/FabricsView.js @@ -32,6 +32,7 @@ Ext.define('PVE.sdn.Fabric.View', { if (rec.data.type === 'fabric') { const PROTOCOL_DISPLAY_NAMES = { openfabric: 'OpenFabric', + isis: 'IS-IS', ospf: 'OSPF', }; const displayValue = PROTOCOL_DISPLAY_NAMES[value]; @@ -190,6 +191,10 @@ Ext.define('PVE.sdn.Fabric.View', { text: 'OpenFabric', handler: 'addOpenfabric', }, + { + text: 'IS-IS', + handler: 'addIsis', + }, { text: 'OSPF', handler: 'addOspf', @@ -271,6 +276,7 @@ Ext.define('PVE.sdn.Fabric.View', { getFabricEditPanel: function (protocol) { const FABRIC_PANELS = { openfabric: 'PVE.sdn.Fabric.OpenFabric.Fabric.Edit', + isis: 'PVE.sdn.Fabric.Isis.Fabric.Edit', ospf: 'PVE.sdn.Fabric.Ospf.Fabric.Edit', }; @@ -280,6 +286,7 @@ Ext.define('PVE.sdn.Fabric.View', { getNodeEditPanel: function (protocol) { const NODE_PANELS = { openfabric: 'PVE.sdn.Fabric.OpenFabric.Node.Edit', + isis: 'PVE.sdn.Fabric.Isis.Node.Edit', ospf: 'PVE.sdn.Fabric.Ospf.Node.Edit', }; @@ -291,6 +298,11 @@ Ext.define('PVE.sdn.Fabric.View', { me.openFabricAddWindow('openfabric'); }, + addIsis: function () { + let me = this; + me.openFabricAddWindow('isis'); + }, + addOspf: function () { let me = this; me.openFabricAddWindow('ospf'); diff --git a/www/manager6/sdn/fabrics/NodeEdit.js b/www/manager6/sdn/fabrics/NodeEdit.js index 161917ccd1e5..1a8ec9df1b4b 100644 --- a/www/manager6/sdn/fabrics/NodeEdit.js +++ b/www/manager6/sdn/fabrics/NodeEdit.js @@ -199,6 +199,7 @@ Ext.define('PVE.sdn.Fabric.Node.Edit', { getInterfacePanel: function (protocol) { const INTERFACE_PANELS = { openfabric: 'PVE.sdn.Fabric.OpenFabric.InterfacePanel', + isis: 'PVE.sdn.Fabric.Isis.InterfacePanel', ospf: 'PVE.sdn.Fabric.Ospf.InterfacePanel', }; diff --git a/www/manager6/sdn/fabrics/isis/FabricEdit.js b/www/manager6/sdn/fabrics/isis/FabricEdit.js new file mode 100644 index 000000000000..38825de0bd0f --- /dev/null +++ b/www/manager6/sdn/fabrics/isis/FabricEdit.js @@ -0,0 +1,69 @@ +Ext.define('PVE.sdn.Fabric.Isis.Fabric.Edit', { + extend: 'PVE.sdn.Fabric.Fabric.Edit', + + subject: 'IS-IS', + onlineHelp: 'pvesdn_isis_fabric', + + viewModel: { + data: { + showIpv6ForwardingHint: false, + }, + }, + + extraRequestParams: { + protocol: 'isis', + }, + + additionalItems: [ + { + xtype: 'displayfield', + value: 'To make IPv6 fabrics work, enable global IPv6 forwarding on all nodes. Click on the Help button for more details.', + bind: { + hidden: '{!showIpv6ForwardingHint}', + }, + userCls: 'pmx-hint', + }, + { + xtype: 'proxmoxtextfield', + fieldLabel: gettext('IPv6 Prefix'), + labelWidth: 120, + name: 'ip6_prefix', + allowBlank: true, + skipEmptyText: true, + cbind: { + disabled: '{!isCreate}', + deleteEmpty: '{!isCreate}', + }, + listeners: { + change: function (textbox, value) { + let vm = textbox.up('window').getViewModel(); + vm.set('showIpv6ForwardingHint', !!value); + }, + }, + }, + { + xtype: 'proxmoxintegerfield', + fieldLabel: gettext('Hello Interval'), + labelWidth: 120, + name: 'hello_interval', + allowBlank: true, + emptyText: '3', + skipEmptyText: true, + cbind: { + deleteEmpty: '{!isCreate}', + }, + }, + { + xtype: 'proxmoxintegerfield', + fieldLabel: gettext('CSNP Interval'), + labelWidth: 120, + name: 'csnp_interval', + allowBlank: true, + emptyText: '10', + skipEmptyText: true, + cbind: { + deleteEmpty: '{!isCreate}', + }, + }, + ], +}); diff --git a/www/manager6/sdn/fabrics/isis/InterfacePanel.js b/www/manager6/sdn/fabrics/isis/InterfacePanel.js new file mode 100644 index 000000000000..dc2c5b55eb6a --- /dev/null +++ b/www/manager6/sdn/fabrics/isis/InterfacePanel.js @@ -0,0 +1,34 @@ +Ext.define('PVE.sdn.Fabric.Isis.InterfacePanel', { + extend: 'PVE.sdn.Fabric.InterfacePanel', + + additionalColumns: [ + { + text: gettext('IPv6'), + xtype: 'widgetcolumn', + dataIndex: 'ip6', + flex: 1, + widget: { + xtype: 'proxmoxtextfield', + isFormField: false, + bind: { + disabled: '{record.isDisabled}', + }, + }, + }, + { + text: gettext('Hello Multiplier'), + xtype: 'widgetcolumn', + dataIndex: 'hello_multiplier', + flex: 1, + hidden: true, + widget: { + xtype: 'proxmoxintegerfield', + isFormField: false, + emptyText: '10', + bind: { + disabled: '{record.isDisabled}', + }, + }, + }, + ], +}); diff --git a/www/manager6/sdn/fabrics/isis/NodeEdit.js b/www/manager6/sdn/fabrics/isis/NodeEdit.js new file mode 100644 index 000000000000..9878edcccb73 --- /dev/null +++ b/www/manager6/sdn/fabrics/isis/NodeEdit.js @@ -0,0 +1,22 @@ +Ext.define('PVE.sdn.Fabric.Isis.Node.Edit', { + extend: 'PVE.sdn.Fabric.Node.Edit', + protocol: 'isis', + + extraRequestParams: { + protocol: 'isis', + }, + + additionalItems: [ + { + xtype: 'proxmoxtextfield', + fieldLabel: gettext('IPv6'), + labelWidth: 120, + name: 'ip6', + allowBlank: true, + skipEmptyText: true, + cbind: { + deleteEmpty: '{!isCreate}', + }, + }, + ], +}); -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel