]> git.proxmox.com Git - pve-network.git/commitdiff
api2: update_hook: also verify transport associated to vnet
authorAlexandre Derumier <aderumier@odiso.com>
Fri, 3 May 2019 09:00:18 +0000 (11:00 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 6 May 2019 05:57:14 +0000 (07:57 +0200)
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/API2/Network/Network.pm

index d1992341b08cbbf5d80e306bd28119146c658c32..3dd0a57c33ab1590b1df0344ec5c9390964060a4 100644 (file)
@@ -138,6 +138,14 @@ __PACKAGE__->register_method ({
 
                $cfg->{ids}->{$networkid} = $opts;
                $plugin->on_update_hook($networkid, $cfg);
+               #also verify transport associated to vnet
+               if($scfg->{type} eq 'vnet') {
+                   my $transportid = $scfg->{transportzone};
+                   die "missing transportzone" if !$transportid;
+                   my $transport_cfg = $cfg->{ids}->{$transportid};
+                   my $transport_plugin = PVE::Network::Network::Plugin->lookup($transport_cfg->{type});
+                   $transport_plugin->on_update_hook($transportid, $cfg);
+               }
 
                PVE::Network::Network::write_config($cfg);
            
@@ -180,7 +188,14 @@ __PACKAGE__->register_method ({
            }
 
            $plugin->on_update_hook($networkid, $cfg);
-
+           #also verify transport associated to vnet
+            if($scfg->{type} eq 'vnet') {
+                my $transportid = $scfg->{transportzone};
+                die "missing transportzone" if !$transportid;
+                my $transport_cfg = $cfg->{ids}->{$transportid};
+                my $transport_plugin = PVE::Network::Network::Plugin->lookup($transport_cfg->{type});
+                $transport_plugin->on_update_hook($transportid, $cfg);
+            }
            PVE::Network::Network::write_config($cfg);
 
            }, "update network object failed");