clean up the vmware drivers
Signed-off-by: Sascha Hanse <shanse@gmail.com> forgot gofmt Signed-off-by: Sascha Hanse <shanse@gmail.com>
This commit is contained in:
@@ -29,8 +29,8 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
B2D_USER = "docker"
|
||||
B2D_PASS = "tcuser"
|
||||
B2DUser = "docker"
|
||||
B2DPass = "tcuser"
|
||||
isoFilename = "boot2docker-1.6.0-vmw.iso"
|
||||
)
|
||||
|
||||
@@ -311,13 +311,13 @@ func (d *Driver) Create() error {
|
||||
}
|
||||
|
||||
// Test if /var/lib/boot2docker exists
|
||||
vmrun("-gu", B2D_USER, "-gp", B2D_PASS, "directoryExistsInGuest", d.vmxPath(), "/var/lib/boot2docker")
|
||||
vmrun("-gu", B2DUser, "-gp", B2DPass, "directoryExistsInGuest", d.vmxPath(), "/var/lib/boot2docker")
|
||||
|
||||
// Copy SSH keys bundle
|
||||
vmrun("-gu", B2D_USER, "-gp", B2D_PASS, "CopyFileFromHostToGuest", d.vmxPath(), path.Join(d.storePath, "userdata.tar"), "/home/docker/userdata.tar")
|
||||
vmrun("-gu", B2DUser, "-gp", B2DPass, "CopyFileFromHostToGuest", d.vmxPath(), path.Join(d.storePath, "userdata.tar"), "/home/docker/userdata.tar")
|
||||
|
||||
// Expand tar file.
|
||||
vmrun("-gu", B2D_USER, "-gp", B2D_PASS, "runScriptInGuest", d.vmxPath(), "/bin/sh", "sudo /bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar && sudo tar xf /var/lib/boot2docker/userdata.tar -C /home/docker/ > /var/log/userdata.log 2>&1 && sudo chown -R docker:staff /home/docker")
|
||||
vmrun("-gu", B2DUser, "-gp", B2DPass, "runScriptInGuest", d.vmxPath(), "/bin/sh", "sudo /bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar && sudo tar xf /var/lib/boot2docker/userdata.tar -C /home/docker/ > /var/log/userdata.log 2>&1 && sudo chown -R docker:staff /home/docker")
|
||||
|
||||
// Enable Shared Folders
|
||||
vmrun("-gu", B2D_USER, "-gp", B2D_PASS, "enableSharedFolders", d.vmxPath())
|
||||
@@ -399,7 +399,7 @@ func (d *Driver) Kill() error {
|
||||
}
|
||||
|
||||
func (d *Driver) Upgrade() error {
|
||||
return fmt.Errorf("VMware Fusion does not currently support the upgrade operation.")
|
||||
return fmt.Errorf("VMware Fusion does not currently support the upgrade operation")
|
||||
}
|
||||
|
||||
func (d *Driver) vmxPath() string {
|
||||
@@ -534,7 +534,7 @@ func (d *Driver) generateKeyBundle() error {
|
||||
return err
|
||||
}
|
||||
defer tf.Close()
|
||||
var fileWriter io.WriteCloser = tf
|
||||
var fileWriter = tf
|
||||
|
||||
tw := tar.NewWriter(fileWriter)
|
||||
defer tw.Close()
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
// this is empty to allow builds on non-darwin platforms
|
||||
// Package vmwarefusion is empty to allow builds on non-darwin platforms
|
||||
package vmwarefusion
|
||||
|
||||
@@ -6,14 +6,14 @@ package errors
|
||||
|
||||
import "fmt"
|
||||
|
||||
type VmError struct {
|
||||
type VMError struct {
|
||||
operation string
|
||||
vm string
|
||||
reason string
|
||||
}
|
||||
|
||||
func NewVmError(operation, vm, reason string) error {
|
||||
err := VmError{
|
||||
func NewVMError(operation, vm, reason string) error {
|
||||
err := VMError{
|
||||
vm: vm,
|
||||
operation: operation,
|
||||
reason: reason,
|
||||
@@ -21,6 +21,6 @@ func NewVmError(operation, vm, reason string) error {
|
||||
return &err
|
||||
}
|
||||
|
||||
func (err *VmError) Error() string {
|
||||
func (err *VMError) Error() string {
|
||||
return fmt.Sprintf("Unable to %s docker host %s: %s", err.operation, err.vm, err.reason)
|
||||
}
|
||||
|
||||
@@ -62,16 +62,16 @@ func (conn VcConn) DatastoreMkdir(dirName string) error {
|
||||
}
|
||||
|
||||
func (conn VcConn) DatastoreUpload(localPath string) error {
|
||||
stdout, err := conn.DatastoreLs(DATASTORE_DIR)
|
||||
if err == nil && strings.Contains(stdout, B2D_ISO_NAME) {
|
||||
stdout, err := conn.DatastoreLs(DatastoreDir)
|
||||
if err == nil && strings.Contains(stdout, B2DISOName) {
|
||||
log.Infof("boot2docker ISO already uploaded, skipping upload... ")
|
||||
return nil
|
||||
}
|
||||
|
||||
log.Infof("Uploading %s to %s on datastore %s of vCenter %s... ",
|
||||
localPath, DATASTORE_DIR, conn.driver.Datastore, conn.driver.IP)
|
||||
localPath, DatastoreDir, conn.driver.Datastore, conn.driver.IP)
|
||||
|
||||
dsPath := fmt.Sprintf("%s/%s", DATASTORE_DIR, B2D_ISO_NAME)
|
||||
dsPath := fmt.Sprintf("%s/%s", DatastoreDir, B2DISOName)
|
||||
args := []string{"datastore.upload"}
|
||||
args = conn.AppendConnectionString(args)
|
||||
args = append(args, fmt.Sprintf("--ds=%s", conn.driver.Datastore))
|
||||
@@ -81,12 +81,11 @@ func (conn VcConn) DatastoreUpload(localPath string) error {
|
||||
_, stderr, err := govcOutErr(args...)
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewDatastoreError(conn.driver.Datacenter, "upload", stderr)
|
||||
}
|
||||
return errors.NewDatastoreError(conn.driver.Datacenter, "upload", stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmInfo() (string, error) {
|
||||
func (conn VcConn) VMInfo() (string, error) {
|
||||
args := []string{"vm.info"}
|
||||
args = conn.AppendConnectionString(args)
|
||||
args = append(args, fmt.Sprintf("--dc=%s", conn.driver.Datacenter))
|
||||
@@ -95,12 +94,11 @@ func (conn VcConn) VmInfo() (string, error) {
|
||||
stdout, stderr, err := govcOutErr(args...)
|
||||
if strings.Contains(stdout, "Name") && stderr == "" && err == nil {
|
||||
return stdout, nil
|
||||
} else {
|
||||
return "", errors.NewVmError("find", conn.driver.MachineName, "VM not found")
|
||||
}
|
||||
return "", errors.NewVMError("find", conn.driver.MachineName, "VM not found")
|
||||
}
|
||||
|
||||
func (conn VcConn) VmCreate(isoPath string) error {
|
||||
func (conn VcConn) VMCreate(isoPath string) error {
|
||||
log.Infof("Creating virtual machine %s of vCenter %s... ",
|
||||
conn.driver.MachineName, conn.driver.IP)
|
||||
|
||||
@@ -128,12 +126,11 @@ func (conn VcConn) VmCreate(isoPath string) error {
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewVmError("create", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewVMError("create", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmPowerOn() error {
|
||||
func (conn VcConn) VMPowerOn() error {
|
||||
log.Infof("Powering on virtual machine %s of vCenter %s... ",
|
||||
conn.driver.MachineName, conn.driver.IP)
|
||||
|
||||
@@ -146,12 +143,11 @@ func (conn VcConn) VmPowerOn() error {
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewVmError("power on", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewVMError("power on", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmPowerOff() error {
|
||||
func (conn VcConn) VMPowerOff() error {
|
||||
log.Infof("Powering off virtual machine %s of vCenter %s... ",
|
||||
conn.driver.MachineName, conn.driver.IP)
|
||||
|
||||
@@ -164,12 +160,11 @@ func (conn VcConn) VmPowerOff() error {
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewVmError("power on", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewVMError("power on", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmShutdown() error {
|
||||
func (conn VcConn) VMShutdown() error {
|
||||
log.Infof("Powering off virtual machine %s of vCenter %s... ",
|
||||
conn.driver.MachineName, conn.driver.IP)
|
||||
|
||||
@@ -182,12 +177,11 @@ func (conn VcConn) VmShutdown() error {
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewVmError("power on", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewVMError("power on", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmDestroy() error {
|
||||
func (conn VcConn) VMDestroy() error {
|
||||
log.Infof("Deleting virtual machine %s of vCenter %s... ",
|
||||
conn.driver.MachineName, conn.driver.IP)
|
||||
|
||||
@@ -199,13 +193,11 @@ func (conn VcConn) VmDestroy() error {
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewVmError("delete", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
return errors.NewVMError("delete", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmDiskCreate() error {
|
||||
func (conn VcConn) VMDiskCreate() error {
|
||||
args := []string{"vm.disk.create"}
|
||||
args = conn.AppendConnectionString(args)
|
||||
args = append(args, fmt.Sprintf("--dc=%s", conn.driver.Datacenter))
|
||||
@@ -218,12 +210,11 @@ func (conn VcConn) VmDiskCreate() error {
|
||||
_, stderr, err := govcOutErr(args...)
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewVmError("add network", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewVMError("add network", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmAttachNetwork() error {
|
||||
func (conn VcConn) VMAttachNetwork() error {
|
||||
args := []string{"vm.network.add"}
|
||||
args = conn.AppendConnectionString(args)
|
||||
args = append(args, fmt.Sprintf("--dc=%s", conn.driver.Datacenter))
|
||||
@@ -233,12 +224,11 @@ func (conn VcConn) VmAttachNetwork() error {
|
||||
_, stderr, err := govcOutErr(args...)
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewVmError("add network", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewVMError("add network", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) VmFetchIp() (string, error) {
|
||||
func (conn VcConn) VMFetchIP() (string, error) {
|
||||
args := []string{"vm.ip"}
|
||||
args = conn.AppendConnectionString(args)
|
||||
args = append(args, fmt.Sprintf("--dc=%s", conn.driver.Datacenter))
|
||||
@@ -247,9 +237,8 @@ func (conn VcConn) VmFetchIp() (string, error) {
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return stdout, nil
|
||||
} else {
|
||||
return "", errors.NewVmError("fetching IP", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return "", errors.NewVMError("fetching IP", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) GuestMkdir(guestUser, guestPass, dirName string) error {
|
||||
@@ -264,9 +253,8 @@ func (conn VcConn) GuestMkdir(guestUser, guestPass, dirName string) error {
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewGuestError("mkdir", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewGuestError("mkdir", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) GuestUpload(guestUser, guestPass, localPath, remotePath string) error {
|
||||
@@ -282,9 +270,8 @@ func (conn VcConn) GuestUpload(guestUser, guestPass, localPath, remotePath strin
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewGuestError("upload", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewGuestError("upload", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) GuestStart(guestUser, guestPass, remoteBin, remoteArguments string) error {
|
||||
@@ -299,9 +286,8 @@ func (conn VcConn) GuestStart(guestUser, guestPass, remoteBin, remoteArguments s
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewGuestError("start", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewGuestError("start", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) GuestDownload(guestUser, guestPass, remotePath, localPath string) error {
|
||||
@@ -316,9 +302,8 @@ func (conn VcConn) GuestDownload(guestUser, guestPass, remotePath, localPath str
|
||||
|
||||
if stderr == "" && err == nil {
|
||||
return nil
|
||||
} else {
|
||||
return errors.NewGuestError("download", conn.driver.MachineName, stderr)
|
||||
}
|
||||
return errors.NewGuestError("download", conn.driver.MachineName, stderr)
|
||||
}
|
||||
|
||||
func (conn VcConn) AppendConnectionString(args []string) []string {
|
||||
|
||||
@@ -28,12 +28,12 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
DATASTORE_DIR = "boot2docker-iso"
|
||||
isoFilename = "boot2docker-1.6.0-vmw.iso"
|
||||
B2D_ISO_NAME = isoFilename
|
||||
DEFAULT_CPU_NUMBER = 2
|
||||
B2D_USER = "docker"
|
||||
B2D_PASS = "tcuser"
|
||||
DatastoreDir = "boot2docker-iso"
|
||||
isoFilename = "boot2docker-1.6.0-vmw.iso"
|
||||
B2DISOName = isoFilename
|
||||
DefaultCPUNumber = 2
|
||||
B2DUser = "docker"
|
||||
B2DPass = "tcuser"
|
||||
)
|
||||
|
||||
type Driver struct {
|
||||
@@ -229,17 +229,17 @@ func (d *Driver) GetIP() (string, error) {
|
||||
return "", errors.NewInvalidStateError(d.MachineName)
|
||||
}
|
||||
vcConn := NewVcConn(d)
|
||||
rawIp, err := vcConn.VmFetchIp()
|
||||
rawIP, err := vcConn.VMFetchIP()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
ip := strings.Trim(strings.Split(rawIp, "\n")[0], " ")
|
||||
ip := strings.Trim(strings.Split(rawIP, "\n")[0], " ")
|
||||
return ip, nil
|
||||
}
|
||||
|
||||
func (d *Driver) GetState() (state.State, error) {
|
||||
vcConn := NewVcConn(d)
|
||||
stdout, err := vcConn.VmInfo()
|
||||
stdout, err := vcConn.VMInfo()
|
||||
if err != nil {
|
||||
return state.None, err
|
||||
}
|
||||
@@ -333,7 +333,7 @@ func (d *Driver) Create() error {
|
||||
|
||||
vcConn := NewVcConn(d)
|
||||
log.Infof("Uploading Boot2docker ISO ...")
|
||||
if err := vcConn.DatastoreMkdir(DATASTORE_DIR); err != nil {
|
||||
if err := vcConn.DatastoreMkdir(DatastoreDir); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -346,17 +346,17 @@ func (d *Driver) Create() error {
|
||||
return err
|
||||
}
|
||||
|
||||
isoPath := fmt.Sprintf("%s/%s", DATASTORE_DIR, isoFilename)
|
||||
if err := vcConn.VmCreate(isoPath); err != nil {
|
||||
isoPath := fmt.Sprintf("%s/%s", DatastoreDir, isoFilename)
|
||||
if err := vcConn.VMCreate(isoPath); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Infof("Configuring the virtual machine %s... ", d.MachineName)
|
||||
if err := vcConn.VmDiskCreate(); err != nil {
|
||||
if err := vcConn.VMDiskCreate(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := vcConn.VmAttachNetwork(); err != nil {
|
||||
if err := vcConn.VMAttachNetwork(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -370,12 +370,12 @@ func (d *Driver) Create() error {
|
||||
}
|
||||
|
||||
// Copy SSH keys bundle
|
||||
if err := vcConn.GuestUpload(B2D_USER, B2D_PASS, path.Join(d.storePath, "userdata.tar"), "/home/docker/userdata.tar"); err != nil {
|
||||
if err := vcConn.GuestUpload(B2DUser, B2DPass, path.Join(d.storePath, "userdata.tar"), "/home/docker/userdata.tar"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Expand tar file.
|
||||
if err := vcConn.GuestStart(B2D_USER, B2D_PASS, "/usr/bin/sudo", "/bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar && /usr/bin/sudo tar xf /var/lib/boot2docker/userdata.tar -C /home/docker/ > /var/log/userdata.log 2>&1 && /usr/bin/sudo chown -R docker:staff /home/docker"); err != nil {
|
||||
if err := vcConn.GuestStart(B2DUser, B2DPass, "/usr/bin/sudo", "/bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar && /usr/bin/sudo tar xf /var/lib/boot2docker/userdata.tar -C /home/docker/ > /var/log/userdata.log 2>&1 && /usr/bin/sudo chown -R docker:staff /home/docker"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -395,13 +395,13 @@ func (d *Driver) Start() error {
|
||||
case state.Stopped:
|
||||
// TODO add transactional or error handling in the following steps
|
||||
vcConn := NewVcConn(d)
|
||||
err := vcConn.VmPowerOn()
|
||||
err := vcConn.VMPowerOn()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// this step waits for the vm to start and fetch its ip address;
|
||||
// this guarantees that the opem-vmtools has started working...
|
||||
_, err = vcConn.VmFetchIp()
|
||||
_, err = vcConn.VMFetchIP()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -413,7 +413,7 @@ func (d *Driver) Start() error {
|
||||
|
||||
func (d *Driver) Stop() error {
|
||||
vcConn := NewVcConn(d)
|
||||
if err := vcConn.VmShutdown(); err != nil {
|
||||
if err := vcConn.VMShutdown(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -431,7 +431,7 @@ func (d *Driver) Remove() error {
|
||||
}
|
||||
}
|
||||
vcConn := NewVcConn(d)
|
||||
if err = vcConn.VmDestroy(); err != nil {
|
||||
if err = vcConn.VMDestroy(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
@@ -470,7 +470,7 @@ func (d *Driver) Restart() error {
|
||||
|
||||
func (d *Driver) Kill() error {
|
||||
vcConn := NewVcConn(d)
|
||||
if err := vcConn.VmPowerOff(); err != nil {
|
||||
if err := vcConn.VMPowerOff(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -545,7 +545,7 @@ func (d *Driver) generateKeyBundle() error {
|
||||
return err
|
||||
}
|
||||
defer tf.Close()
|
||||
var fileWriter io.WriteCloser = tf
|
||||
var fileWriter = tf
|
||||
|
||||
tw := tar.NewWriter(fileWriter)
|
||||
defer tw.Close()
|
||||
|
||||
Reference in New Issue
Block a user