func (m *Machine) AttachStorage(ctlName string, medium driver.StorageMedium) error {
	fmt.Println("Attach storage")
	return nil
}
AttachStorage attaches a storage medium to the named storage controller.
package dummy
import (
	"fmt"
	"os"
	"github.com/boot2docker/boot2docker-cli/driver"
	flag "github.com/ogier/pflag"
)
type DriverCfg struct {
	DummyParam  string  
	hiddenParam string
}
var (
	verbose bool  
	cfg     DriverCfg
)
func init() {
	if err := driver.Register("dummy", InitFunc); err != nil {
		fmt.Fprintf(os.Stderr, "Failed to initialize driver. Error : %s", err.Error())
		os.Exit(1)
	}
	if err := driver.RegisterConfig("dummy", ConfigFlags); err != nil {
		fmt.Fprintf(os.Stderr, "Failed to initialize driver config. Error : %s", err.Error())
		os.Exit(1)
	}
}
func InitFunc(i *driver.MachineConfig) (driver.Machine, error) {
	verbose = i.Verbose
	fmt.Printf("Init dummy %s\n", i.VM)
	return &Machine{Name: i.VM, State: driver.Poweroff}, nil
}
func ConfigFlags(B2D *driver.MachineConfig, flags *flag.FlagSet) error {
	flags.StringVar(&cfg.DummyParam, "no-dummy", "", "Example parameter for the dummy driver.")
	return nil
}
type Machine struct {
	Name       string
	UUID       string
	State      driver.MachineState
	CPUs       uint
	Memory     uint  
	VRAM       uint  
	CfgFile    string
	BaseFolder string
	OSType     string
	BootOrder  []string  
	DockerPort uint
	SSHPort    uint
	SerialFile string
}
func (m *Machine) Refresh() error {
	fmt.Printf("Refresh %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Start() error {
	m.State = driver.Running
	fmt.Printf("Start %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Save() error {
	m.State = driver.Saved
	fmt.Printf("Save %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Pause() error {
	m.State = driver.Paused
	fmt.Printf("Pause %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Stop() error {
	m.State = driver.Poweroff
	fmt.Printf("Stop %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Poweroff() error {
	m.State = driver.Poweroff
	fmt.Printf("Poweroff %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Restart() error {
	m.State = driver.Running
	fmt.Printf("Restart %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Reset() error {
	m.State = driver.Running
	fmt.Printf("Reset %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) GetName() string {
	return m.Name
}
func (m *Machine) GetState() driver.MachineState {
	return m.State
}
func (m *Machine) GetSerialFile() string {
	return m.SerialFile
}
func (m *Machine) GetDockerPort() uint {
	return m.DockerPort
}
func (m *Machine) GetSSHPort() uint {
	return m.SSHPort
}
func (m *Machine) Delete() error {
	fmt.Printf("Delete %s: %s\n", m.Name, m.State)
	return nil
}
func (m *Machine) Modify() error {
	fmt.Printf("Modify %s: %s\n", m.Name, m.State)
	return m.Refresh()
}
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
	fmt.Println("Add NAT PF")
	return nil
}
func (m *Machine) DelNATPF(n int, name string) error {
	fmt.Println("Del NAT PF")
	return nil
}
func (m *Machine) SetNIC(n int, nic driver.NIC) error {
	fmt.Println("Set NIC")
	return nil
}
func (m *Machine) AddStorageCtl(name string, ctl driver.StorageController) error {
	fmt.Println("Add storage ctl")
	return nil
}
func (m *Machine) DelStorageCtl(name string) error {
	fmt.Println("Del storage ctl")
	return nil
}