]> git.proxmox.com Git - pve-network.git/blobdiff - PVE/Network/SDN/Zones.pm
grammar fix: s/does not exists/does not exist/g
[pve-network.git] / PVE / Network / SDN / Zones.pm
index 84ce60ce185c380f929f91330275a59a7b6d3963..a76ee11b205b27bab3cbd308bf4185d0e3e4e530 100644 (file)
@@ -31,7 +31,7 @@ sub sdn_zones_config {
     die "no sdn zone ID specified\n" if !$id;
 
     my $scfg = $cfg->{ids}->{$id};
-    die "sdn '$id' does not exists\n" if (!$noerr && !$scfg);
+    die "sdn '$id' does not exist\n" if (!$noerr && !$scfg);
 
     return $scfg;
 }
@@ -76,24 +76,10 @@ sub generate_etc_network_config {
 
     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');
     return if !$vnet_cfg && !$zone_cfg;
 
-    #read main config for physical interfaces
-    my $current_config_file = "/etc/network/interfaces";
-    my $fh = IO::File->new($current_config_file);
-    my $interfaces_config = PVE::INotify::read_etc_network_interfaces(1,$fh);
-    $fh->close();
-
-    #check uplinks
-    my $uplinks = {};
-    foreach my $id (keys %{$interfaces_config->{ifaces}}) {
-       my $interface = $interfaces_config->{ifaces}->{$id};
-       if (my $uplink = $interface->{'uplink-id'}) {
-           die "uplink-id $uplink is already defined on $uplinks->{$uplink}" if $uplinks->{$uplink};
-           $interface->{name} = $id;
-           $uplinks->{$interface->{'uplink-id'}} = $interface;
-       }
-    }
+    my $interfaces_config = PVE::INotify::read_file('interfaces');
 
     #generate configuration
     my $config = {};
@@ -117,8 +103,14 @@ sub generate_etc_network_config {
 
        next if defined($plugin_config->{nodes}) && !$plugin_config->{nodes}->{$nodename};
 
+       my $controller = undef;
+       if($plugin_config->{controller}) {
+           my $controllerid = $plugin_config->{controller};
+           $controller = $controller_cfg->{ids}->{$controllerid};
+       }
+
        my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type});
-       $plugin->generate_sdn_config($plugin_config, $zone, $id, $vnet, $uplinks, $config);
+       $plugin->generate_sdn_config($plugin_config, $zone, $id, $vnet, $controller, $interfaces_config, $config);
     }
 
     my $raw_network_config = "";