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) = @_;
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');
$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";
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'];