Use TLS stuff instead

Thanks @ehazlett

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This commit is contained in:
Brian Goff 2015-01-19 12:32:32 -05:00
parent 8d8c6fe71d
commit b1d1c80a76
1 changed files with 48 additions and 45 deletions

View File

@ -16,8 +16,11 @@ import (
"github.com/docker/machine/state" "github.com/docker/machine/state"
) )
const ApiEndpoint = "https://api.softlayer.com/rest/v3" const (
const DockerInstallUrl = "https://get.docker.com" dockerConfigDir = "/etc/docker"
ApiEndpoint = "https://api.softlayer.com/rest/v3"
DockerInstallUrl = "https://get.docker.com"
)
type Driver struct { type Driver struct {
storePath string storePath string
@ -25,6 +28,9 @@ type Driver struct {
deviceConfig *deviceConfig deviceConfig *deviceConfig
Id int Id int
Client *Client Client *Client
MachineName string
CaCertPath string
PrivateKeyPath string
} }
type deviceConfig struct { type deviceConfig struct {
@ -48,8 +54,8 @@ func init() {
}) })
} }
func NewDriver(storePath string) (drivers.Driver, error) { func NewDriver(machineName string, storePath string, caCert string, privateKey string) (drivers.Driver, error) {
return &Driver{storePath: storePath}, nil return &Driver{MachineName: machineName, storePath: storePath, CaCertPath: caCert, PrivateKeyPath: privateKey}, nil
} }
func GetCreateFlags() []cli.Flag { func GetCreateFlags() []cli.Flag {
@ -212,6 +218,38 @@ func (d *Driver) DriverName() string {
return "softlayer" return "softlayer"
} }
func (d *Driver) StartDocker() error {
log.Debug("Starting Docker...")
cmd, err := d.GetSSHCommand("sudo service docker start")
if err != nil {
return err
}
if err := cmd.Run(); err != nil {
return err
}
return nil
}
func (d *Driver) StopDocker() error {
log.Debug("Stopping Docker...")
cmd, err := d.GetSSHCommand("sudo service docker stop")
if err != nil {
return err
}
if err := cmd.Run(); err != nil {
return err
}
return nil
}
func (d *Driver) GetDockerConfigDir() string {
return dockerConfigDir
}
func (d *Driver) GetURL() (string, error) { func (d *Driver) GetURL() (string, error) {
ip, err := d.GetIP() ip, err := d.GetIP()
if err != nil { if err != nil {
@ -412,41 +450,6 @@ func (d *Driver) setupHost() error {
} }
time.Sleep(2 * time.Second) time.Sleep(2 * time.Second)
} }
// Remove this once ID auth is released officialy
cmd, err := d.GetSSHCommand("service docker stop")
if err != nil {
return err
}
if err := cmd.Run(); err != nil {
return err
}
cmd, err = d.GetSSHCommand("dbin=$(which docker); wget -O $dbin https://bfirsh.s3.amazonaws.com/docker/docker-1.3.1-dev-identity-auth > /dev/null 2>&1 && chmod +x $dbin")
if err != nil {
return err
}
if err := cmd.Run(); err != nil {
return err
}
log.Debugf("Updating /etc/default/docker to use identity auth...") return nil
cmd, err = d.GetSSHCommand("echo 'export DOCKER_OPTS=\"--auth=identity --host=tcp://0.0.0.0:2376\"' >> /etc/default/docker")
if err != nil {
return err
}
if err := cmd.Run(); err != nil {
return err
}
log.Debugf("Adding key to authorized-keys.d...")
if err := drivers.AddPublicKeyToAuthorizedHosts(d, "/.docker/authorized-keys.d"); err != nil {
return err
}
cmd, err = d.GetSSHCommand("service docker start")
if err != nil {
return err
}
return cmd.Run()
} }