Resolve weave IP every time we need it, in case it changed
This commit is contained in:
1 parent
a6f07fbaac
commit
ecd93bbfe4
3 files changed
+26
-51
No files matched your search
+3
-16
@@ -22,7 +22,9 @@ type Watcher interface {
|
||||
}
|
||||
|
||||
func NewWatcher(client *docker.Client, driver *driver) (Watcher, error) {
|
||||
w := &watcher{client: client, driver: driver}
|
||||
resolver := func() (string, error) { return client.GetContainerIP(WeaveContainer) }
|
||||
w := &watcher{client: client, driver: driver,
|
||||
weave: weaveapi.NewClientWithResolver(resolver)}
|
||||
err := client.AddObserver(w)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -31,18 +33,6 @@ func NewWatcher(client *docker.Client, driver *driver) (Watcher, error) {
|
||||
return w, nil
|
||||
}
|
||||
|
||||
func (w *watcher) haveWeaveClient() bool {
|
||||
if w.weave == nil {
|
||||
dnsip, err := w.client.GetContainerIP(WeaveContainer)
|
||||
if err != nil {
|
||||
Log.Warningf("nameserver not available: %s", err)
|
||||
return false
|
||||
}
|
||||
w.weave = weaveapi.NewClient(dnsip)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func (w *watcher) ContainerStarted(id string) {
|
||||
Log.Debugf("Container started %s", id)
|
||||
info, err := w.client.InspectContainer(id)
|
||||
@@ -50,9 +40,6 @@ func (w *watcher) ContainerStarted(id string) {
|
||||
Log.Warningf("error inspecting container: %s", err)
|
||||
return
|
||||
}
|
||||
if !w.haveWeaveClient() {
|
||||
return
|
||||
}
|
||||
// check that it's on our network, via the endpointID
|
||||
for _, net := range info.NetworkSettings.Networks {
|
||||
if w.driver.HasEndpoint(net.EndpointID) {
|
||||
|
||||
Reference in new issue
Block a user