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 B8E451FF13E for ; Fri, 17 Apr 2026 14:28:39 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 75FCB1D64; Fri, 17 Apr 2026 14:28:11 +0200 (CEST) From: Daniel Kral To: pve-devel@lists.proxmox.com Subject: [PATCH ha-manager 2/7] consistently use correct priority levels for log calls Date: Fri, 17 Apr 2026 14:27:17 +0200 Message-ID: <20260417122728.330123-3-d.kral@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260417122728.330123-1-d.kral@proxmox.com> References: <20260417122728.330123-1-d.kral@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1776428771545 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.079 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: Q6Z62THPMDOWKA5GG3JRFWHUXXEOQN3A X-Message-ID-Hash: Q6Z62THPMDOWKA5GG3JRFWHUXXEOQN3A X-MailFrom: d.kral@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 correct priority string for warnings is 'warning' and for errors is 'err' as this is relayed directly to the PVE::SafeSyslog::syslog() in the PVE::HA::Env::PVE2::log() implementation. This doesn't change the test log output as its log() implementation trims the priority level to the first four characters. This doesn't have any functional changes, because PVE::SafeSyslog already handles the 'warn' string correctly and the log calls with 'error' are only for tests, but it's better to be consistent here. Signed-off-by: Daniel Kral --- src/PVE/HA/Env.pm | 2 ++ src/PVE/HA/Env/PVE2.pm | 2 +- src/PVE/HA/Fence.pm | 2 +- src/PVE/HA/Manager.pm | 6 +++--- src/PVE/HA/Sim/Env.pm | 1 + src/PVE/HA/Sim/Hardware.pm | 8 ++++---- src/PVE/HA/Sim/Resources/VirtCT.pm | 2 +- 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/PVE/HA/Env.pm b/src/PVE/HA/Env.pm index 44c26854..cd31de73 100644 --- a/src/PVE/HA/Env.pm +++ b/src/PVE/HA/Env.pm @@ -169,6 +169,8 @@ sub get_node_info { return $self->{plug}->get_node_info(); } +# $level must match a valid value as the priority levels in Sys::Syslog, which are: +# 'emerg', 'alert', 'crit', 'err', 'warning', 'notice', 'info', and 'debug'. sub log { my ($self, $level, @args) = @_; diff --git a/src/PVE/HA/Env/PVE2.pm b/src/PVE/HA/Env/PVE2.pm index 3caf32fc..68bbe8d2 100644 --- a/src/PVE/HA/Env/PVE2.pm +++ b/src/PVE/HA/Env/PVE2.pm @@ -447,7 +447,7 @@ sub cluster_state_update { eval { PVE::Cluster::cfs_update(1) }; if (my $err = $@) { - $self->log('warn', "cluster file system update failed - $err"); + $self->log('warning', "cluster file system update failed - $err"); return 0; } diff --git a/src/PVE/HA/Fence.pm b/src/PVE/HA/Fence.pm index 49d673f4..84d86794 100644 --- a/src/PVE/HA/Fence.pm +++ b/src/PVE/HA/Fence.pm @@ -191,7 +191,7 @@ sub process_fencing { $tried_device_count++; # try next available device return if run_fence_jobs($node, $tried_device_count); - $haenv->log('warn', "could not start fence job at try '$tried_device_count'"); + $haenv->log('warning', "could not start fence job at try '$tried_device_count'"); } $results->{$node}->{failure} = 1; diff --git a/src/PVE/HA/Manager.pm b/src/PVE/HA/Manager.pm index b69a6bba..5ebf9caa 100644 --- a/src/PVE/HA/Manager.pm +++ b/src/PVE/HA/Manager.pm @@ -682,7 +682,7 @@ sub update_crm_commands { my $state = $ns->get_node_state($node); if ($ms->{disarm}) { $haenv->log( - 'warn', + 'warning', "ignoring maintenance command for node $node - HA stack is disarmed", ); } elsif ($state eq 'online') { @@ -701,7 +701,7 @@ sub update_crm_commands { my $state = $ns->get_node_state($node); if ($state ne 'maintenance') { $haenv->log( - 'warn', + 'warning', "clearing maintenance of node $node requested, but it's in state $state", ); } @@ -906,7 +906,7 @@ sub handle_disarm { for my $sid (sort keys %$ss) { my $state = $ss->{$sid}->{state}; if ($state eq 'fence' || $state eq 'recovery') { - $haenv->log('warn', "deferring disarm - service '$sid' is in '$state' state"); + $haenv->log('warning', "deferring disarm - service '$sid' is in '$state' state"); $deferred_sids->{$sid} = 1; } elsif ($state eq 'migrate' || $state eq 'relocate') { $haenv->log('info', "deferring disarm - service '$sid' is in '$state' state"); diff --git a/src/PVE/HA/Sim/Env.pm b/src/PVE/HA/Sim/Env.pm index 63368117..38ac1d03 100644 --- a/src/PVE/HA/Sim/Env.pm +++ b/src/PVE/HA/Sim/Env.pm @@ -348,6 +348,7 @@ sub send_notification { $subject = $subject =~ s/\{\{fence-status}}/$properties->{"fence-status"}/r; # only log subject, do not spam the logs + # allow invalid 'email' priority level here as it's only for test log output $self->log('email', $subject); } diff --git a/src/PVE/HA/Sim/Hardware.pm b/src/PVE/HA/Sim/Hardware.pm index 163e35af..891d552f 100644 --- a/src/PVE/HA/Sim/Hardware.pm +++ b/src/PVE/HA/Sim/Hardware.pm @@ -455,7 +455,7 @@ sub read_static_service_stats { my $filename = "$self->{statusdir}/static_service_stats"; my $stats = eval { PVE::HA::Tools::read_json_from_file($filename) }; - $self->log('error', "loading static service stats failed - $@") if $@; + $self->log('err', "loading static service stats failed - $@") if $@; return $stats; } @@ -465,7 +465,7 @@ sub read_dynamic_service_stats { my $filename = "$self->{statusdir}/dynamic_service_stats"; my $stats = eval { PVE::HA::Tools::read_json_from_file($filename) }; - $self->log('error', "loading dynamic service stats failed - $@") if $@; + $self->log('err', "loading dynamic service stats failed - $@") if $@; return $stats; } @@ -475,7 +475,7 @@ sub write_static_service_stats { my $filename = "$self->{statusdir}/static_service_stats"; eval { PVE::HA::Tools::write_json_to_file($filename, $stats) }; - $self->log('error', "writing static service stats failed - $@") if $@; + $self->log('err', "writing static service stats failed - $@") if $@; } sub write_dynamic_service_stats { @@ -483,7 +483,7 @@ sub write_dynamic_service_stats { my $filename = "$self->{statusdir}/dynamic_service_stats"; eval { PVE::HA::Tools::write_json_to_file($filename, $stats) }; - $self->log('error', "writing dynamic service stats failed - $@") if $@; + $self->log('err', "writing dynamic service stats failed - $@") if $@; } sub new { diff --git a/src/PVE/HA/Sim/Resources/VirtCT.pm b/src/PVE/HA/Sim/Resources/VirtCT.pm index 594dba56..3f6df85e 100644 --- a/src/PVE/HA/Sim/Resources/VirtCT.pm +++ b/src/PVE/HA/Sim/Resources/VirtCT.pm @@ -25,7 +25,7 @@ sub migrate { my $ss = $hardware->read_service_status($nodename); if ($online && $ss->{$sid}) { - $haenv->log('warn', "unable to live migrate running container, fallback to relocate"); + $haenv->log('warning', "unable to live migrate running container, fallback to relocate"); $online = 0; } -- 2.47.3