From 214bcb8c8b56e5e54b7abe3f5bfb3149eec73f75 Mon Sep 17 00:00:00 2001 From: Bruce Ma Date: Thu, 18 Apr 2019 21:16:29 +0800 Subject: [PATCH] fix bug on ipam revert if cmdAdd fails on macvlan and host-device --- plugins/main/host-device/host-device.go | 3 +++ plugins/main/macvlan/macvlan.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/plugins/main/host-device/host-device.go b/plugins/main/host-device/host-device.go index f82e2967..aa88786e 100644 --- a/plugins/main/host-device/host-device.go +++ b/plugins/main/host-device/host-device.go @@ -21,6 +21,7 @@ import ( "fmt" "io/ioutil" "net" + "os" "path/filepath" "runtime" "strings" @@ -96,7 +97,9 @@ func cmdAdd(args *skel.CmdArgs) error { // Invoke ipam del if err to avoid ip leak defer func() { if err != nil { + os.Setenv("CNI_COMMAND", "DEL") ipam.ExecDel(cfg.IPAM.Type, args.StdinData) + os.Setenv("CNI_COMMAND", "ADD") } }() diff --git a/plugins/main/macvlan/macvlan.go b/plugins/main/macvlan/macvlan.go index a0521a84..0fb7e9c7 100644 --- a/plugins/main/macvlan/macvlan.go +++ b/plugins/main/macvlan/macvlan.go @@ -19,6 +19,7 @@ import ( "errors" "fmt" "net" + "os" "runtime" "github.com/j-keck/arping" @@ -197,7 +198,9 @@ func cmdAdd(args *skel.CmdArgs) error { // Invoke ipam del if err to avoid ip leak defer func() { if err != nil { + os.Setenv("CNI_COMMAND", "DEL") ipam.ExecDel(n.IPAM.Type, args.StdinData) + os.Setenv("CNI_COMMAND", "ADD") } }()