plugins/{ptp,bridge}: teardown first
authorStefan Junker <mail@stefanjunker.de>
Wed, 11 May 2016 16:50:25 +0000 (18:50 +0200)
committerStefan Junker <mail@stefanjunker.de>
Thu, 19 May 2016 10:06:37 +0000 (12:06 +0200)
This will allow the IPAM allocations to be cleared in case the
interfaces and iptables rules are non-existent.

plugins/main/bridge/bridge.go
plugins/main/ptp/ptp.go

index 3c058e1..77c5215 100644 (file)
@@ -238,6 +238,10 @@ func cmdDel(args *skel.CmdArgs) error {
                return err
        }
 
+       if err := ipam.ExecDel(n.IPAM.Type, args.StdinData); err != nil {
+               return err
+       }
+
        var ipn *net.IPNet
        err = ns.WithNetNSPath(args.Netns, false, func(hostNS *os.File) error {
                var err error
@@ -256,7 +260,7 @@ func cmdDel(args *skel.CmdArgs) error {
                }
        }
 
-       return ipam.ExecDel(n.IPAM.Type, args.StdinData)
+       return nil
 }
 
 func main() {
index 2cd5185..f92c49e 100644 (file)
@@ -195,6 +195,10 @@ func cmdDel(args *skel.CmdArgs) error {
                return fmt.Errorf("failed to load netconf: %v", err)
        }
 
+       if err := ipam.ExecDel(conf.IPAM.Type, args.StdinData); err != nil {
+               return err
+       }
+
        var ipn *net.IPNet
        err := ns.WithNetNSPath(args.Netns, false, func(hostNS *os.File) error {
                var err error
@@ -213,7 +217,7 @@ func cmdDel(args *skel.CmdArgs) error {
                }
        }
 
-       return ipam.ExecDel(conf.IPAM.Type, args.StdinData)
+       return nil
 }
 
 func main() {