kubeadm: only print stderr/stdout if failed test

This commit is contained in:
Derek McQuay
2017-03-15 11:34:13 -07:00
parent 5826b09a19
commit 14d79f2cc0

View File

@@ -19,8 +19,6 @@ package kubeadm
import (
"bytes"
"fmt"
"io"
"os"
"os/exec"
)
@@ -29,12 +27,12 @@ import (
func RunCmd(command string, args ...string) (string, string, error) {
var bout, berr bytes.Buffer
cmd := exec.Command(command, args...)
cmd.Stdout = io.MultiWriter(os.Stdout, &bout)
cmd.Stderr = io.MultiWriter(os.Stderr, &berr)
cmd.Stdout = &bout
cmd.Stderr = &berr
err := cmd.Run()
stdout, stderr := bout.String(), berr.String()
if err != nil {
return "", "", fmt.Errorf("error running %s %v; got error %v, stdout %q, stderr %q",
return "", "", fmt.Errorf("error running %s %v; \ngot error %v, \nstdout %q, \nstderr %q",
command, args, err, stdout, stderr)
}
return stdout, stderr, nil