Skip to content

Commit 4a47ce0

Browse files
committed
updated google driver; added StartDocker and StopDocker to driver
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
1 parent 4534944 commit 4a47ce0

File tree

13 files changed

+397
-92
lines changed

13 files changed

+397
-92
lines changed

commands.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ import (
2525
_ "github.com/docker/machine/drivers/vmwarefusion"
2626
_ "github.com/docker/machine/drivers/vmwarevcloudair"
2727
_ "github.com/docker/machine/drivers/vmwarevsphere"
28+
29+
//_ "github.com/docker/machine/drivers/vmwarevcloudair"
30+
//_ "github.com/docker/machine/drivers/vmwarevsphere"
2831
"github.com/docker/machine/state"
2932
)
3033

drivers/amazonec2/amazonec2.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const (
2626
defaultInstanceType = "t2.micro"
2727
defaultRootSize = 16
2828
ipRange = "0.0.0.0/0"
29+
dockerConfigDir = "/etc/docker"
2930
)
3031

3132
type Driver struct {
@@ -380,6 +381,38 @@ func (d *Driver) Kill() error {
380381
return nil
381382
}
382383

384+
func (d *Driver) StartDocker() error {
385+
log.Debug("Starting Docker...")
386+
387+
cmd, err := d.GetSSHCommand("sudo service docker start")
388+
if err != nil {
389+
return err
390+
}
391+
if err := cmd.Run(); err != nil {
392+
return err
393+
}
394+
395+
return nil
396+
}
397+
398+
func (d *Driver) StopDocker() error {
399+
log.Debug("Stopping Docker...")
400+
401+
cmd, err := d.GetSSHCommand("sudo service docker stop")
402+
if err != nil {
403+
return err
404+
}
405+
if err := cmd.Run(); err != nil {
406+
return err
407+
}
408+
409+
return nil
410+
}
411+
412+
func (d *Driver) GetDockerConfigDir() string {
413+
return dockerConfigDir
414+
}
415+
383416
func (d *Driver) Upgrade() error {
384417
sshCmd, err := d.GetSSHCommand("apt-get update && apt-get install -y lxc-docker")
385418
if err != nil {

drivers/azure/azure.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ import (
2020
"github.com/docker/machine/state"
2121
)
2222

23+
const (
24+
dockerConfigDir = "/etc/docker"
25+
)
26+
2327
type Driver struct {
2428
MachineName string
2529
SubscriptionID string
@@ -508,6 +512,38 @@ func (driver *Driver) Kill() error {
508512
return nil
509513
}
510514

515+
func (d *Driver) StartDocker() error {
516+
log.Debug("Starting Docker...")
517+
518+
cmd, err := d.GetSSHCommand("sudo service docker start")
519+
if err != nil {
520+
return err
521+
}
522+
if err := cmd.Run(); err != nil {
523+
return err
524+
}
525+
526+
return nil
527+
}
528+
529+
func (d *Driver) StopDocker() error {
530+
log.Debug("Stopping Docker...")
531+
532+
cmd, err := d.GetSSHCommand("sudo service docker stop")
533+
if err != nil {
534+
return err
535+
}
536+
if err := cmd.Run(); err != nil {
537+
return err
538+
}
539+
540+
return nil
541+
}
542+
543+
func (d *Driver) GetDockerConfigDir() string {
544+
return dockerConfigDir
545+
}
546+
511547
func (driver *Driver) GetSSHCommand(args ...string) (*exec.Cmd, error) {
512548
err := driver.setUserSubscription()
513549
if err != nil {

drivers/digitalocean/digitalocean.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ import (
1818
"github.com/docker/machine/state"
1919
)
2020

21+
const (
22+
dockerConfigDir = "/etc/docker"
23+
)
24+
2125
type Driver struct {
2226
AccessToken string
2327
DropletID int
@@ -260,6 +264,38 @@ func (d *Driver) Kill() error {
260264
return err
261265
}
262266

267+
func (d *Driver) StartDocker() error {
268+
log.Debug("Starting Docker...")
269+
270+
cmd, err := d.GetSSHCommand("sudo service docker start")
271+
if err != nil {
272+
return err
273+
}
274+
if err := cmd.Run(); err != nil {
275+
return err
276+
}
277+
278+
return nil
279+
}
280+
281+
func (d *Driver) StopDocker() error {
282+
log.Debug("Stopping Docker...")
283+
284+
cmd, err := d.GetSSHCommand("sudo service docker stop")
285+
if err != nil {
286+
return err
287+
}
288+
if err := cmd.Run(); err != nil {
289+
return err
290+
}
291+
292+
return nil
293+
}
294+
295+
func (d *Driver) GetDockerConfigDir() string {
296+
return dockerConfigDir
297+
}
298+
263299
func (d *Driver) Upgrade() error {
264300
sshCmd, err := d.GetSSHCommand("apt-get update && apt-get install lxc-docker")
265301
if err != nil {

drivers/drivers.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,18 @@ type Driver interface {
5151
// Kill stops a host forcefully
5252
Kill() error
5353

54+
// RestartDocker restarts a Docker daemon on the machine
55+
StartDocker() error
56+
57+
// RestartDocker restarts a Docker daemon on the machine
58+
StopDocker() error
59+
5460
// Upgrade the version of Docker on the host to the latest version
5561
Upgrade() error
5662

63+
// GetDockerConfigDir returns the config directory for storing daemon configs
64+
GetDockerConfigDir() string
65+
5766
// GetSSHCommand returns a command for SSH pointing at the correct user, host
5867
// and keys for the host with args appended. If no args are passed, it will
5968
// initiate an interactive SSH session as if SSH were passed no args.

drivers/google/compute_util.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ var (
4141
`sudo mkdir -p /.docker/authorized-keys.d/
4242
sudo chown -R {{ .UserName }} /.docker
4343
while [ -e /var/run/docker.pid ]; do sleep 1; done
44-
sudo sed -i 's@DOCKER_OPTS=.*@DOCKER_OPTS=\"--auth=identity -H unix://var/run/docker.sock -H 0.0.0.0:2376\"@g' /etc/default/docker
45-
sudo wget https://bfirsh.s3.amazonaws.com/docker/docker-1.3.1-dev-identity-auth -O /usr/bin/docker && sudo chmod +x /usr/bin/docker
44+
sudo curl -L -o /usr/bin/docker https://get.docker.com/builds/Linux/x86_64/docker-latest
4645
`))
4746
)
4847

drivers/google/google.go

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ import (
1414
"github.com/docker/machine/ssh"
1515
)
1616

17+
const (
18+
dockerConfigDir = "/etc/docker"
19+
)
20+
1721
// Driver is a struct compatible with the docker.hosts.drivers.Driver interface.
1822
type Driver struct {
1923
MachineName string
@@ -22,6 +26,8 @@ type Driver struct {
2226
storePath string
2327
UserName string
2428
Project string
29+
CaCertPath string
30+
PrivateKeyPath string
2531
sshKeyPath string
2632
publicSSHKeyPath string
2733
}
@@ -72,10 +78,12 @@ func GetCreateFlags() []cli.Flag {
7278
}
7379

7480
// NewDriver creates a Driver with the specified storePath.
75-
func NewDriver(machineName string, storePath string) (drivers.Driver, error) {
81+
func NewDriver(machineName string, storePath string, caCert string, privateKey string) (drivers.Driver, error) {
7682
return &Driver{
7783
MachineName: machineName,
7884
storePath: storePath,
85+
CaCertPath: caCert,
86+
PrivateKeyPath: privateKey,
7987
sshKeyPath: path.Join(storePath, "id_rsa"),
8088
publicSSHKeyPath: path.Join(storePath, "id_rsa.pub"),
8189
}, nil
@@ -225,6 +233,38 @@ func (driver *Driver) Kill() error {
225233
return driver.Stop()
226234
}
227235

236+
func (d *Driver) StartDocker() error {
237+
log.Debug("Starting Docker...")
238+
239+
cmd, err := d.GetSSHCommand("sudo service docker start")
240+
if err != nil {
241+
return err
242+
}
243+
if err := cmd.Run(); err != nil {
244+
return err
245+
}
246+
247+
return nil
248+
}
249+
250+
func (d *Driver) StopDocker() error {
251+
log.Debug("Stopping Docker...")
252+
253+
cmd, err := d.GetSSHCommand("sudo service docker stop")
254+
if err != nil {
255+
return err
256+
}
257+
if err := cmd.Run(); err != nil {
258+
return err
259+
}
260+
261+
return nil
262+
}
263+
264+
func (d *Driver) GetDockerConfigDir() string {
265+
return dockerConfigDir
266+
}
267+
228268
// GetSSHCommand returns a command that will run over SSH on the GCE instance.
229269
func (driver *Driver) GetSSHCommand(args ...string) (*exec.Cmd, error) {
230270
ip, err := driver.GetIP()

drivers/none/none.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func GetCreateFlags() []cli.Flag {
3434
}
3535
}
3636

37-
func NewDriver(machineName string, storePath string) (drivers.Driver, error) {
37+
func NewDriver(machineName string, storePath string, caCert string, privateKey string) (drivers.Driver, error) {
3838
return &Driver{}, nil
3939
}
4040

@@ -93,6 +93,18 @@ func (d *Driver) Kill() error {
9393
return fmt.Errorf("hosts without a driver cannot be killed")
9494
}
9595

96+
func (d *Driver) StartDocker() error {
97+
return fmt.Errorf("hosts without a driver cannot start docker")
98+
}
99+
100+
func (d *Driver) StopDocker() error {
101+
return fmt.Errorf("hosts without a driver cannot stop docker")
102+
}
103+
104+
func (d *Driver) GetDockerConfigDir() string {
105+
return ""
106+
}
107+
96108
func (d *Driver) Upgrade() error {
97109
return fmt.Errorf("hosts without a driver cannot be upgraded")
98110
}

0 commit comments

Comments
 (0)