44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package common
|
|
|
|
import (
|
|
"github.com/mitchellh/multistep"
|
|
)
|
|
|
|
// A driver is able to talk to VMware, control virtual machines, etc.
|
|
type Driver interface {
|
|
// CompactDisk compacts a virtual disk.
|
|
CompactDisk(string) error
|
|
|
|
// CreateDisk creates a virtual disk with the given size.
|
|
CreateDisk(string, string, string) error
|
|
|
|
// Checks if the VMX file at the given path is running.
|
|
IsRunning(string) (bool, error)
|
|
|
|
// SSHAddress returns the SSH address for the VM that is being
|
|
// managed by this driver.
|
|
SSHAddress(multistep.StateBag) (string, error)
|
|
|
|
// Start starts a VM specified by the path to the VMX given.
|
|
Start(string, bool) error
|
|
|
|
// Stop stops a VM specified by the path to the VMX given.
|
|
Stop(string) error
|
|
|
|
// SuppressMessages modifies the VMX or surrounding directory so that
|
|
// VMware doesn't show any annoying messages.
|
|
SuppressMessages(string) error
|
|
|
|
// Get the path to the VMware ISO for the given flavor.
|
|
ToolsIsoPath(string) string
|
|
|
|
// Get the path to the DHCP leases file for the given device.
|
|
DhcpLeasesPath(string) string
|
|
|
|
// Verify checks to make sure that this driver should function
|
|
// properly. This should check that all the files it will use
|
|
// appear to exist and so on. If everything is okay, this doesn't
|
|
// return an error. Otherwise, this returns an error.
|
|
Verify() error
|
|
}
|