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:
parent
93919752fb
commit
869d5ec873
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user