plugins: don't require CNI_NETNS for DEL command
authorStefan Junker <mail@stefanjunker.de>
Fri, 27 May 2016 08:57:39 +0000 (10:57 +0200)
committerStefan Junker <mail@stefanjunker.de>
Fri, 27 May 2016 08:57:39 +0000 (10:57 +0200)
This will allow to free up the IPAM allocations when the caller doesn't
have access to the network namespace anymore, e.g. due to a reboot.

pkg/skel/skel.go
plugins/main/bridge/bridge.go
plugins/main/ipvlan/ipvlan.go
plugins/main/macvlan/macvlan.go
plugins/main/ptp/ptp.go

index 1f9438c..9cf0391 100644 (file)
@@ -69,7 +69,7 @@ func PluginMain(cmdAdd, cmdDel func(_ *CmdArgs) error) {
                        &netns,
                        reqForCmdEntry{
                                "ADD": true,
-                               "DEL": true,
+                               "DEL": false,
                        },
                },
                {
index 6a90a4a..d4fc89c 100644 (file)
@@ -289,6 +289,10 @@ func cmdDel(args *skel.CmdArgs) error {
                return err
        }
 
+       if args.Netns == "" {
+               return nil
+       }
+
        var ipn *net.IPNet
        err = ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
                var err error
index 84f9c77..d7cfc39 100644 (file)
@@ -152,6 +152,10 @@ func cmdDel(args *skel.CmdArgs) error {
                return err
        }
 
+       if args.Netns == "" {
+               return nil
+       }
+
        return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
                return ip.DelLinkByName(args.IfName)
        })
index f7eb656..7739d7b 100644 (file)
@@ -170,6 +170,10 @@ func cmdDel(args *skel.CmdArgs) error {
                return err
        }
 
+       if args.Netns == "" {
+               return nil
+       }
+
        return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
                return ip.DelLinkByName(args.IfName)
        })
index ec6e23e..aa695e3 100644 (file)
@@ -199,6 +199,10 @@ func cmdDel(args *skel.CmdArgs) error {
                return err
        }
 
+       if args.Netns == "" {
+               return nil
+       }
+
        var ipn *net.IPNet
        err := ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
                var err error