Exemple #1
0
// NewDriver creates a new driver based on the passed-in Context
// and initializes it.
// This sets up authentication and should be called before
// driver-specific docker-machine commands.
func NewDriver(context *base.Context) (drivers.Driver, error) {
	tokens := strings.SplitN(context.Region, ":", 2)
	if len(tokens) != 2 {
		return nil, util.Errorf("invalid region syntax, expected <driver>:<region name>, got: %q", context.Region)
	}

	var driver drivers.Driver

	provider := tokens[0]
	region := tokens[1]
	switch provider {
	case "aws":
		driver = amazon.NewDriver(context, region)
	case "gce":
		driver = google.NewDriver(context, region)
	default:
		return nil, util.Errorf("unknown driver: %s", driver)
	}

	err := driver.Init()
	return driver, err
}