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 34C2E1FF141 for ; Mon, 30 Mar 2026 16:46:57 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BCB9B2549; Mon, 30 Mar 2026 16:46:39 +0200 (CEST) From: =?UTF-8?q?Michael=20K=C3=B6ppl?= To: pve-devel@lists.proxmox.com Subject: [PATCH cluster 3/5] api: add token timeout and warning level to cluster join info Date: Mon, 30 Mar 2026 16:43:19 +0200 Message-ID: <20260330144321.321072-4-m.koeppl@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330144321.321072-1-m.koeppl@proxmox.com> References: <20260330144321.321072-1-m.koeppl@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1774881748330 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.092 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 Message-ID-Hash: K22EHS4QIXOMVHYTKB7ADICKGY7O3EQ3 X-Message-ID-Hash: K22EHS4QIXOMVHYTKB7ADICKGY7O3EQ3 X-MailFrom: m.koeppl@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The token timeout in seconds and the warning level provide additional information for users regarding the expected token timeout in seconds after adding an additional node and whether changing the token coefficient is recommended. Signed-off-by: Michael Köppl --- I'm not quite sure regarding this one, so please feel free to provide feedback here. I decided against simply returning the same warning message as in pvecm here because I wanted to avoid returning a warning message with a URL from the API. However, I still wanted to provide information regarding the high token timeout to users who call the API directly. These 2 fields give enough flexibility for the web UI while still returning documented properties. src/PVE/API2/ClusterConfig.pm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/PVE/API2/ClusterConfig.pm b/src/PVE/API2/ClusterConfig.pm index bbed40e..6a0f99c 100644 --- a/src/PVE/API2/ClusterConfig.pm +++ b/src/PVE/API2/ClusterConfig.pm @@ -571,6 +571,18 @@ __PACKAGE__->register_method({ preferred_node => get_standard_option('pve-node'), totem => { type => 'object' }, config_digest => { type => 'string' }, + expected_timeout => { + type => 'number', + description => + "Expected total timeout (in seconds) if an additional node is added.", + optional => 1, + }, + timeout_warning_level => { + type => 'string', + description => "Warning level for the expected total timeout.", + optional => 1, + enum => ['optimize', 'change-recommended', 'change-strongly-recommended'], + }, }, }, code => sub { @@ -599,12 +611,20 @@ __PACKAGE__->register_method({ $node->{pve_addr} = scalar(PVE::Cluster::remote_node_ip($name)); } + # Total timeout if additional node is added + my $total_timeout_secs = + PVE::Corosync::calculate_total_timeout($totem_cfg, scalar(keys %$nodelist) + 1); + + my $warning_level = PVE::Corosync::get_timeout_warning_level($total_timeout_secs); + my $res = { nodelist => [values %$nodelist], preferred_node => $nodename, totem => $totem_cfg, config_digest => $corosync_config_digest, + expected_timeout => $total_timeout_secs, }; + $res->{timeout_warning_level} = $warning_level if defined($warning_level); return $res; }, -- 2.47.3