Skip to content

Commit 1666a39

Browse files
committed
Forced endpoint delete
Signed-off-by: Madhu Venugopal <madhu@docker.com>
1 parent c8ec4bd commit 1666a39

File tree

7 files changed

+36
-36
lines changed

7 files changed

+36
-36
lines changed

api/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ func procDeleteEndpoint(c libnetwork.NetworkController, vars map[string]string,
529529
return nil, errRsp
530530
}
531531

532-
err := ep.Delete()
532+
err := ep.Delete(false)
533533
if err != nil {
534534
return nil, convertNetworkError(err)
535535
}

api/api_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -690,15 +690,15 @@ func TestProcGetServices(t *testing.T) {
690690
}
691691

692692
delete(vars, urlEpPID)
693-
err = ep11.Delete()
693+
err = ep11.Delete(false)
694694
if err != nil {
695695
t.Fatal(err)
696696
}
697-
err = ep12.Delete()
697+
err = ep12.Delete(false)
698698
if err != nil {
699699
t.Fatal(err)
700700
}
701-
err = ep21.Delete()
701+
err = ep21.Delete(false)
702702
if err != nil {
703703
t.Fatal(err)
704704
}
@@ -1014,7 +1014,7 @@ func TestAttachDetachBackend(t *testing.T) {
10141014
t.Fatalf("Did not find expected sandbox. Got %v", sb)
10151015
}
10161016

1017-
err = ep1.Delete()
1017+
err = ep1.Delete(false)
10181018
if err != nil {
10191019
t.Fatal(err)
10201020
}
@@ -1495,7 +1495,7 @@ func TestFindEndpointUtil(t *testing.T) {
14951495
t.Fatalf("Diffenrent queries returned different endpoints")
14961496
}
14971497

1498-
ep.Delete()
1498+
ep.Delete(false)
14991499

15001500
_, errRsp = findEndpoint(c, nid, "secondEp", byID, byName)
15011501
if errRsp == &successResponse {

default_gateway.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func (sb *sandbox) clearDefaultGW() error {
8787
if err := ep.sbLeave(sb); err != nil {
8888
return fmt.Errorf("container %s: endpoint leaving GW Network failed: %v", sb.containerID, err)
8989
}
90-
if err := ep.Delete(); err != nil {
90+
if err := ep.Delete(false); err != nil {
9191
return fmt.Errorf("container %s: deleting endpoint on GW Network failed: %v", sb.containerID, err)
9292
}
9393
return nil

endpoint.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ type Endpoint interface {
4141
DriverInfo() (map[string]interface{}, error)
4242

4343
// Delete and detaches this endpoint from the network.
44-
Delete() error
44+
Delete(force bool) error
4545
}
4646

4747
// EndpointOption is a option setter function type used to pass varios options to Network
@@ -600,7 +600,7 @@ func (ep *endpoint) sbLeave(sbox Sandbox, options ...EndpointOption) error {
600600
return sb.clearDefaultGW()
601601
}
602602

603-
func (ep *endpoint) Delete() error {
603+
func (ep *endpoint) Delete(force bool) error {
604604
var err error
605605
n, err := ep.getNetworkFromStore()
606606
if err != nil {
@@ -648,7 +648,7 @@ func (ep *endpoint) Delete() error {
648648
// unwatch for service records
649649
n.getController().unWatchSvcRecord(ep)
650650

651-
if err = ep.deleteEndpoint(); err != nil {
651+
if err = ep.deleteEndpoint(); err != nil && !force {
652652
return err
653653
}
654654

@@ -923,7 +923,7 @@ func (c *controller) cleanupLocalEndpoints() {
923923
}
924924

925925
for _, ep := range epl {
926-
if err := ep.Delete(); err != nil {
926+
if err := ep.Delete(false); err != nil {
927927
log.Warnf("Could not delete local endpoint %s during endpoint cleanup: %v", ep.name, err)
928928
}
929929
}

libnetwork_internal_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ func TestIpamReleaseOnNetDriverFailures(t *testing.T) {
407407
if err != nil {
408408
t.Fatal(err)
409409
}
410-
defer ep.Delete()
410+
defer ep.Delete(false)
411411

412412
expectedIP, _ := types.ParseCIDR("10.34.0.1/16")
413413
if !types.CompareIPNet(ep.Info().Iface().Address(), expectedIP) {

libnetwork_test.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func TestNull(t *testing.T) {
135135
t.Fatal(err)
136136
}
137137

138-
if err := ep.Delete(); err != nil {
138+
if err := ep.Delete(false); err != nil {
139139
t.Fatal(err)
140140
}
141141

@@ -213,11 +213,11 @@ func TestHost(t *testing.T) {
213213
t.Fatal(err)
214214
}
215215

216-
if err := ep1.Delete(); err != nil {
216+
if err := ep1.Delete(false); err != nil {
217217
t.Fatal(err)
218218
}
219219

220-
if err := ep2.Delete(); err != nil {
220+
if err := ep2.Delete(false); err != nil {
221221
t.Fatal(err)
222222
}
223223

@@ -249,7 +249,7 @@ func TestHost(t *testing.T) {
249249
t.Fatal(err)
250250
}
251251

252-
if err := ep3.Delete(); err != nil {
252+
if err := ep3.Delete(false); err != nil {
253253
t.Fatal(err)
254254
}
255255

@@ -305,7 +305,7 @@ func TestBridge(t *testing.T) {
305305
t.Fatalf("Incomplete data for port mapping in endpoint operational data: %d", len(pm))
306306
}
307307

308-
if err := ep.Delete(); err != nil {
308+
if err := ep.Delete(false); err != nil {
309309
t.Fatal(err)
310310
}
311311

@@ -358,7 +358,7 @@ func TestBridgeIpv6FromMac(t *testing.T) {
358358
t.Fatalf("Expected %v. Got: %v", expIP, iface.AddressIPv6())
359359
}
360360

361-
if err := ep.Delete(); err != nil {
361+
if err := ep.Delete(false); err != nil {
362362
t.Fatal(err)
363363
}
364364

@@ -514,7 +514,7 @@ func TestDeleteNetworkWithActiveEndpoints(t *testing.T) {
514514
}
515515

516516
// Done testing. Now cleanup.
517-
if err := ep.Delete(); err != nil {
517+
if err := ep.Delete(false); err != nil {
518518
t.Fatal(err)
519519
}
520520

@@ -586,7 +586,7 @@ func TestUnknownEndpoint(t *testing.T) {
586586
t.Fatal(err)
587587
}
588588

589-
err = ep.Delete()
589+
err = ep.Delete(false)
590590
if err != nil {
591591
t.Fatal(err)
592592
}
@@ -624,7 +624,7 @@ func TestNetworkEndpointsWalkers(t *testing.T) {
624624
t.Fatal(err)
625625
}
626626
defer func() {
627-
if err := ep11.Delete(); err != nil {
627+
if err := ep11.Delete(false); err != nil {
628628
t.Fatal(err)
629629
}
630630
}()
@@ -634,7 +634,7 @@ func TestNetworkEndpointsWalkers(t *testing.T) {
634634
t.Fatal(err)
635635
}
636636
defer func() {
637-
if err := ep12.Delete(); err != nil {
637+
if err := ep12.Delete(false); err != nil {
638638
t.Fatal(err)
639639
}
640640
}()
@@ -752,7 +752,7 @@ func TestDuplicateEndpoint(t *testing.T) {
752752
t.Fatal(err)
753753
}
754754
defer func() {
755-
if err := ep.Delete(); err != nil {
755+
if err := ep.Delete(false); err != nil {
756756
t.Fatal(err)
757757
}
758758
}()
@@ -761,7 +761,7 @@ func TestDuplicateEndpoint(t *testing.T) {
761761
defer func() {
762762
// Cleanup ep2 as well, else network cleanup might fail for failure cases
763763
if ep2 != nil {
764-
if err := ep2.Delete(); err != nil {
764+
if err := ep2.Delete(false); err != nil {
765765
t.Fatal(err)
766766
}
767767
}
@@ -904,7 +904,7 @@ func TestNetworkQuery(t *testing.T) {
904904
t.Fatal(err)
905905
}
906906
defer func() {
907-
if err := ep11.Delete(); err != nil {
907+
if err := ep11.Delete(false); err != nil {
908908
t.Fatal(err)
909909
}
910910
}()
@@ -914,7 +914,7 @@ func TestNetworkQuery(t *testing.T) {
914914
t.Fatal(err)
915915
}
916916
defer func() {
917-
if err := ep12.Delete(); err != nil {
917+
if err := ep12.Delete(false); err != nil {
918918
t.Fatal(err)
919919
}
920920
}()
@@ -1032,7 +1032,7 @@ func TestEndpointJoin(t *testing.T) {
10321032
t.Fatal(err)
10331033
}
10341034
defer func() {
1035-
if err := ep1.Delete(); err != nil {
1035+
if err := ep1.Delete(false); err != nil {
10361036
t.Fatal(err)
10371037
}
10381038
}()
@@ -1150,7 +1150,7 @@ func TestEndpointJoin(t *testing.T) {
11501150
t.Fatal(err)
11511151
}
11521152
defer func() {
1153-
if err := ep2.Delete(); err != nil {
1153+
if err := ep2.Delete(false); err != nil {
11541154
t.Fatal(err)
11551155
}
11561156
}()
@@ -1253,7 +1253,7 @@ func externalKeyTest(t *testing.T, reexec bool) {
12531253
t.Fatal(err)
12541254
}
12551255
defer func() {
1256-
err = ep.Delete()
1256+
err = ep.Delete(false)
12571257
if err != nil {
12581258
t.Fatal(err)
12591259
}
@@ -1264,7 +1264,7 @@ func externalKeyTest(t *testing.T, reexec bool) {
12641264
t.Fatal(err)
12651265
}
12661266
defer func() {
1267-
err = ep2.Delete()
1267+
err = ep2.Delete(false)
12681268
if err != nil {
12691269
t.Fatal(err)
12701270
}
@@ -1402,7 +1402,7 @@ func TestEndpointDeleteWithActiveContainer(t *testing.T) {
14021402
t.Fatal(err)
14031403
}
14041404
defer func() {
1405-
err = ep.Delete()
1405+
err = ep.Delete(false)
14061406
if err != nil {
14071407
t.Fatal(err)
14081408
}
@@ -1431,7 +1431,7 @@ func TestEndpointDeleteWithActiveContainer(t *testing.T) {
14311431
}
14321432
}()
14331433

1434-
err = ep.Delete()
1434+
err = ep.Delete(false)
14351435
if err == nil {
14361436
t.Fatal("Expected to fail. But instead succeeded")
14371437
}
@@ -1465,7 +1465,7 @@ func TestEndpointMultipleJoins(t *testing.T) {
14651465
t.Fatal(err)
14661466
}
14671467
defer func() {
1468-
if err := ep.Delete(); err != nil {
1468+
if err := ep.Delete(false); err != nil {
14691469
t.Fatal(err)
14701470
}
14711471
}()
@@ -1589,7 +1589,7 @@ func TestontainerInvalidLeave(t *testing.T) {
15891589
t.Fatal(err)
15901590
}
15911591
defer func() {
1592-
if err := ep.Delete(); err != nil {
1592+
if err := ep.Delete(false); err != nil {
15931593
t.Fatal(err)
15941594
}
15951595
}()
@@ -2334,7 +2334,7 @@ func runParallelTests(t *testing.T, thrNumber int) {
23342334
t.Fatal(err)
23352335
}
23362336
} else {
2337-
err = ep.Delete()
2337+
err = ep.Delete(false)
23382338
if err != nil {
23392339
t.Fatal(err)
23402340
}

sandbox.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ func (sb *sandbox) Delete() error {
198198
log.Warnf("Failed detaching sandbox %s from endpoint %s: %v\n", sb.ID(), ep.ID(), err)
199199
}
200200

201-
if err := ep.Delete(); err != nil {
201+
if err := ep.Delete(false); err != nil {
202202
log.Warnf("Failed deleting endpoint %s: %v\n", ep.ID(), err)
203203
}
204204
}

0 commit comments

Comments
 (0)