@@ -36,108 +36,26 @@ import (
36
36
37
37
"github.com/docker/machine/libmachine/drivers"
38
38
"github.com/docker/machine/libmachine/log"
39
- "github.com/docker/machine/libmachine/mcnflag"
40
39
"github.com/docker/machine/libmachine/mcnutils"
41
40
"github.com/docker/machine/libmachine/ssh"
42
41
"github.com/docker/machine/libmachine/state"
42
+ "github.com/machine-drivers/docker-machine-driver-vmware/pkg/drivers/vmware/config"
43
43
cryptossh "golang.org/x/crypto/ssh"
44
44
)
45
45
46
46
const (
47
- B2DUser = "docker"
48
- B2DPass = "tcuser"
49
47
isoFilename = "boot2docker.iso"
50
48
isoConfigDrive = "configdrive.iso"
51
49
)
52
50
53
51
// Driver for VMware
54
52
type Driver struct {
55
- * drivers.BaseDriver
56
- Memory int
57
- DiskSize int
58
- CPU int
59
- ISO string
60
- Boot2DockerURL string
61
-
62
- SSHPassword string
63
- ConfigDriveISO string
64
- ConfigDriveURL string
65
- NoShare bool
53
+ * config.Config
66
54
}
67
55
68
- const (
69
- defaultSSHUser = B2DUser
70
- defaultSSHPass = B2DPass
71
- defaultDiskSize = 20000
72
- defaultCPU = 1
73
- defaultMemory = 1024
74
- )
75
-
76
- // GetCreateFlags registers the flags this driver adds to
77
- // "docker hosts create"
78
- func (d * Driver ) GetCreateFlags () []mcnflag.Flag {
79
- return []mcnflag.Flag {
80
- mcnflag.StringFlag {
81
- EnvVar : "VMWARE_BOOT2DOCKER_URL" ,
82
- Name : "vmware-boot2docker-url" ,
83
- Usage : "URL for boot2docker image" ,
84
- Value : "" ,
85
- },
86
- mcnflag.StringFlag {
87
- EnvVar : "VMWARE_CONFIGDRIVE_URL" ,
88
- Name : "vmware-configdrive-url" ,
89
- Usage : "URL for cloud-init configdrive" ,
90
- Value : "" ,
91
- },
92
- mcnflag.IntFlag {
93
- EnvVar : "VMWARE_CPU_COUNT" ,
94
- Name : "vmware-cpu-count" ,
95
- Usage : "number of CPUs for the machine (-1 to use the number of CPUs available)" ,
96
- Value : defaultCPU ,
97
- },
98
- mcnflag.IntFlag {
99
- EnvVar : "VMWARE_MEMORY_SIZE" ,
100
- Name : "vmware-memory-size" ,
101
- Usage : "size of memory for host VM (in MB)" ,
102
- Value : defaultMemory ,
103
- },
104
- mcnflag.IntFlag {
105
- EnvVar : "VMWARE_DISK_SIZE" ,
106
- Name : "vmware-disk-size" ,
107
- Usage : "size of disk for host VM (in MB)" ,
108
- Value : defaultDiskSize ,
109
- },
110
- mcnflag.StringFlag {
111
- EnvVar : "VMWARE_SSH_USER" ,
112
- Name : "vmware-ssh-user" ,
113
- Usage : "SSH user" ,
114
- Value : defaultSSHUser ,
115
- },
116
- mcnflag.StringFlag {
117
- EnvVar : "VMWARE_SSH_PASSWORD" ,
118
- Name : "vmware-ssh-password" ,
119
- Usage : "SSH password" ,
120
- Value : defaultSSHPass ,
121
- },
122
- mcnflag.BoolFlag {
123
- EnvVar : "VMWARE_NO_SHARE" ,
124
- Name : "vmware-no-share" ,
125
- Usage : "Disable the mount of your home directory" ,
126
- },
127
- }
128
- }
129
-
130
- func NewDriver (hostName , storePath string ) drivers.Driver {
56
+ func NewDriver (hostname , storePath string ) drivers.Driver {
131
57
return & Driver {
132
- CPU : defaultCPU ,
133
- Memory : defaultMemory ,
134
- DiskSize : defaultDiskSize ,
135
- SSHPassword : defaultSSHPass ,
136
- BaseDriver : & drivers.BaseDriver {
137
- SSHUser : defaultSSHUser ,
138
- MachineName : hostName ,
139
- StorePath : storePath ,
140
- },
58
+ Config : config .NewConfig (hostname , storePath ),
141
59
}
142
60
}
143
61
@@ -378,29 +296,29 @@ func (d *Driver) Start() error {
378
296
}
379
297
380
298
// Test if /var/lib/boot2docker exists
381
- vmrun ("-gu" , B2DUser , "-gp" , B2DPass , "directoryExistsInGuest" , d .vmxPath (), "/var/lib/boot2docker" )
299
+ vmrun ("-gu" , d . SSHUser , "-gp" , d . SSHPassword , "directoryExistsInGuest" , d .vmxPath (), "/var/lib/boot2docker" )
382
300
383
301
// Copy SSH keys bundle
384
- vmrun ("-gu" , B2DUser , "-gp" , B2DPass , "CopyFileFromHostToGuest" , d .vmxPath (), d .ResolveStorePath ("userdata.tar" ), "/home/docker/userdata.tar" )
302
+ vmrun ("-gu" , d . SSHUser , "-gp" , d . SSHPassword , "CopyFileFromHostToGuest" , d .vmxPath (), d .ResolveStorePath ("userdata.tar" ), "/home/docker/userdata.tar" )
385
303
386
304
// Expand tar file.
387
- vmrun ("-gu" , B2DUser , "-gp" , B2DPass , "runScriptInGuest" , d .vmxPath (), "/bin/sh" , "sudo sh -c \" tar xvf /home/docker/userdata.tar -C /home/docker > /var/log/userdata.log 2>&1 && chown -R docker:staff /home/docker\" " )
305
+ vmrun ("-gu" , d . SSHUser , "-gp" , d . SSHPassword , "runScriptInGuest" , d .vmxPath (), "/bin/sh" , "sudo sh -c \" tar xvf /home/docker/userdata.tar -C /home/docker > /var/log/userdata.log 2>&1 && chown -R docker:staff /home/docker\" " )
388
306
389
307
// copy to /var/lib/boot2docker
390
- vmrun ("-gu" , B2DUser , "-gp" , B2DPass , "runScriptInGuest" , d .vmxPath (), "/bin/sh" , "sudo /bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar" )
308
+ vmrun ("-gu" , d . SSHUser , "-gp" , d . SSHPassword , "runScriptInGuest" , d .vmxPath (), "/bin/sh" , "sudo /bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar" )
391
309
392
310
// Enable Shared Folders
393
- vmrun ("-gu" , B2DUser , "-gp" , B2DPass , "enableSharedFolders" , d .vmxPath ())
311
+ vmrun ("-gu" , d . SSHUser , "-gp" , d . SSHPassword , "enableSharedFolders" , d .vmxPath ())
394
312
395
313
shareName , hostDir , shareDir := getShareDriveAndName ()
396
314
if hostDir != "" && ! d .NoShare {
397
315
if _ , err := os .Stat (hostDir ); err != nil && ! os .IsNotExist (err ) {
398
316
return err
399
317
} else if ! os .IsNotExist (err ) {
400
318
// add shared folder, create mountpoint and mount it.
401
- vmrun ("-gu" , B2DUser , "-gp" , B2DPass , "addSharedFolder" , d .vmxPath (), shareName , hostDir )
319
+ vmrun ("-gu" , d . SSHUser , "-gp" , d . SSHPassword , "addSharedFolder" , d .vmxPath (), shareName , hostDir )
402
320
command := mountCommand (shareName , shareDir )
403
- vmrun ("-gu" , B2DUser , "-gp" , B2DPass , "runScriptInGuest" , d .vmxPath (), "/bin/sh" , command )
321
+ vmrun ("-gu" , d . SSHUser , "-gp" , d . SSHPassword , "runScriptInGuest" , d .vmxPath (), "/bin/sh" , command )
404
322
}
405
323
}
406
324
return nil
0 commit comments