mirror of https://github.com/docker/docs.git
Add SSH logs when provisioning with RedHat derivatives
Fixes #3507 Signed-off-by: KOBAYASHI Shinji <koba@jp.fujitsu.com>
This commit is contained in:
parent
91ec013436
commit
ec4697ea33
|
|
@ -1,7 +1,10 @@
|
|||
package provision
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/docker/machine/libmachine/drivers"
|
||||
"github.com/docker/machine/libmachine/log"
|
||||
"github.com/docker/machine/libmachine/ssh"
|
||||
)
|
||||
|
||||
|
|
@ -15,17 +18,29 @@ func (sshCmder RedHatSSHCommander) SSHCommand(args string) (string, error) {
|
|||
return "", err
|
||||
}
|
||||
|
||||
log.Debugf("About to run SSH command:\n%s", args)
|
||||
|
||||
// redhat needs "-t" for tty allocation on ssh therefore we check for the
|
||||
// external client and add as needed.
|
||||
// Note: CentOS 7.0 needs multiple "-tt" to force tty allocation when ssh has
|
||||
// no local tty.
|
||||
var output string
|
||||
switch c := client.(type) {
|
||||
case *ssh.ExternalClient:
|
||||
c.BaseArgs = append(c.BaseArgs, "-tt")
|
||||
client = c
|
||||
output, err = c.Output(args)
|
||||
case *ssh.NativeClient:
|
||||
return c.OutputWithPty(args)
|
||||
output, err = c.OutputWithPty(args)
|
||||
}
|
||||
|
||||
return client.Output(args)
|
||||
log.Debugf("SSH cmd err, output: %v: %s", err, output)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf(`Something went wrong running an SSH command!
|
||||
command : %s
|
||||
err : %v
|
||||
output : %s
|
||||
`, args, err, output)
|
||||
}
|
||||
|
||||
return output, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue