drivers/virtualbox/virtualbox.go
func (d *Driver) PreCreateCheck() error {
	// Check that VBoxManage exists and works
	version, err := d.vbmOut("--version")
	if err != nil {
		return err
	}

	// Check that VBoxManage is of a supported version
	if err = checkVBoxManageVersion(strings.TrimSpace(version)); err != nil {
		return err
	}

	if !d.NoVTXCheck {
		if isHyperVInstalled() {
			return ErrNotCompatibleWithHyperV
		}

		if d.IsVTXDisabled() {
			return ErrMustEnableVTX
		}
	}

	// Downloading boot2docker to cache should be done here to make sure
	// that a download failure will not leave a machine half created.
	if err := d.b2dUpdater.UpdateISOCache(d.StorePath, d.Boot2DockerURL); err != nil {
		return err
	}

	// Check that Host-only interfaces are ok
	if _, err = listHostOnlyAdapters(d.VBoxManager); err != nil {
		return err
	}

	return nil
}
func (d *Driver) PreCreateCheck() error {
	// Check that VBoxManage exists and works
	version, err := d.vbmOut("--version")
	if err != nil {
		return err
	}

	// Check that VBoxManage is of a supported version
	if err = checkVBoxManageVersion(strings.TrimSpace(version)); err != nil {
		return err
	}

	if !d.NoVTXCheck {
		if isHyperVInstalled() {
			return ErrNotCompatibleWithHyperV
		}

		if d.IsVTXDisabled() {
			return ErrMustEnableVTX
		}
	}

	// Downloading boot2docker to cache should be done here to make sure
	// that a download failure will not leave a machine half created.
	if err := d.b2dUpdater.UpdateISOCache(d.StorePath, d.Boot2DockerURL); err != nil {
		return err
	}

	// Check that Host-only interfaces are ok
	if _, err = listHostOnlyAdapters(d.VBoxManager); err != nil {
		return err
	}

	return nil
}
func ( d * Driver ) PreCreateCheck ( ) error { // Check that VBoxManage exists and works version , err := d . vbmOut ( " " ) if err != nil { return err } // Check that VBoxManage is of a supported version if err = checkVBoxManageVersion ( strings . TrimSpace ( version ) ) ; err != nil { return err } if ! d . NoVTXCheck { if isHyperVInstalled ( ) { return ErrNotCompatibleWithHyperV } if d . IsVTXDisabled ( ) { return ErrMustEnableVTX } } // Downloading boot2docker to cache should be done here to make sure // that a download failure will not leave a machine half created. if err := d . b2dUpdater . UpdateISOCache ( d . StorePath , d . Boot2DockerURL ) ; err != nil { return err } // Check that Host-only interfaces are ok if _ , err = listHostOnlyAdapters ( d . VBoxManager ) ; err != nil { return err } return nil }
// PreCreateCheck checks that VBoxManage exists and works
PreCreateCheck checks that VBoxManage exists and works