commit
601f991ee5
@ -125,9 +125,18 @@ func ConfigureIface(ifName string, res *Result) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// PrintResult writes out prettified Result to stdout
|
// PrintResult writes out prettified Result JSON to stdout
|
||||||
func PrintResult(res *Result) error {
|
func PrintResult(res *Result) error {
|
||||||
data, err := json.MarshalIndent(res, "", " ")
|
return prettyPrint(res)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PrintError writes out prettified Error JSON to stdout
|
||||||
|
func PrintError(err *Error) error {
|
||||||
|
return prettyPrint(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func prettyPrint(obj interface{}) error {
|
||||||
|
data, err := json.MarshalIndent(obj, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,12 @@ type Route struct {
|
|||||||
GW net.IP
|
GW net.IP
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Error struct {
|
||||||
|
Code uint `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Details string `json:"details,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// net.IPNet is not JSON (un)marshallable so this duality is needed
|
// net.IPNet is not JSON (un)marshallable so this duality is needed
|
||||||
// for our custom ip.IPNet type
|
// for our custom ip.IPNet type
|
||||||
|
|
||||||
|
@ -17,9 +17,12 @@
|
|||||||
package skel
|
package skel
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"github.com/appc/cni/pkg/plugin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CmdArgs captures all the arguments passed in to the plugin
|
// CmdArgs captures all the arguments passed in to the plugin
|
||||||
@ -61,13 +64,12 @@ func PluginMain(cmdAdd, cmdDel func(_ *CmdArgs) error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if argsMissing {
|
if argsMissing {
|
||||||
os.Exit(1)
|
die("required env variables missing")
|
||||||
}
|
}
|
||||||
|
|
||||||
stdinData, err := ioutil.ReadAll(os.Stdin)
|
stdinData, err := ioutil.ReadAll(os.Stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error reading from stdin: %v", err)
|
die("error reading from stdin: %v", err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cmdArgs := &CmdArgs{
|
cmdArgs := &CmdArgs{
|
||||||
@ -87,12 +89,18 @@ func PluginMain(cmdAdd, cmdDel func(_ *CmdArgs) error) {
|
|||||||
err = cmdDel(cmdArgs)
|
err = cmdDel(cmdArgs)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log.Printf("Unknown CNI_COMMAND: %v", cmd)
|
die("unknown CNI_COMMAND: %v", cmd)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("%v: %v", cmd, err)
|
die(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func die(f string, args ...interface{}) {
|
||||||
|
plugin.PrintError(&plugin.Error{
|
||||||
|
Code: 100,
|
||||||
|
Msg: fmt.Sprintf(f, args...),
|
||||||
|
})
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user