Merge pull request #43154 from apprenda/kubeadm_test-cmd_logging

Automatic merge from submit-queue (batch tested with PRs 43149, 41399, 43154, 43569, 42507)

kubeadm: only print stderr/stdout if failed test

**What this PR does / why we need it**: This PR changes when stdout/stderr will be logged during a kubeadm test-cmd test. It's useful when a real failure occurs to only see the failure rather than output that looks like it might be a failure

**Special notes for your reviewer**: /cc @luxas @marun 

**Release note**:
```release-note
NONE
```
pull/6/head
Kubernetes Submit Queue 2017-03-26 00:55:21 -07:00 committed by GitHub
commit 417a88b82a
1 changed files with 3 additions and 5 deletions

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