diff --git a/commands.go b/commands.go index 0b65108a1a..01f03194aa 100644 --- a/commands.go +++ b/commands.go @@ -369,7 +369,7 @@ func cmdConfig(c *cli.Context) { dockerHost = fmt.Sprintf("tcp://%s:%s", machineIp, swarmPort) } - fmt.Printf("--tls --tlscacert=%s --tlscert=%s --tlskey=%s -H=%s", + fmt.Printf("--tlsverify --tlscacert=%s --tlscert=%s --tlskey=%s -H=%s", cfg.caCertPath, cfg.clientCertPath, cfg.clientKeyPath, dockerHost) } diff --git a/commands_test.go b/commands_test.go index 6c8321a8b6..96a9af0441 100644 --- a/commands_test.go +++ b/commands_test.go @@ -333,14 +333,13 @@ func TestRunActionForeachMachine(t *testing.T) { func TestCmdConfig(t *testing.T) { stdout := os.Stdout r, w, _ := os.Pipe() - os.Stdout = w + os.Stdout = w os.Setenv("MACHINE_STORAGE_PATH", TestStoreDir) defer func() { os.Setenv("MACHINE_STORAGE_PATH", "") os.Stdout = stdout - w.Close() }() if err := clearHosts(); err != nil { @@ -366,17 +365,27 @@ func TestCmdConfig(t *testing.T) { t.Fatalf("error setting active host: %v", err) } + outStr := make(chan string) + + go func() { + var testOutput bytes.Buffer + io.Copy(&testOutput, r) + outStr <- testOutput.String() + }() + set := flag.NewFlagSet("config", 0) - - testOutput := &bytes.Buffer{} - - go io.Copy(testOutput, r) - c := cli.NewContext(nil, set, set) - cmdConfig(c) - if strings.Contains(testOutput.String(), "-H=unix:///var/run/docker.sock") { + w.Close() + + out := <-outStr + + if !strings.Contains(out, "--tlsverify") { + t.Fatalf("Expect --tlsverify") + } + + if !strings.Contains(out, "-H=unix:///var/run/docker.sock") { t.Fatalf("Expect docker host URL") } } diff --git a/docs/index.md b/docs/index.md index f62ffa573a..05d571f992 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,9 @@ +--- page_title: Docker Machine page_description: Working with Docker Machine -page_keywords: docker, machine, virtualbox, digitalocean, amazonec2 +page_keywords: docker, machine, amazonec2, azure, digitalocean, google, openstack, rackspace, softlayer, virtualbox, vmwarevcloudair, vmwarevsphere +--- + # Docker Machine diff --git a/drivers/openstack/openstack.go b/drivers/openstack/openstack.go index 6dbbdd0cf9..cacff28f45 100644 --- a/drivers/openstack/openstack.go +++ b/drivers/openstack/openstack.go @@ -151,7 +151,7 @@ func GetCreateFlags() []cli.Flag { }, cli.StringFlag{ Name: "openstack-net-id", - Usage: "OpenStack image name to use for the instance", + Usage: "OpenStack network id the machine will be connected on", Value: "", }, cli.StringFlag{ @@ -746,19 +746,6 @@ func (d *Driver) waitForInstanceToStart() error { return d.waitForSSHServer() } -func (d *Driver) sshExec(commands []string) error { - for _, command := range commands { - sshCmd, err := d.GetSSHCommand(command) - if err != nil { - return err - } - if err := sshCmd.Run(); err != nil { - return err - } - } - return nil -} - func (d *Driver) sshKeyPath() string { return path.Join(d.storePath, "id_rsa") } diff --git a/drivers/softlayer/driver.go b/drivers/softlayer/driver.go index a4bbe7de22..2c0ecb3345 100644 --- a/drivers/softlayer/driver.go +++ b/drivers/softlayer/driver.go @@ -350,9 +350,17 @@ func (d *Driver) Create() error { getIp() waitForStart() ssh.WaitForTCP(d.IPAddress + ":22") - if err := d.setupHost(); err != nil { - fmt.Fprintf(os.Stderr, "Error setting up host config: %q", err) + + cmd, err := d.GetSSHCommand("sudo apt-get update && sudo apt-get install -y curl") + if err != nil { + return err + } + if err := cmd.Run(); err != nil { + return err + + } + return nil } @@ -438,21 +446,3 @@ func (d *Driver) Upgrade() error { return cmd.Run() } - -func (d *Driver) setupHost() error { - log.Infof("Configuring host OS") - ssh.WaitForTCP(d.IPAddress + ":22") - // Wait to make sure docker is installed - for { - cmd, err := d.GetSSHCommand(`[ -f "$(which docker)" ] && [ -f "/etc/default/docker" ] || exit 1`) - if err != nil { - return err - } - if err := cmd.Run(); err == nil { - break - } - time.Sleep(2 * time.Second) - } - - return nil -} diff --git a/drivers/virtualbox/virtualbox.go b/drivers/virtualbox/virtualbox.go index d218a00745..a55ed60d02 100644 --- a/drivers/virtualbox/virtualbox.go +++ b/drivers/virtualbox/virtualbox.go @@ -365,11 +365,19 @@ func (d *Driver) Start() error { return err } - if s == state.Stopped { + switch s { + case state.Stopped, state.Saved: if err := vbm("startvm", d.MachineName, "--type", "headless"); err != nil { return err } log.Infof("Waiting for VM to start...") + case state.Paused: + if err := vbm("controlvm", d.MachineName, "resume", "--type", "headless"); err != nil { + return err + } + log.Infof("Resuming VM ...") + default: + log.Infof("VM not in restartable state") } return ssh.WaitForTCP(fmt.Sprintf("localhost:%d", d.SSHPort))