mirror of https://github.com/docker/docs.git
Ignoring gone Engine removing the network from the rest
Signed-off-by: Doron Podoleanu <doronp@il.ibm.com> Use exported var Signed-off-by: Doron Podoleanu <doronp@il.ibm.com> Verify global scope before iteration on all engines Signed-off-by: Doron Podoleanu <doronp@il.ibm.com>
This commit is contained in:
parent
9d8b938222
commit
bd74d1dc46
|
@ -15,6 +15,7 @@ import (
|
||||||
"github.com/docker/docker/pkg/discovery"
|
"github.com/docker/docker/pkg/discovery"
|
||||||
"github.com/docker/docker/pkg/stringid"
|
"github.com/docker/docker/pkg/stringid"
|
||||||
"github.com/docker/engine-api/client"
|
"github.com/docker/engine-api/client"
|
||||||
|
engineapi "github.com/docker/engine-api/client"
|
||||||
"github.com/docker/engine-api/types"
|
"github.com/docker/engine-api/types"
|
||||||
containertypes "github.com/docker/engine-api/types/container"
|
containertypes "github.com/docker/engine-api/types/container"
|
||||||
networktypes "github.com/docker/engine-api/types/network"
|
networktypes "github.com/docker/engine-api/types/network"
|
||||||
|
@ -238,11 +239,28 @@ func (c *Cluster) RemoveContainer(container *cluster.Container, force, volumes b
|
||||||
// RemoveNetwork removes a network from the cluster
|
// RemoveNetwork removes a network from the cluster
|
||||||
func (c *Cluster) RemoveNetwork(network *cluster.Network) error {
|
func (c *Cluster) RemoveNetwork(network *cluster.Network) error {
|
||||||
err := network.Engine.RemoveNetwork(network)
|
err := network.Engine.RemoveNetwork(network)
|
||||||
if err == nil && network.Scope == "global" {
|
if err == nil {
|
||||||
|
if network.Scope == "global" {
|
||||||
for _, engine := range c.engines {
|
for _, engine := range c.engines {
|
||||||
engine.DeleteNetwork(network)
|
engine.DeleteNetwork(network)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if engineapi.ErrConnectionFailed == err && network.Scope == "global" {
|
||||||
|
log.Debug("The original engine is unreachable - Attempting to remove global network from the reachable engines...")
|
||||||
|
for _, engine := range c.engines {
|
||||||
|
e1 := engine.RemoveNetwork(network)
|
||||||
|
if e1 == nil {
|
||||||
|
for _, engine := range c.engines {
|
||||||
|
engine.DeleteNetwork(network)
|
||||||
|
}
|
||||||
|
err = nil
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err != nil && network.Scope == "global" {
|
||||||
|
log.Debugf("Failed to remove global scope network %s from any engine...", network.ID)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue