sdn: zones: extract function that reads datacenter config

The datacenter_config() functions in SDN::Zones::Plugin is a simple
wrapper that reads datacenter.cfg via cfs.
This allows mocking datacenter.cfg in tests.

Signed-off-by: Stefan Lendl <s.lendl@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Max Carrara <m.carrara@proxmox.com>
Reviewed-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Stefan Hanreich <s.hanreich@proxmox.com>
This commit is contained in:
Stefan Lendl 2024-04-05 15:17:58 +02:00 committed by Thomas Lamprecht
parent 27b54a086b
commit 2f37fddc0e
3 changed files with 8 additions and 2 deletions

View file

@ -3,6 +3,7 @@ package PVE::Network::SDN::Zones::EvpnPlugin;
use strict; use strict;
use warnings; use warnings;
use PVE::Network::SDN::Zones::VxlanPlugin; use PVE::Network::SDN::Zones::VxlanPlugin;
use PVE::Network::SDN::Zones::Plugin;
use PVE::Exception qw(raise raise_param_exc); use PVE::Exception qw(raise raise_param_exc);
use PVE::JSONSchema qw(get_standard_option); use PVE::JSONSchema qw(get_standard_option);
use PVE::Tools qw($IPV4RE); use PVE::Tools qw($IPV4RE);
@ -294,7 +295,7 @@ sub on_update_hook {
} }
if (!defined($zone_cfg->{ids}->{$zoneid}->{'mac'})) { if (!defined($zone_cfg->{ids}->{$zoneid}->{'mac'})) {
my $dc = PVE::Cluster::cfs_read_file('datacenter.cfg'); my $dc = PVE::Network::SDN::Zones::Plugin->datacenter_config();
$zone_cfg->{ids}->{$zoneid}->{'mac'} = PVE::Tools::random_ether_addr($dc->{mac_prefix}); $zone_cfg->{ids}->{$zoneid}->{'mac'} = PVE::Tools::random_ether_addr($dc->{mac_prefix});
} }
} }

View file

@ -356,4 +356,9 @@ sub get_bridge_ifaces {
return @bridge_ifaces; return @bridge_ifaces;
} }
sub datacenter_config {
return PVE::Cluster::cfs_read_file('datacenter.cfg');
}
1; 1;

View file

@ -139,7 +139,7 @@ sub vnet_update_hook {
raise_param_exc({ tag => "vlan tag is not allowed on simple zone"}) if defined($tag); raise_param_exc({ tag => "vlan tag is not allowed on simple zone"}) if defined($tag);
if (!defined($vnet->{mac})) { if (!defined($vnet->{mac})) {
my $dc = PVE::Cluster::cfs_read_file('datacenter.cfg'); my $dc = PVE::Network::SDN::Zones::Plugin::datacenter_config();
$vnet->{mac} = PVE::Tools::random_ether_addr($dc->{mac_prefix}); $vnet->{mac} = PVE::Tools::random_ether_addr($dc->{mac_prefix});
} }
} }