plugins: don't require CNI_NETNS for DEL command

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.
This commit is contained in:
Stefan Junker 2016-05-27 10:57:39 +02:00
parent 7f90f9d559
commit 72337159c1
5 changed files with 17 additions and 1 deletions

View File

@ -69,7 +69,7 @@ func PluginMain(cmdAdd, cmdDel func(_ *CmdArgs) error) {
&netns, &netns,
reqForCmdEntry{ reqForCmdEntry{
"ADD": true, "ADD": true,
"DEL": true, "DEL": false,
}, },
}, },
{ {

View File

@ -289,6 +289,10 @@ func cmdDel(args *skel.CmdArgs) error {
return err return err
} }
if args.Netns == "" {
return nil
}
var ipn *net.IPNet var ipn *net.IPNet
err = ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { err = ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
var err error var err error

View File

@ -152,6 +152,10 @@ func cmdDel(args *skel.CmdArgs) error {
return err return err
} }
if args.Netns == "" {
return nil
}
return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
return ip.DelLinkByName(args.IfName) return ip.DelLinkByName(args.IfName)
}) })

View File

@ -170,6 +170,10 @@ func cmdDel(args *skel.CmdArgs) error {
return err return err
} }
if args.Netns == "" {
return nil
}
return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { return ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
return ip.DelLinkByName(args.IfName) return ip.DelLinkByName(args.IfName)
}) })

View File

@ -199,6 +199,10 @@ func cmdDel(args *skel.CmdArgs) error {
return err return err
} }
if args.Netns == "" {
return nil
}
var ipn *net.IPNet var ipn *net.IPNet
err := ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error { err := ns.WithNetNSPath(args.Netns, func(_ ns.NetNS) error {
var err error var err error