Skip to content

Commit 0dee697

Browse files
committed
Honor context cancellation when pruning
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
1 parent 5a9f2a3 commit 0dee697

File tree

13 files changed

+115
-52
lines changed

13 files changed

+115
-52
lines changed

api/server/router/container/backend.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ type attachBackend interface {
6565

6666
// systemBackend includes functions to implement to provide system wide containers functionality
6767
type systemBackend interface {
68-
ContainersPrune(pruneFilters filters.Args) (*types.ContainersPruneReport, error)
68+
ContainersPrune(ctx context.Context, pruneFilters filters.Args) (*types.ContainersPruneReport, error)
6969
}
7070

7171
// Backend is all the methods that need to be implemented to provide container specific functionality.

api/server/router/container/container.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func (r *containerRouter) initRoutes() {
6868
router.NewPostRoute("/exec/{name:.*}/resize", r.postContainerExecResize),
6969
router.NewPostRoute("/containers/{name:.*}/rename", r.postContainerRename),
7070
router.NewPostRoute("/containers/{name:.*}/update", r.postContainerUpdate),
71-
router.NewPostRoute("/containers/prune", r.postContainersPrune),
71+
router.NewPostRoute("/containers/prune", r.postContainersPrune, router.WithCancel),
7272
// PUT
7373
router.NewPutRoute("/containers/{name:.*}/archive", r.putContainersArchive),
7474
// DELETE

api/server/router/container/container_routes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ func (s *containerRouter) postContainersPrune(ctx context.Context, w http.Respon
565565
return err
566566
}
567567

568-
pruneReport, err := s.backend.ContainersPrune(pruneFilters)
568+
pruneReport, err := s.backend.ContainersPrune(ctx, pruneFilters)
569569
if err != nil {
570570
return err
571571
}

api/server/router/image/backend.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ type imageBackend interface {
3030
Images(imageFilters filters.Args, all bool, withExtraAttrs bool) ([]*types.ImageSummary, error)
3131
LookupImage(name string) (*types.ImageInspect, error)
3232
TagImage(imageName, repository, tag string) error
33-
ImagesPrune(pruneFilters filters.Args) (*types.ImagesPruneReport, error)
33+
ImagesPrune(ctx context.Context, pruneFilters filters.Args) (*types.ImagesPruneReport, error)
3434
}
3535

3636
type importExportBackend interface {

api/server/router/image/image.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func (r *imageRouter) initRoutes() {
4343
router.NewPostRoute("/images/create", r.postImagesCreate, router.WithCancel),
4444
router.NewPostRoute("/images/{name:.*}/push", r.postImagesPush, router.WithCancel),
4545
router.NewPostRoute("/images/{name:.*}/tag", r.postImagesTag),
46-
router.NewPostRoute("/images/prune", r.postImagesPrune),
46+
router.NewPostRoute("/images/prune", r.postImagesPrune, router.WithCancel),
4747
// DELETE
4848
router.NewDeleteRoute("/images/{name:.*}", r.deleteImages),
4949
}

api/server/router/image/image_routes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ func (s *imageRouter) postImagesPrune(ctx context.Context, w http.ResponseWriter
336336
return err
337337
}
338338

339-
pruneReport, err := s.backend.ImagesPrune(pruneFilters)
339+
pruneReport, err := s.backend.ImagesPrune(ctx, pruneFilters)
340340
if err != nil {
341341
return err
342342
}

api/server/router/network/backend.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package network
22

33
import (
4+
"golang.org/x/net/context"
5+
46
"github.com/docker/docker/api/types"
57
"github.com/docker/docker/api/types/filters"
68
"github.com/docker/docker/api/types/network"
@@ -16,5 +18,5 @@ type Backend interface {
1618
ConnectContainerToNetwork(containerName, networkName string, endpointConfig *network.EndpointSettings) error
1719
DisconnectContainerFromNetwork(containerName string, networkName string, force bool) error
1820
DeleteNetwork(name string) error
19-
NetworksPrune(pruneFilters filters.Args) (*types.NetworksPruneReport, error)
21+
NetworksPrune(ctx context.Context, pruneFilters filters.Args) (*types.NetworksPruneReport, error)
2022
}

api/server/router/network/network.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func (r *networkRouter) initRoutes() {
3737
router.NewPostRoute("/networks/create", r.postNetworkCreate),
3838
router.NewPostRoute("/networks/{id:.*}/connect", r.postNetworkConnect),
3939
router.NewPostRoute("/networks/{id:.*}/disconnect", r.postNetworkDisconnect),
40-
router.NewPostRoute("/networks/prune", r.postNetworksPrune),
40+
router.NewPostRoute("/networks/prune", r.postNetworksPrune, router.WithCancel),
4141
// DELETE
4242
router.NewDeleteRoute("/networks/{id:.*}", r.deleteNetwork),
4343
}

api/server/router/network/network_routes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ func (n *networkRouter) postNetworksPrune(ctx context.Context, w http.ResponseWr
455455
return err
456456
}
457457

458-
pruneReport, err := n.backend.NetworksPrune(pruneFilters)
458+
pruneReport, err := n.backend.NetworksPrune(ctx, pruneFilters)
459459
if err != nil {
460460
return err
461461
}

api/server/router/volume/backend.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package volume
22

33
import (
4+
"golang.org/x/net/context"
5+
46
// TODO return types need to be refactored into pkg
57
"github.com/docker/docker/api/types"
68
"github.com/docker/docker/api/types/filters"
@@ -13,5 +15,5 @@ type Backend interface {
1315
VolumeInspect(name string) (*types.Volume, error)
1416
VolumeCreate(name, driverName string, opts, labels map[string]string) (*types.Volume, error)
1517
VolumeRm(name string, force bool) error
16-
VolumesPrune(pruneFilters filters.Args) (*types.VolumesPruneReport, error)
18+
VolumesPrune(ctx context.Context, pruneFilters filters.Args) (*types.VolumesPruneReport, error)
1719
}

0 commit comments

Comments
 (0)