From: Hannes Laimer <h.laimer@proxmox.com>
To: Gabriel Goller <g.goller@proxmox.com>, pve-devel@lists.proxmox.com
Subject: Re: [PATCH manager] sdn: fabrics: show node address fields only for configured prefixes
Date: Wed, 20 May 2026 17:45:20 +0200 [thread overview]
Message-ID: <784e6ae6-fb07-4074-aada-ed893d23b359@proxmox.com> (raw)
In-Reply-To: <20260520151236.395956-1-g.goller@proxmox.com>
Tested-by: Hannes Laimer <h.laimer@proxmox.com>
On 2026-05-20 17:12, Gabriel Goller wrote:
> Only show the IPv4 or IPv6 address field for a fabric node when the
> fabric has the matching prefix configured.
>
> Suggested-by: Dominik Csapak <d.csapak@proxmox.com>
> Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
> ---
> www/manager6/sdn/FabricsView.js | 13 +++++++++++--
> www/manager6/sdn/fabrics/NodeEdit.js | 9 +++++++--
> 2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/www/manager6/sdn/FabricsView.js b/www/manager6/sdn/FabricsView.js
> index 4676266d0413..f2b8456a7720 100644
> --- a/www/manager6/sdn/FabricsView.js
> +++ b/www/manager6/sdn/FabricsView.js
> @@ -305,6 +305,11 @@ Ext.define('PVE.sdn.Fabric.View', {
> return NODE_PANELS[protocol];
> },
>
> + getFabricPrefix: function (fabric, prefixKey) {
> + let prefix = fabric?.[prefixKey];
> + return prefix === 'deleted' ? undefined : prefix;
> + },
> +
> addWireGuard: function () {
> let me = this;
> me.openFabricAddWindow('wireguard');
> @@ -370,6 +375,8 @@ Ext.define('PVE.sdn.Fabric.View', {
> autoShow: true,
> fabricId: fabric.id,
> protocol: fabric.protocol,
> + fabricIpPrefix: me.getFabricPrefix(fabric, 'ip_prefix'),
> + fabricIp6Prefix: me.getFabricPrefix(fabric, 'ip6_prefix'),
> disallowedNodes,
> addAnotherCallback: () => {
> let successCallback = () => {
> @@ -404,7 +411,7 @@ Ext.define('PVE.sdn.Fabric.View', {
> window.on('destroy', () => me.reload());
> },
>
> - openNodeEditWindow: function (node) {
> + openNodeEditWindow: function (node, fabric) {
> let me = this;
>
> let component = me.getNodeEditPanel(node.protocol);
> @@ -414,6 +421,8 @@ Ext.define('PVE.sdn.Fabric.View', {
> fabricId: node.fabric_id,
> nodeId: node.node_id,
> protocol: node.protocol,
> + fabricIpPrefix: me.getFabricPrefix(fabric, 'ip_prefix'),
> + fabricIp6Prefix: me.getFabricPrefix(fabric, 'ip6_prefix'),
> });
>
> window.on('destroy', () => me.reload());
> @@ -425,7 +434,7 @@ Ext.define('PVE.sdn.Fabric.View', {
> if (rec.data.type === 'fabric') {
> me.openFabricEditWindow(rec.data);
> } else if (rec.data.type === 'node') {
> - me.openNodeEditWindow(rec.data);
> + me.openNodeEditWindow(rec.data, rec.parentNode.data);
> } else {
> console.warn(`unknown type ${rec.data.type}`);
> }
> diff --git a/www/manager6/sdn/fabrics/NodeEdit.js b/www/manager6/sdn/fabrics/NodeEdit.js
> index 2ed5336b3b49..ef4577cb67ba 100644
> --- a/www/manager6/sdn/fabrics/NodeEdit.js
> +++ b/www/manager6/sdn/fabrics/NodeEdit.js
> @@ -14,6 +14,9 @@ Ext.define('PVE.sdn.Fabric.Node.Edit', {
> hasIpv4Support: true,
> hasIpv6Support: true,
>
> + fabricIpPrefix: undefined,
> + fabricIp6Prefix: undefined,
> +
> disallowedNodes: [],
>
> baseUrl: '/cluster/sdn/fabrics/node',
> @@ -45,12 +48,13 @@ Ext.define('PVE.sdn.Fabric.Node.Edit', {
> me.url = `${me.baseUrl}/${me.fabricId}`;
> }
>
> - if (me.hasIpv4Support) {
> + if (me.hasIpv4Support && me.fabricIpPrefix) {
> me.items.push({
> xtype: 'proxmoxtextfield',
> fieldLabel: gettext('IPv4'),
> labelWidth: 120,
> name: 'ip',
> + vtype: 'IPAddress',
> allowBlank: true,
> skipEmptyText: true,
> cbind: {
> @@ -59,12 +63,13 @@ Ext.define('PVE.sdn.Fabric.Node.Edit', {
> });
> }
>
> - if (me.hasIpv6Support) {
> + if (me.hasIpv6Support && me.fabricIp6Prefix) {
> me.items.push({
> xtype: 'proxmoxtextfield',
> fieldLabel: gettext('IPv6'),
> labelWidth: 120,
> name: 'ip6',
> + vtype: 'IP6Address',
> allowBlank: true,
> skipEmptyText: true,
> cbind: {
next prev parent reply other threads:[~2026-05-20 15:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-20 15:12 [PATCH manager] sdn: fabrics: show node address fields only for configured prefixes Gabriel Goller
2026-05-20 15:12 ` [PATCH manager] sdn: fabrics: disable prefix editing when nodes exist Gabriel Goller
2026-05-20 15:45 ` Hannes Laimer
2026-05-20 15:12 ` [PATCH manager] sdn: fabrics: require at least one prefix Gabriel Goller
2026-05-20 15:45 ` Hannes Laimer
2026-05-20 15:45 ` Hannes Laimer [this message]
2026-05-21 9:24 ` applied: [PATCH manager] sdn: fabrics: show node address fields only for configured prefixes Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=784e6ae6-fb07-4074-aada-ed893d23b359@proxmox.com \
--to=h.laimer@proxmox.com \
--cc=g.goller@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox