From 7ca344383c237e8946cb73c3f9d3804608461e16 Mon Sep 17 00:00:00 2001 From: Gabriel Goller Date: Wed, 23 Jul 2025 17:49:34 +0200 Subject: frr: early exit on apply when frr is not installed When frr isn't installed (happens e.g. on pve8 to 9 update) then the SDN and Networking "Apply Configuration" task will throw an error because it can't access the frr daemons file to check if the daemons are enabled. In order to fix this, check if the frr config file exists before continuing with the frr config generation. Also make the "daemons file does not exist" error nicer. Signed-off-by: Gabriel Goller Link: https://lore.proxmox.com/20250723154934.928349-1-g.goller@proxmox.com [TL: switch to checking just for /etc/frr and perltidy] Signed-off-by: Thomas Lamprecht --- src/PVE/Network/SDN.pm | 5 +++++ src/PVE/Network/SDN/Frr.pm | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/PVE/Network/SDN.pm b/src/PVE/Network/SDN.pm index 66665a4..0e7d1df 100644 --- a/src/PVE/Network/SDN.pm +++ b/src/PVE/Network/SDN.pm @@ -355,6 +355,11 @@ sub get_frr_daemon_status { sub generate_frr_config { my ($apply) = @_; + if (!-d '/etc/frr') { + print "frr is not installed, not generating any frr configuration\n"; + return; + } + my $running_config = PVE::Network::SDN::running_config(); my $fabric_config = PVE::Network::SDN::Fabrics::config(1); diff --git a/src/PVE/Network/SDN/Frr.pm b/src/PVE/Network/SDN/Frr.pm index 52fa456..b548e7b 100644 --- a/src/PVE/Network/SDN/Frr.pm +++ b/src/PVE/Network/SDN/Frr.pm @@ -130,7 +130,8 @@ sub set_daemon_status { my ($daemon_status, $set_default) = @_; my $daemons_file = "/etc/frr/daemons"; - die "daemons file does not exist" if !-e $daemons_file; + die "/etc/frr/daemons file does not exist; is the frr package installed?\n" + if !-e $daemons_file; for my $daemon (keys %$daemon_status) { die "$daemon is not SDN managed" if !defined $SDN_DAEMONS_DEFAULT->{$daemon}; -- cgit v1.2.3