ec2: fix bug where ip address was not updated upon restart

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
Evan Hazlett 2015-03-16 15:52:12 -04:00
parent d221d8ee97
commit 5403171328
4 changed files with 48 additions and 5 deletions

View File

@ -381,7 +381,12 @@ func cmdConfig(c *cli.Context) {
if err != nil {
log.Fatal(err)
}
dockerHost := cfg.machineUrl
dockerHost, err := getHost(c).Driver.GetURL()
if err != nil {
log.Fatal(err)
}
if c.Bool("swarm") {
if !cfg.swarmMaster {
log.Fatalf("%s is not a swarm master", cfg.machineName)
@ -394,7 +399,7 @@ func cmdConfig(c *cli.Context) {
swarmPort := parts[1]
// get IP of machine to replace in case swarm host is 0.0.0.0
mUrl, err := url.Parse(cfg.machineUrl)
mUrl, err := url.Parse(dockerHost)
if err != nil {
log.Fatal(err)
}
@ -404,6 +409,8 @@ func cmdConfig(c *cli.Context) {
dockerHost = fmt.Sprintf("tcp://%s:%s", machineIp, swarmPort)
}
log.Debug(dockerHost)
u, err := url.Parse(cfg.machineUrl)
if err != nil {
log.Fatal(err)

View File

@ -384,10 +384,14 @@ func (d *Driver) Create() error {
}
func (d *Driver) GetURL() (string, error) {
if d.IPAddress == "" {
ip, err := d.GetIP()
if err != nil {
return "", err
}
if ip == "" {
return "", nil
}
return fmt.Sprintf("tcp://%s:%d", d.IPAddress, dockerPort), nil
return fmt.Sprintf("tcp://%s:%d", ip, dockerPort), nil
}
func (d *Driver) GetIP() (string, error) {

28
host.go
View File

@ -610,6 +610,11 @@ func (h *Host) Start() error {
if err := h.Driver.Start(); err != nil {
return err
}
if err := h.SaveConfig(); err != nil {
return err
}
return utils.WaitFor(h.MachineInState(state.Running))
}
@ -617,6 +622,11 @@ func (h *Host) Stop() error {
if err := h.Driver.Stop(); err != nil {
return err
}
if err := h.SaveConfig(); err != nil {
return err
}
return utils.WaitFor(h.MachineInState(state.Stopped))
}
@ -624,6 +634,11 @@ func (h *Host) Kill() error {
if err := h.Driver.Stop(); err != nil {
return err
}
if err := h.SaveConfig(); err != nil {
return err
}
return utils.WaitFor(h.MachineInState(state.Stopped))
}
@ -631,15 +646,23 @@ func (h *Host) Restart() error {
if err := h.Stop(); err != nil {
return err
}
if err := utils.WaitFor(h.MachineInState(state.Stopped)); err != nil {
return err
}
if err := h.Start(); err != nil {
return err
}
if err := utils.WaitFor(h.MachineInState(state.Running)); err != nil {
return err
}
if err := h.SaveConfig(); err != nil {
return err
}
return nil
}
@ -654,6 +677,11 @@ func (h *Host) Remove(force bool) error {
return err
}
}
if err := h.SaveConfig(); err != nil {
return err
}
return h.removeStorePath()
}

View File

@ -192,7 +192,11 @@ func ValidateCertificate(addr, caCertPath, serverCertPath, serverKeyPath string)
return false, err
}
_, err = tls.Dial("tcp", addr, tlsConfig)
dialer := &net.Dialer{
Timeout: time.Second * 2,
}
_, err = tls.DialWithDialer(dialer, "tcp", addr, tlsConfig)
if err != nil {
return false, nil
}