ソースを参照

On agent init, re-join on existing cluster networks

Signed-off-by: Alessandro Boch <aboch@docker.com>
Alessandro Boch 9 年 前
コミット
d0192db0cd
2 ファイル変更12 行追加5 行削除
  1. 2 0
      libnetwork/agent.go
  2. 10 5
      libnetwork/controller.go

+ 2 - 0
libnetwork/agent.go

@@ -358,6 +358,8 @@ func (c *controller) agentInit(bindAddrOrInterface string) error {
 		return false
 	})
 
+	c.WalkNetworks(joinCluster)
+
 	return nil
 }
 

+ 10 - 5
libnetwork/controller.go

@@ -639,15 +639,20 @@ func (c *controller) NewNetwork(networkType, name string, id string, options ...
 		return nil, err
 	}
 
-	if err = network.joinCluster(); err != nil {
-		log.Errorf("Failed to join network %s into agent cluster: %v", name, err)
-	}
-
-	network.addDriverWatches()
+	joinCluster(network)
 
 	return network, nil
 }
 
+var joinCluster NetworkWalker = func(nw Network) bool {
+	n := nw.(*network)
+	if err := n.joinCluster(); err != nil {
+		log.Errorf("Failed to join network %s (%s) into agent cluster: %v", n.Name(), n.ID(), err)
+	}
+	n.addDriverWatches()
+	return false
+}
+
 func (c *controller) reservePools() {
 	networks, err := c.getNetworksForScope(datastore.LocalScope)
 	if err != nil {