From: Alexandre Derumier Date: Mon, 13 Apr 2020 06:13:12 +0000 (+0200) Subject: /etc/network/interfaces.d/sdn : add version X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;ds=sidebyside;h=0814c9a9f112aeaf6a27a538d0ac3dded5b141ab;p=pve-network.git /etc/network/interfaces.d/sdn : add version --- diff --git a/PVE/Network/SDN/Zones.pm b/PVE/Network/SDN/Zones.pm index 8f12976..f468cb5 100644 --- a/PVE/Network/SDN/Zones.pm +++ b/PVE/Network/SDN/Zones.pm @@ -25,6 +25,7 @@ PVE::Network::SDN::Zones::EvpnPlugin->register(); PVE::Network::SDN::Zones::FaucetPlugin->register(); PVE::Network::SDN::Zones::Plugin->init(); +my $local_network_sdn_file = "/etc/network/interfaces.d/sdn"; sub sdn_zones_config { my ($cfg, $id, $noerr) = @_; @@ -72,6 +73,7 @@ sub complete_sdn_zone { sub generate_etc_network_config { + my $version = PVE::Cluster::cfs_read_file('sdn/.version'); my $vnet_cfg = PVE::Cluster::cfs_read_file('sdn/vnets.cfg'); my $zone_cfg = PVE::Cluster::cfs_read_file('sdn/zones.cfg'); my $controller_cfg = PVE::Cluster::cfs_read_file('sdn/controllers.cfg'); @@ -111,7 +113,7 @@ sub generate_etc_network_config { $plugin->generate_sdn_config($plugin_config, $zone, $id, $vnet, $controller, $interfaces_config, $config); } - my $raw_network_config = ""; + my $raw_network_config = "\#version:$version\n"; foreach my $iface (sort keys %$config) { $raw_network_config .= "\n"; $raw_network_config .= "auto $iface\n"; @@ -128,13 +130,19 @@ sub write_etc_network_config { my ($rawconfig) = @_; return if !$rawconfig; - my $sdn_interfaces_file = "/etc/network/interfaces.d/sdn"; - my $writefh = IO::File->new($sdn_interfaces_file,">"); + my $writefh = IO::File->new($local_network_sdn_file,">"); print $writefh $rawconfig; $writefh->close(); } +sub read_etc_network_config_version { + my $versionstr = PVE::Tools::file_read_firstline($local_network_sdn_file); + if ($versionstr =~ m/^\#version:(\d+)$/) { + return $1; + } +} + sub ifquery_check { my $cmd = ['ifquery', '-a', '-c', '-o','json'];