X Tutup
Skip to content

Commit 1bc6cdd

Browse files
committed
FIX docker-archive-public#2941 Wait for Docker after a restart
Signed-off-by: David Gageot <david@gageot.net>
1 parent 62db9eb commit 1bc6cdd

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

libmachine/host/host.go

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -104,25 +104,24 @@ func (h *Host) runActionForState(action func() error, desiredState state.State)
104104
return mcnutils.WaitFor(drivers.MachineInState(h.Driver, desiredState))
105105
}
106106

107-
func (h *Host) Start() error {
108-
log.Infof("Starting %q...", h.Name)
109-
if err := h.runActionForState(h.Driver.Start, state.Running); err != nil {
110-
return err
111-
}
112-
113-
log.Infof("Machine %q was started.", h.Name)
114-
107+
func (h *Host) WaitForDocker() error {
115108
provisioner, err := provision.DetectProvisioner(h.Driver)
116109
if err != nil {
117110
return err
118111
}
119112

120-
// TODO: Migrate away from using hardcoded daemon port.
121-
if err := provision.WaitForDocker(provisioner, engine.DefaultPort); err != nil {
113+
return provision.WaitForDocker(provisioner, engine.DefaultPort)
114+
}
115+
116+
func (h *Host) Start() error {
117+
log.Infof("Starting %q...", h.Name)
118+
if err := h.runActionForState(h.Driver.Start, state.Running); err != nil {
122119
return err
123120
}
124121

125-
return nil
122+
log.Infof("Machine %q was started.", h.Name)
123+
124+
return h.WaitForDocker()
126125
}
127126

128127
func (h *Host) Stop() error {
@@ -148,17 +147,19 @@ func (h *Host) Kill() error {
148147
func (h *Host) Restart() error {
149148
log.Infof("Restarting %q...", h.Name)
150149
if drivers.MachineInState(h.Driver, state.Stopped)() {
151-
return h.Start()
152-
}
153-
154-
if drivers.MachineInState(h.Driver, state.Running)() {
150+
if err := h.Start(); err != nil {
151+
return err
152+
}
153+
} else if drivers.MachineInState(h.Driver, state.Running)() {
155154
if err := h.Driver.Restart(); err != nil {
156155
return err
157156
}
158-
return mcnutils.WaitFor(drivers.MachineInState(h.Driver, state.Running))
157+
if err := mcnutils.WaitFor(drivers.MachineInState(h.Driver, state.Running)); err != nil {
158+
return err
159+
}
159160
}
160161

161-
return nil
162+
return h.WaitForDocker()
162163
}
163164

164165
func (h *Host) Upgrade() error {

0 commit comments

Comments
 (0)
X Tutup