diff options
| author | Gabriel Goller <g.goller@proxmox.com> | 2025-07-23 17:49:34 +0200 |
|---|---|---|
| committer | Thomas Lamprecht <t.lamprecht@proxmox.com> | 2025-07-23 18:43:21 +0200 |
| commit | 7ca344383c237e8946cb73c3f9d3804608461e16 (patch) | |
| tree | 64f37c2b847143afdb5ac492ee7f9dfe5eefe087 | |
| parent | 32cac45c9b369921339a418ee76d44833110bf63 (diff) | |
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 <g.goller@proxmox.com>
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 <t.lamprecht@proxmox.com>
| -rw-r--r-- | src/PVE/Network/SDN.pm | 5 | ||||
| -rw-r--r-- | src/PVE/Network/SDN/Frr.pm | 3 |
2 files changed, 7 insertions, 1 deletions
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}; |
