From 44be16c49f4d9ddad5e7a8264841ea7e2e191be4 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Sat, 11 Apr 2015 08:07:44 +0200 Subject: [PATCH] drivers: don't let the driver wait for SSH/Docker Waiting for SSH to start or Docker to be available is a step done directly in the framework (in libmachine). There is no need for the driver to do that. Signed-off-by: Vincent Bernat --- drivers/amazonec2/amazonec2.go | 6 ---- drivers/azure/azure.go | 52 +++----------------------------- drivers/hyperv/hyperv_windows.go | 7 +---- drivers/openstack/openstack.go | 3 -- drivers/virtualbox/virtualbox.go | 4 +-- 5 files changed, 8 insertions(+), 64 deletions(-) diff --git a/drivers/amazonec2/amazonec2.go b/drivers/amazonec2/amazonec2.go index 2866f3bfd8..1e91eff0c4 100644 --- a/drivers/amazonec2/amazonec2.go +++ b/drivers/amazonec2/amazonec2.go @@ -398,12 +398,6 @@ func (d *Driver) Create() error { d.PrivateIPAddress, ) - log.Infof("Waiting for SSH on %s:%d", d.IPAddress, 22) - - if err := ssh.WaitForTCP(fmt.Sprintf("%s:%d", d.IPAddress, 22)); err != nil { - return err - } - log.Debug("Settings tags for instance") tags := map[string]string{ "Name": d.MachineName, diff --git a/drivers/azure/azure.go b/drivers/azure/azure.go index e390ea670a..3726c008b1 100644 --- a/drivers/azure/azure.go +++ b/drivers/azure/azure.go @@ -3,12 +3,10 @@ package azure import ( "errors" "fmt" - "net" "os" "os/exec" "path/filepath" "strings" - "time" azure "github.com/MSOpenTech/azure-sdk-for-go" "github.com/MSOpenTech/azure-sdk-for-go/clients/vmClient" @@ -257,9 +255,7 @@ func (d *Driver) Create() error { return err } - log.Info("Waiting for SSH...") - log.Debugf("Host: %s SSH Port: %d", d.getHostname(), d.SSHPort) - return ssh.WaitForTCP(fmt.Sprintf("%s:%d", d.getHostname(), d.SSHPort)) + return nil } func (d *Driver) GetURL() (string, error) { @@ -315,10 +311,8 @@ func (d *Driver) Start() error { if err := vmClient.StartRole(d.MachineName, d.MachineName, d.MachineName); err != nil { return err } - if err := d.waitForSSH(); err != nil { - return err - } - return d.waitForDocker() + + return nil } func (d *Driver) Stop() error { @@ -369,10 +363,8 @@ func (d *Driver) Restart() error { if err := vmClient.RestartRole(d.MachineName, d.MachineName, d.MachineName); err != nil { return err } - if err := d.waitForSSH(); err != nil { - return err - } - return d.waitForDocker() + + return nil } func (d *Driver) Kill() error { @@ -424,40 +416,6 @@ func (d *Driver) addDockerEndpoint(vmConfig *vmClient.Role) error { return nil } -func (d *Driver) waitForSSH() error { - log.Infof("Waiting for SSH...") - return ssh.WaitForTCP(fmt.Sprintf("%s:%v", d.getHostname(), d.SSHPort)) -} - -func (d *Driver) waitForDocker() error { - log.Infof("Waiting for docker daemon on host to be available...") - maxRepeats := 48 - url := fmt.Sprintf("%s:%v", d.getHostname(), d.DockerPort) - success := waitForDockerEndpoint(url, maxRepeats) - if !success { - return errors.New("Can not run docker daemon on remote machine. Please try again.") - } - return nil -} - -func waitForDockerEndpoint(url string, maxRepeats int) bool { - counter := 0 - for { - conn, err := net.Dial("tcp", url) - if err != nil { - time.Sleep(10 * time.Second) - counter++ - if counter == maxRepeats { - return false - } - continue - } - defer conn.Close() - break - } - return true -} - func (d *Driver) generateCertForAzure() error { if err := ssh.GenerateSSHKey(d.sshKeyPath()); err != nil { return err diff --git a/drivers/hyperv/hyperv_windows.go b/drivers/hyperv/hyperv_windows.go index 951deb8516..a9ca9b5628 100644 --- a/drivers/hyperv/hyperv_windows.go +++ b/drivers/hyperv/hyperv_windows.go @@ -323,12 +323,7 @@ func (d *Driver) wait() error { } time.Sleep(1 * time.Second) } - log.Infof("Got IP, waiting for SSH") - ip, err := d.GetIP() - if err != nil { - return err - } - return ssh.WaitForTCP(fmt.Sprintf("%s:22", ip)) + return nil } func (d *Driver) Start() error { diff --git a/drivers/openstack/openstack.go b/drivers/openstack/openstack.go index 3f2ed0f8ad..89b7850416 100644 --- a/drivers/openstack/openstack.go +++ b/drivers/openstack/openstack.go @@ -369,9 +369,6 @@ func (d *Driver) Create() error { if err := d.lookForIpAddress(); err != nil { return err } - if err := d.waitForSSHServer(); err != nil { - return err - } return nil } diff --git a/drivers/virtualbox/virtualbox.go b/drivers/virtualbox/virtualbox.go index f3e6e60b2a..153162f617 100644 --- a/drivers/virtualbox/virtualbox.go +++ b/drivers/virtualbox/virtualbox.go @@ -343,7 +343,7 @@ func (d *Driver) Start() error { if err := vbm("startvm", d.MachineName, "--type", "headless"); err != nil { return err } - log.Infof("Waiting for VM to start...") + log.Infof("Starting VM...") case state.Paused: if err := vbm("controlvm", d.MachineName, "resume", "--type", "headless"); err != nil { return err @@ -353,7 +353,7 @@ func (d *Driver) Start() error { log.Infof("VM not in restartable state") } - return ssh.WaitForTCP(fmt.Sprintf("localhost:%d", d.SSHPort)) + return nil } func (d *Driver) Stop() error {