Merge pull request #144 from squaremo/rename-delegate-execs

Add invoke.Delegate{Add,Del} for use by meta-plugins
This commit is contained in:
Stefan Junker 2016-03-04 13:20:35 +01:00
commit cde7088cbe
3 changed files with 44 additions and 28 deletions

39
pkg/invoke/delegate.go Normal file
View File

@ -0,0 +1,39 @@
package invoke
import (
"fmt"
"os"
"strings"
"github.com/appc/cni/pkg/types"
)
func DelegateAdd(delegatePlugin string, netconf []byte) (*types.Result, error) {
if os.Getenv("CNI_COMMAND") != "ADD" {
return nil, fmt.Errorf("CNI_COMMAND is not ADD")
}
paths := strings.Split(os.Getenv("CNI_PATH"), ":")
pluginPath, err := FindInPath(delegatePlugin, paths)
if err != nil {
return nil, err
}
return ExecPluginWithResult(pluginPath, netconf, ArgsFromEnv())
}
func DelegateDel(delegatePlugin string, netconf []byte) error {
if os.Getenv("CNI_COMMAND") != "DEL" {
return fmt.Errorf("CNI_COMMAND is not DEL")
}
paths := strings.Split(os.Getenv("CNI_PATH"), ":")
pluginPath, err := FindInPath(delegatePlugin, paths)
if err != nil {
return err
}
return ExecPluginWithoutResult(pluginPath, netconf, ArgsFromEnv())
}

View File

@ -17,7 +17,6 @@ package ipam
import (
"fmt"
"os"
"strings"
"github.com/appc/cni/pkg/invoke"
"github.com/appc/cni/pkg/ip"
@ -27,33 +26,11 @@ import (
)
func ExecAdd(plugin string, netconf []byte) (*types.Result, error) {
if os.Getenv("CNI_COMMAND") != "ADD" {
return nil, fmt.Errorf("CNI_COMMAND is not ADD")
}
paths := strings.Split(os.Getenv("CNI_PATH"), ":")
pluginPath, err := invoke.FindInPath(plugin, paths)
if err != nil {
return nil, err
}
return invoke.ExecPluginWithResult(pluginPath, netconf, invoke.ArgsFromEnv())
return invoke.DelegateAdd(plugin, netconf)
}
func ExecDel(plugin string, netconf []byte) error {
if os.Getenv("CNI_COMMAND") != "DEL" {
return fmt.Errorf("CNI_COMMAND is not DEL")
}
paths := strings.Split(os.Getenv("CNI_PATH"), ":")
pluginPath, err := invoke.FindInPath(plugin, paths)
if err != nil {
return err
}
return invoke.ExecPluginWithoutResult(pluginPath, netconf, invoke.ArgsFromEnv())
return invoke.DelegateDel(plugin, netconf)
}
// ConfigureIface takes the result of IPAM plugin and

View File

@ -29,7 +29,7 @@ import (
"strconv"
"strings"
"github.com/appc/cni/pkg/ipam"
"github.com/appc/cni/pkg/invoke"
"github.com/appc/cni/pkg/skel"
"github.com/appc/cni/pkg/types"
)
@ -155,7 +155,7 @@ func delegateAdd(cid string, netconf map[string]interface{}) error {
return err
}
result, err := ipam.ExecAdd(netconf["type"].(string), netconfBytes)
result, err := invoke.DelegateAdd(netconf["type"].(string), netconfBytes)
if err != nil {
return err
}
@ -245,7 +245,7 @@ func cmdDel(args *skel.CmdArgs) error {
return fmt.Errorf("failed to parse netconf: %v", err)
}
return ipam.ExecDel(n.Type, netconfBytes)
return invoke.DelegateDel(n.Type, netconfBytes)
}
func main() {