Both method are trying to detach the container from a cluster
network. The code is exactly the same, this removes the duplication.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
| ... | ... |
@@ -829,16 +829,24 @@ func (daemon *Daemon) disconnectFromNetwork(container *container.Container, n li |
| 829 | 829 |
|
| 830 | 830 |
delete(container.NetworkSettings.Networks, n.Name()) |
| 831 | 831 |
|
| 832 |
- if daemon.clusterProvider != nil && n.Info().Dynamic() && !container.Managed {
|
|
| 833 |
- if err := daemon.clusterProvider.DetachNetwork(n.Name(), container.ID); err != nil {
|
|
| 834 |
- logrus.Warnf("error detaching from network %s: %v", n.Name(), err)
|
|
| 835 |
- if err := daemon.clusterProvider.DetachNetwork(n.ID(), container.ID); err != nil {
|
|
| 836 |
- logrus.Warnf("error detaching from network %s: %v", n.ID(), err)
|
|
| 832 |
+ daemon.tryDetachContainerFromClusterNetwork(n, container) |
|
| 833 |
+ |
|
| 834 |
+ return nil |
|
| 835 |
+} |
|
| 836 |
+ |
|
| 837 |
+func (daemon *Daemon) tryDetachContainerFromClusterNetwork(network libnetwork.Network, container *container.Container) {
|
|
| 838 |
+ if daemon.clusterProvider != nil && network.Info().Dynamic() && !container.Managed {
|
|
| 839 |
+ if err := daemon.clusterProvider.DetachNetwork(network.Name(), container.ID); err != nil {
|
|
| 840 |
+ logrus.Warnf("error detaching from network %s: %v", network.Name(), err)
|
|
| 841 |
+ if err := daemon.clusterProvider.DetachNetwork(network.ID(), container.ID); err != nil {
|
|
| 842 |
+ logrus.Warnf("error detaching from network %s: %v", network.ID(), err)
|
|
| 837 | 843 |
} |
| 838 | 844 |
} |
| 839 | 845 |
} |
| 840 |
- |
|
| 841 |
- return nil |
|
| 846 |
+ attributes := map[string]string{
|
|
| 847 |
+ "container": container.ID, |
|
| 848 |
+ } |
|
| 849 |
+ daemon.LogNetworkEventWithAttributes(network, "disconnect", attributes) |
|
| 842 | 850 |
} |
| 843 | 851 |
|
| 844 | 852 |
func (daemon *Daemon) initializeNetworking(container *container.Container) error {
|
| ... | ... |
@@ -931,19 +939,7 @@ func (daemon *Daemon) releaseNetwork(container *container.Container) {
|
| 931 | 931 |
} |
| 932 | 932 |
|
| 933 | 933 |
for _, nw := range networks {
|
| 934 |
- if daemon.clusterProvider != nil && nw.Info().Dynamic() && !container.Managed {
|
|
| 935 |
- if err := daemon.clusterProvider.DetachNetwork(nw.Name(), container.ID); err != nil {
|
|
| 936 |
- logrus.Warnf("error detaching from network %s: %v", nw.Name(), err)
|
|
| 937 |
- if err := daemon.clusterProvider.DetachNetwork(nw.ID(), container.ID); err != nil {
|
|
| 938 |
- logrus.Warnf("error detaching from network %s: %v", nw.ID(), err)
|
|
| 939 |
- } |
|
| 940 |
- } |
|
| 941 |
- } |
|
| 942 |
- |
|
| 943 |
- attributes := map[string]string{
|
|
| 944 |
- "container": container.ID, |
|
| 945 |
- } |
|
| 946 |
- daemon.LogNetworkEventWithAttributes(nw, "disconnect", attributes) |
|
| 934 |
+ daemon.tryDetachContainerFromClusterNetwork(nw, container) |
|
| 947 | 935 |
} |
| 948 | 936 |
networkActions.WithValues("release").UpdateSince(start)
|
| 949 | 937 |
} |