mirror of https://github.com/docker/docs.git
refresh networks on whole cluster after create and rm
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
This commit is contained in:
parent
6ee3420542
commit
e9c486b046
|
|
@ -176,7 +176,9 @@ func (c *Cluster) RemoveContainer(container *cluster.Container, force, volumes b
|
|||
|
||||
// RemoveNetwork removes a network from the cluster
|
||||
func (c *Cluster) RemoveNetwork(network *cluster.Network) error {
|
||||
return network.Engine.RemoveNetwork(network)
|
||||
err := network.Engine.RemoveNetwork(network)
|
||||
c.refreshNetworks()
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *Cluster) getEngineByAddr(addr string) *cluster.Engine {
|
||||
|
|
@ -335,6 +337,18 @@ func (c *Cluster) RemoveImages(name string, force bool) ([]*dockerclient.ImageDe
|
|||
return out, err
|
||||
}
|
||||
|
||||
func (c *Cluster) refreshNetworks() {
|
||||
var wg sync.WaitGroup
|
||||
for _, e := range c.engines {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
e.RefreshNetworks()
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
// CreateNetwork creates a network in the cluster
|
||||
func (c *Cluster) CreateNetwork(request *dockerclient.NetworkCreate) (response *dockerclient.NetworkCreateResponse, err error) {
|
||||
var (
|
||||
|
|
@ -353,7 +367,9 @@ func (c *Cluster) CreateNetwork(request *dockerclient.NetworkCreate) (response *
|
|||
return nil, err
|
||||
}
|
||||
if nodes != nil {
|
||||
return c.engines[nodes[0].ID].CreateNetwork(request)
|
||||
resp, err := c.engines[nodes[0].ID].CreateNetwork(request)
|
||||
c.refreshNetworks()
|
||||
return resp, err
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue