|
@@ -1059,13 +1059,6 @@ func (n *network) delete(force bool, rmLBEndpoint bool) error {
|
|
goto removeFromStore
|
|
goto removeFromStore
|
|
}
|
|
}
|
|
|
|
|
|
- if err = n.deleteNetwork(); err != nil {
|
|
|
|
- if !force {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- logrus.Debugf("driver failed to delete stale network %s (%s): %v", n.Name(), n.ID(), err)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
n.ipamRelease()
|
|
n.ipamRelease()
|
|
if err = c.updateToStore(n); err != nil {
|
|
if err = c.updateToStore(n); err != nil {
|
|
logrus.Warnf("Failed to update store after ipam release for network %s (%s): %v", n.Name(), n.ID(), err)
|
|
logrus.Warnf("Failed to update store after ipam release for network %s (%s): %v", n.Name(), n.ID(), err)
|
|
@@ -1086,9 +1079,18 @@ func (n *network) delete(force bool, rmLBEndpoint bool) error {
|
|
c.cleanupServiceDiscovery(n.ID())
|
|
c.cleanupServiceDiscovery(n.ID())
|
|
|
|
|
|
// Cleanup the load balancer. On Windows this call is required
|
|
// Cleanup the load balancer. On Windows this call is required
|
|
- // to remove remote loadbalancers in VFP.
|
|
|
|
|
|
+ // to remove remote loadbalancers in VFP, and must be performed before
|
|
|
|
+ // dataplane network deletion.
|
|
c.cleanupServiceBindings(n.ID())
|
|
c.cleanupServiceBindings(n.ID())
|
|
|
|
|
|
|
|
+ // Delete the network from the dataplane
|
|
|
|
+ if err = n.deleteNetwork(); err != nil {
|
|
|
|
+ if !force {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ logrus.Debugf("driver failed to delete stale network %s (%s): %v", n.Name(), n.ID(), err)
|
|
|
|
+ }
|
|
|
|
+
|
|
removeFromStore:
|
|
removeFromStore:
|
|
// deleteFromStore performs an atomic delete operation and the
|
|
// deleteFromStore performs an atomic delete operation and the
|
|
// network.epCnt will help prevent any possible
|
|
// network.epCnt will help prevent any possible
|