@@ -17,13 +17,15 @@ limitations under the License.
1717package common
1818
1919import (
20+ "fmt"
2021 "io"
2122 "net"
2223 "strconv"
2324 "time"
2425
2526 "github.com/docker/machine/libmachine/drivers"
2627 "github.com/docker/machine/libmachine/log"
28+ "github.com/docker/machine/libmachine/state"
2729)
2830
2931var (
@@ -49,15 +51,21 @@ func WaitForSSHAccess(d drivers.Driver) error {
4951 log .Debugf ("Dialing to %q" , addr )
5052 conn , err := net .Dial ("tcp" , addr )
5153 if err != nil {
52- log .Debugf ("Failed to dial, retrying in 1 second: %v" , err )
54+ log .Debugf ("Failed to dial: %v" , err )
55+ if ds , err := d .GetState (); ds != state .Running {
56+ return fmt .Errorf ("Driver is %v: %w" , ds , err )
57+ }
5358 time .Sleep (retryDelay )
5459 continue
5560 }
5661
5762 defer conn .Close ()
5863 log .Debugf ("Reading from SSH server %q" , addr )
5964 if _ , err := conn .Read (make ([]byte , 1 )); err != nil && err != io .EOF {
60- log .Debugf ("Failed to read from SSH server: %v: retrying in 1 second" , err )
65+ log .Debugf ("Failed to read from SSH server: %v" , err )
66+ if ds , err := d .GetState (); ds != state .Running {
67+ return fmt .Errorf ("Driver is %v: %w" , ds , err )
68+ }
6169 time .Sleep (retryDelay )
6270 continue
6371 }
0 commit comments