Skip to content
This repository has been archived by the owner on Sep 26, 2021. It is now read-only.

hooked a PostCreateCheck for checking the configuration setting #892

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions drivers/amazonec2/amazonec2.go
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,10 @@ func (d *Driver) PreCreateCheck() error {
return d.checkPrereqs()
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) instanceIpAvailable() bool {
ip, err := d.GetIP()
if err != nil {
Expand Down
4 changes: 4 additions & 0 deletions drivers/azure/azure.go
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) Create() error {
if err := d.setUserSubscription(); err != nil {
return err
Expand Down
4 changes: 4 additions & 0 deletions drivers/digitalocean/digitalocean.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ func (d *Driver) PreCreateCheck() error {
return fmt.Errorf("digitalocean requires a valid region")
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) Create() error {
log.Infof("Creating SSH key...")

Expand Down
3 changes: 3 additions & 0 deletions drivers/drivers.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ type Driver interface {
// PreCreateCheck allows for pre-create operations to make sure a driver is ready for creation
PreCreateCheck() error

// PostCreateCheck allows for checking the creation of driver met the configuration we specified
PostCreateCheck() error

// Remove a host
Remove() error

Expand Down
4 changes: 4 additions & 0 deletions drivers/fakedriver/fakedriver.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ func (d *FakeDriver) PreCreateCheck() error {
return nil
}

func (d *FakeDriver) PostCreateCheck() error {
return nil
}

func (d *FakeDriver) Create() error {
return nil
}
Expand Down
4 changes: 4 additions & 0 deletions drivers/google/google.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

// Create creates a GCE VM instance acting as a docker host.
func (d *Driver) Create() error {
c, err := newComputeUtil(d)
Expand Down
4 changes: 4 additions & 0 deletions drivers/hyperv/hyperv_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) GetURL() (string, error) {
ip, err := d.GetIP()
if err != nil {
Expand Down
4 changes: 4 additions & 0 deletions drivers/none/none.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) Remove() error {
return nil
}
Expand Down
4 changes: 4 additions & 0 deletions drivers/openstack/openstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) Create() error {
d.KeyPairName = fmt.Sprintf("%s-%s", d.MachineName, utils.GenerateRandomID())

Expand Down
4 changes: 4 additions & 0 deletions drivers/softlayer/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) waitForStart() {
log.Infof("Waiting for host to become available")
for {
Expand Down
47 changes: 47 additions & 0 deletions drivers/virtualbox/virtualbox.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,53 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
}

func (d *Driver) PreCreateCheck() error {

return nil
}

func (d *Driver) PostCreateCheck() error {
// check the settings for configuration
log.Infof("Comparing Memory Size ...")
vminfostdout, vminfostderr, vminfoerr := vbmOutErr("showvminfo", d.MachineName,
"--machinereadable")
if vminfoerr != nil {
if reMachineNotFound.FindString(vminfostderr) != "" {
return ErrMachineNotExist
}
return vminfoerr
}

reMemorySize := regexp.MustCompile(`(?m)^memory=(\w+)`)
realMemorySize := reMemorySize.FindStringSubmatch(vminfostdout)
log.Infof("Real Memory Size: %s", realMemorySize[1])
memSize, e := strconv.Atoi(realMemorySize[1])
if e != nil {
return e
}

if memSize != d.Memory {
log.Warnf("Mismatched Memory Size.")
}

log.Infof("Comparing Disk Size ...")
hdinfostdout, hdinfostderr, hdinfoerr := vbmOutErr("showhdinfo", d.diskPath())
if hdinfoerr != nil {
if reMachineNotFound.FindString(hdinfostderr) != "" {
return ErrMachineNotExist
}
return hdinfoerr
}

reDiskSize := regexp.MustCompile(`(?m)^Capacity:(.*)MBytes`)
realDiskSize := reDiskSize.FindStringSubmatch(hdinfostdout)
log.Infof("Real HD Disk Size: %s", strings.TrimSpace(realDiskSize[1]))
diskSize, e := strconv.Atoi(strings.TrimSpace(realDiskSize[1]))
if e != nil {
return e
}
if diskSize != d.DiskSize {
log.Warnf("Mismatched Disk Size.")
}
return nil
}

Expand Down
4 changes: 4 additions & 0 deletions drivers/vmwarefusion/fusion_darwin.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) Create() error {

var (
Expand Down
4 changes: 4 additions & 0 deletions drivers/vmwarevcloudair/vcloudair.go
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

func (d *Driver) Create() error {

key, err := d.createSSHKey()
Expand Down
4 changes: 4 additions & 0 deletions drivers/vmwarevsphere/vsphere.go
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,10 @@ func (d *Driver) PreCreateCheck() error {
return nil
}

func (d *Driver) PostCreateCheck() error {
return nil
}

// the current implementation does the following:
// 1. check whether the docker directory contains the boot2docker ISO
// 2. generate an SSH keypair and bundle it in a tar.
Expand Down
4 changes: 4 additions & 0 deletions libmachine/machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ func (m *Machine) Create(name string, driverName string, hostOptions *HostOption
return nil, err
}

if err := host.Driver.PostCreateCheck(); err != nil {
return nil, err
}

return host, nil
}

Expand Down