@@ -2,17 +2,12 @@ package drivers
22
33import (
44 "fmt"
5- "strings"
65
76 "github.com/docker/machine/libmachine/log"
87 "github.com/docker/machine/libmachine/mcnutils"
98 "github.com/docker/machine/libmachine/ssh"
109)
1110
12- const (
13- ErrExitCode255 = "255"
14- )
15-
1611func GetSSHClientFromDriver (d Driver ) (ssh.Client , error ) {
1712 addr , err := d .GetSSHHostname ()
1813 if err != nil {
@@ -33,10 +28,6 @@ func GetSSHClientFromDriver(d Driver) (ssh.Client, error) {
3328
3429}
3530
36- func isErr255Exit (err error ) bool {
37- return strings .Contains (err .Error (), ErrExitCode255 )
38- }
39-
4031func RunSSHCommandFromDriver (d Driver , command string ) (string , error ) {
4132 client , err := GetSSHClientFromDriver (d )
4233 if err != nil {
@@ -47,34 +38,21 @@ func RunSSHCommandFromDriver(d Driver, command string) (string, error) {
4738
4839 output , err := client .Output (command )
4940 log .Debugf ("SSH cmd err, output: %v: %s" , err , output )
50- if err != nil && ! isErr255Exit (err ) {
51- log .Error ("SSH cmd error!" )
52- log .Errorf ("command: %s" , command )
53- log .Errorf ("err : %v" , err )
54- log .Fatalf ("output : %s" , output )
41+ if err != nil {
42+ returnedErr := fmt .Errorf (`Something went wrong running an SSH command!
43+ command : %s
44+ err : %v
45+ output : %s
46+ ` , command , err , output )
47+ return "" , returnedErr
5548 }
5649
57- return output , err
50+ return output , nil
5851}
5952
6053func sshAvailableFunc (d Driver ) func () bool {
6154 return func () bool {
6255 log .Debug ("Getting to WaitForSSH function..." )
63- hostname , err := d .GetSSHHostname ()
64- if err != nil {
65- log .Debugf ("Error getting IP address waiting for SSH: %s" , err )
66- return false
67- }
68- port , err := d .GetSSHPort ()
69- if err != nil {
70- log .Debugf ("Error getting SSH port: %s" , err )
71- return false
72- }
73- if err := ssh .WaitForTCP (fmt .Sprintf ("%s:%d" , hostname , port )); err != nil {
74- log .Debugf ("Error waiting for TCP waiting for SSH: %s" , err )
75- return false
76- }
77-
7856 if _ , err := RunSSHCommandFromDriver (d , "exit 0" ); err != nil {
7957 log .Debugf ("Error getting ssh command 'exit 0' : %s" , err )
8058 return false
@@ -85,7 +63,7 @@ func sshAvailableFunc(d Driver) func() bool {
8563
8664func WaitForSSH (d Driver ) error {
8765 if err := mcnutils .WaitFor (sshAvailableFunc (d )); err != nil {
88- return fmt .Errorf ("Too many retries. Last error: %s" , err )
66+ return fmt .Errorf ("Too many retries waiting for SSH to be available . Last error: %s" , err )
8967 }
9068 return nil
9169}
0 commit comments