pkg/ipam : use delegateArgs instead of env set/unset in ipam.ExecDel

Signed-off-by: Bruce Ma <brucema19901024@gmail.com>
This commit is contained in:
Bruce Ma 2019-06-18 21:02:01 +08:00
parent 93919752fb
commit 869d5ec873
3 changed files with 2 additions and 18 deletions

View File

@ -16,10 +16,8 @@ package ipam
import ( import (
"context" "context"
"fmt"
"github.com/containernetworking/cni/pkg/invoke" "github.com/containernetworking/cni/pkg/invoke"
"github.com/containernetworking/cni/pkg/types" "github.com/containernetworking/cni/pkg/types"
"os"
) )
func ExecAdd(plugin string, netconf []byte) (types.Result, error) { func ExecAdd(plugin string, netconf []byte) (types.Result, error) {
@ -31,13 +29,5 @@ func ExecCheck(plugin string, netconf []byte) error {
} }
func ExecDel(plugin string, netconf []byte) error { func ExecDel(plugin string, netconf []byte) error {
cmd := os.Getenv("CNI_COMMAND")
if cmd == "" {
return fmt.Errorf("environment variable CNI_COMMAND must be specified.")
}
// Set CNI_COMMAND to DEL explicity. We might be deleting due to an ADD gone wrong.
// restore CNI_COMMAND to original value upon return.
os.Setenv("CNI_COMMAND", "DEL")
defer os.Setenv("CNI_COMMAND", cmd)
return invoke.DelegateDel(context.TODO(), plugin, netconf, nil) return invoke.DelegateDel(context.TODO(), plugin, netconf, nil)
} }

View File

@ -19,7 +19,6 @@ import (
"fmt" "fmt"
"runtime" "runtime"
"strings" "strings"
"os"
"github.com/Microsoft/hcsshim" "github.com/Microsoft/hcsshim"
"github.com/Microsoft/hcsshim/hcn" "github.com/Microsoft/hcsshim/hcn"
@ -146,7 +145,7 @@ func cmdHcnAdd(args *skel.CmdArgs, n *NetConf) (*current.Result, error) {
return nil, fmt.Errorf("network %v not found", networkName) return nil, fmt.Errorf("network %v not found", networkName)
} }
if hcnNetwork.Type != hcn.L2Bridge { if hcnNetwork.Type != hcn.L2Bridge {
return nil, fmt.Errorf("network %v is of unexpected type: %v", networkName, hcnNetwork.Type) return nil, fmt.Errorf("network %v is of unexpected type: %v", networkName, hcnNetwork.Type)
} }
@ -191,13 +190,11 @@ func cmdAdd(args *skel.CmdArgs) error {
} }
if err != nil { if err != nil {
os.Setenv("CNI_COMMAND", "DEL")
ipam.ExecDel(n.IPAM.Type, args.StdinData) ipam.ExecDel(n.IPAM.Type, args.StdinData)
os.Setenv("CNI_COMMAND", "ADD")
return errors.Annotate(err, "error while executing ADD command") return errors.Annotate(err, "error while executing ADD command")
} }
if (result == nil) { if result == nil {
return errors.New("result for ADD not populated correctly") return errors.New("result for ADD not populated correctly")
} }
return types.PrintResult(result, cniVersion) return types.PrintResult(result, cniVersion)

View File

@ -19,7 +19,6 @@ import (
"fmt" "fmt"
"runtime" "runtime"
"strings" "strings"
"os"
"github.com/Microsoft/hcsshim" "github.com/Microsoft/hcsshim"
"github.com/juju/errors" "github.com/juju/errors"
@ -135,9 +134,7 @@ func cmdAdd(args *skel.CmdArgs) error {
}) })
defer func() { defer func() {
if !success { if !success {
os.Setenv("CNI_COMMAND", "DEL")
ipam.ExecDel(n.IPAM.Type, args.StdinData) ipam.ExecDel(n.IPAM.Type, args.StdinData)
os.Setenv("CNI_COMMAND", "ADD")
} }
}() }()
if err != nil { if err != nil {