Prechádzať zdrojové kódy

Merge pull request #2098 from johnstep/cleanup-hns-endpoints

Delete stale HNS endpoints when creating a network
Flavio Crisciani 7 rokov pred
rodič
commit
aa612217b5
1 zmenil súbory, kde vykonal 16 pridanie a 0 odobranie
  1. 16 0
      libnetwork/drivers/windows/windows.go

+ 16 - 0
libnetwork/drivers/windows/windows.go

@@ -365,6 +365,22 @@ func (d *driver) CreateNetwork(id string, option map[string]interface{}, nInfo d
 
 		config.HnsID = hnsresponse.Id
 		genData[HNSID] = config.HnsID
+
+	} else {
+		// Delete any stale HNS endpoints for this network.
+		if endpoints, err := hcsshim.HNSListEndpointRequest(); err == nil {
+			for _, ep := range endpoints {
+				if ep.VirtualNetwork == config.HnsID {
+					logrus.Infof("Removing stale HNS endpoint %s", ep.Id)
+					_, err = hcsshim.HNSEndpointRequest("DELETE", ep.Id, "")
+					if err != nil {
+						logrus.Warnf("Error removing HNS endpoint %s", ep.Id)
+					}
+				}
+			}
+		} else {
+			logrus.Warnf("Error listing HNS endpoints for network %s", config.HnsID)
+		}
 	}
 
 	n, err := d.getNetwork(id)