skel: Plugins require a cniVersion in the NetConf

This commit is contained in:
Gabe Rosenhouse
2016-09-06 20:19:26 -04:00
committed by Gabe Rosenhouse
parent 56032390fe
commit fd150a4c97
14 changed files with 76 additions and 26 deletions

View File

@ -17,6 +17,7 @@
package skel
import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
@ -143,12 +144,28 @@ func createTypedError(f string, args ...interface{}) *types.Error {
}
}
func (t *dispatcher) validateVersion(stdinData []byte) error {
var netconf types.NetConf
if err := json.Unmarshal(stdinData, &netconf); err != nil {
return err
}
if netconf.CNIVersion == "" {
return fmt.Errorf("missing required config cniVersion")
}
return nil
}
func (t *dispatcher) pluginMain(cmdAdd, cmdDel func(_ *CmdArgs) error, versionInfo version.PluginInfo) *types.Error {
cmd, cmdArgs, err := t.getCmdArgsFromEnv()
if err != nil {
return createTypedError(err.Error())
}
if err = t.validateVersion(cmdArgs.StdinData); err != nil {
return createTypedError(err.Error())
}
switch cmd {
case "ADD":
err = cmdAdd(cmdArgs)