daemon: remove daemon.discoveryWatcher
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
f28fc8bc8d
commit
9492354782
1 changed files with 0 additions and 38 deletions
|
@ -28,7 +28,6 @@ import (
|
|||
"github.com/docker/docker/builder"
|
||||
"github.com/docker/docker/container"
|
||||
"github.com/docker/docker/daemon/config"
|
||||
"github.com/docker/docker/daemon/discovery"
|
||||
"github.com/docker/docker/daemon/events"
|
||||
"github.com/docker/docker/daemon/exec"
|
||||
_ "github.com/docker/docker/daemon/graphdriver/register" // register graph drivers
|
||||
|
@ -92,7 +91,6 @@ type Daemon struct {
|
|||
EventsService *events.Events
|
||||
netController libnetwork.NetworkController
|
||||
volumes *volumesservice.VolumesService
|
||||
discoveryWatcher discovery.Reloader
|
||||
root string
|
||||
seccompEnabled bool
|
||||
apparmorEnabled bool
|
||||
|
@ -522,8 +520,6 @@ func (daemon *Daemon) restore() error {
|
|||
}
|
||||
}
|
||||
|
||||
// Make sure networks are available before starting
|
||||
daemon.waitForNetworks(c)
|
||||
if err := daemon.containerStart(c, "", "", true); err != nil {
|
||||
log.WithError(err).Error("failed to start container")
|
||||
}
|
||||
|
@ -628,40 +624,6 @@ func (daemon *Daemon) RestartSwarmContainers() {
|
|||
group.Wait()
|
||||
}
|
||||
|
||||
// waitForNetworks is used during daemon initialization when starting up containers
|
||||
// It ensures that all of a container's networks are available before the daemon tries to start the container.
|
||||
// In practice it just makes sure the discovery service is available for containers which use a network that require discovery.
|
||||
func (daemon *Daemon) waitForNetworks(c *container.Container) {
|
||||
if daemon.discoveryWatcher == nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Make sure if the container has a network that requires discovery that the discovery service is available before starting
|
||||
for netName := range c.NetworkSettings.Networks {
|
||||
// If we get `ErrNoSuchNetwork` here, we can assume that it is due to discovery not being ready
|
||||
// Most likely this is because the K/V store used for discovery is in a container and needs to be started
|
||||
if _, err := daemon.netController.NetworkByName(netName); err != nil {
|
||||
if _, ok := err.(libnetwork.ErrNoSuchNetwork); !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
// use a longish timeout here due to some slowdowns in libnetwork if the k/v store is on anything other than --net=host
|
||||
// FIXME: why is this slow???
|
||||
dur := 60 * time.Second
|
||||
timer := time.NewTimer(dur)
|
||||
|
||||
logrus.WithField("container", c.ID).Debugf("Container %s waiting for network to be ready", c.Name)
|
||||
select {
|
||||
case <-daemon.discoveryWatcher.ReadyCh():
|
||||
case <-timer.C:
|
||||
}
|
||||
timer.Stop()
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (daemon *Daemon) children(c *container.Container) map[string]*container.Container {
|
||||
return daemon.linkIndex.children(c)
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue