e2e: reading stdin in kubectl
This commit is contained in:
@@ -858,9 +858,26 @@ func kubectlCmd(args ...string) *exec.Cmd {
|
|||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
func runKubectl(args ...string) string {
|
// kubectlBuilder is used to build, custimize and execute a kubectl Command.
|
||||||
|
// Add more functions to customize the builder as needed.
|
||||||
|
type kubectlBuilder struct {
|
||||||
|
cmd *exec.Cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
func newKubectlCommand(args ...string) *kubectlBuilder {
|
||||||
|
b := new(kubectlBuilder)
|
||||||
|
b.cmd = kubectlCmd(args...)
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b kubectlBuilder) withStdinData(data string) *kubectlBuilder {
|
||||||
|
b.cmd.Stdin = strings.NewReader(data)
|
||||||
|
return &b
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b kubectlBuilder) exec() string {
|
||||||
var stdout, stderr bytes.Buffer
|
var stdout, stderr bytes.Buffer
|
||||||
cmd := kubectlCmd(args...)
|
cmd := b.cmd
|
||||||
cmd.Stdout, cmd.Stderr = &stdout, &stderr
|
cmd.Stdout, cmd.Stderr = &stdout, &stderr
|
||||||
|
|
||||||
Logf("Running '%s %s'", cmd.Path, strings.Join(cmd.Args, " "))
|
Logf("Running '%s %s'", cmd.Path, strings.Join(cmd.Args, " "))
|
||||||
@@ -873,6 +890,11 @@ func runKubectl(args ...string) string {
|
|||||||
return strings.TrimSpace(stdout.String())
|
return strings.TrimSpace(stdout.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// runKubectl is a convenience wrapper over kubectlBuilder
|
||||||
|
func runKubectl(args ...string) string {
|
||||||
|
return newKubectlCommand(args...).exec()
|
||||||
|
}
|
||||||
|
|
||||||
func startCmdAndStreamOutput(cmd *exec.Cmd) (stdout, stderr io.ReadCloser, err error) {
|
func startCmdAndStreamOutput(cmd *exec.Cmd) (stdout, stderr io.ReadCloser, err error) {
|
||||||
stdout, err = cmd.StdoutPipe()
|
stdout, err = cmd.StdoutPipe()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user