mirror of https://github.com/docker/docs.git
103 lines
2.2 KiB
Go
103 lines
2.2 KiB
Go
package none
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
|
|
"github.com/docker/docker/api"
|
|
flag "github.com/docker/docker/pkg/mflag"
|
|
"github.com/docker/machine/drivers"
|
|
"github.com/docker/machine/state"
|
|
)
|
|
|
|
// Driver is the driver used when no driver is selected. It is used to
|
|
// connect to existing Docker hosts by specifying the URL of the host as
|
|
// an option.
|
|
type Driver struct {
|
|
URL string
|
|
}
|
|
|
|
type CreateFlags struct {
|
|
URL *string
|
|
}
|
|
|
|
func init() {
|
|
drivers.Register("none", &drivers.RegisteredDriver{
|
|
New: NewDriver,
|
|
RegisterCreateFlags: RegisterCreateFlags,
|
|
})
|
|
}
|
|
|
|
// RegisterCreateFlags registers the flags this driver adds to
|
|
// "docker hosts create"
|
|
func RegisterCreateFlags(cmd *flag.FlagSet) interface{} {
|
|
createFlags := new(CreateFlags)
|
|
createFlags.URL = cmd.String([]string{"-url"}, "", "URL of host when no driver is selected")
|
|
return createFlags
|
|
}
|
|
|
|
func NewDriver(storePath string) (drivers.Driver, error) {
|
|
return &Driver{}, nil
|
|
}
|
|
|
|
func (d *Driver) DriverName() string {
|
|
return "none"
|
|
}
|
|
|
|
func (d *Driver) SetConfigFromFlags(flagsInterface interface{}) error {
|
|
flags := flagsInterface.(*CreateFlags)
|
|
if *flags.URL == "" {
|
|
return fmt.Errorf("--url option is required when no driver is selected")
|
|
}
|
|
url, err := api.ValidateHost(*flags.URL)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d.URL = url
|
|
return nil
|
|
}
|
|
|
|
func (d *Driver) GetURL() (string, error) {
|
|
return d.URL, nil
|
|
}
|
|
|
|
func (d *Driver) GetIP() (string, error) {
|
|
return "", nil
|
|
}
|
|
|
|
func (d *Driver) GetState() (state.State, error) {
|
|
return state.None, nil
|
|
}
|
|
|
|
func (d *Driver) Create() error {
|
|
return nil
|
|
}
|
|
|
|
func (d *Driver) Start() error {
|
|
return fmt.Errorf("hosts without a driver cannot be started")
|
|
}
|
|
|
|
func (d *Driver) Stop() error {
|
|
return fmt.Errorf("hosts without a driver cannot be stopped")
|
|
}
|
|
|
|
func (d *Driver) Remove() error {
|
|
return nil
|
|
}
|
|
|
|
func (d *Driver) Restart() error {
|
|
return fmt.Errorf("hosts without a driver cannot be restarted")
|
|
}
|
|
|
|
func (d *Driver) Kill() error {
|
|
return fmt.Errorf("hosts without a driver cannot be killed")
|
|
}
|
|
|
|
func (d *Driver) Upgrade() error {
|
|
return fmt.Errorf("hosts without a driver cannot be upgraded")
|
|
}
|
|
|
|
func (d *Driver) GetSSHCommand(args ...string) (*exec.Cmd, error) {
|
|
return nil, fmt.Errorf("hosts without a driver do not support SSH")
|
|
}
|