From 982e83123eeb363e938662b6963cf0cf33e92847 Mon Sep 17 00:00:00 2001 From: boucher Date: Tue, 30 Aug 2016 10:10:44 -0400 Subject: [PATCH] Fix the clashing route syntax for checkpoint/container delete. Signed-off-by: boucher Upstream-commit: 0dfbf960d72fc3f7deec02cc3f36385361216794 Component: engine --- .../router/checkpoint/checkpoint_experimental.go | 2 +- components/engine/cmd/dockerd/daemon.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/components/engine/api/server/router/checkpoint/checkpoint_experimental.go b/components/engine/api/server/router/checkpoint/checkpoint_experimental.go index 8e495f1ea6..f0ac015ffa 100644 --- a/components/engine/api/server/router/checkpoint/checkpoint_experimental.go +++ b/components/engine/api/server/router/checkpoint/checkpoint_experimental.go @@ -10,6 +10,6 @@ func (r *checkpointRouter) initRoutes() { r.routes = []router.Route{ router.NewGetRoute("/containers/{name:.*}/checkpoints", r.getContainerCheckpoints), router.NewPostRoute("/containers/{name:.*}/checkpoints", r.postContainerCheckpoint), - router.NewDeleteRoute("/containers/{name:.*}/checkpoints/{checkpoint:.*}", r.deleteContainerCheckpoint), + router.NewDeleteRoute("/containers/{name}/checkpoints/{checkpoint}", r.deleteContainerCheckpoint), } } diff --git a/components/engine/cmd/dockerd/daemon.go b/components/engine/cmd/dockerd/daemon.go index 60357332f4..eecbd00480 100644 --- a/components/engine/cmd/dockerd/daemon.go +++ b/components/engine/cmd/dockerd/daemon.go @@ -398,18 +398,23 @@ func loadDaemonCliConfig(opts daemonOptions) (*daemon.Config, error) { func initRouter(s *apiserver.Server, d *daemon.Daemon, c *cluster.Cluster) { decoder := runconfig.ContainerDecoder{} - routers := []router.Router{ + routers := []router.Router{} + + // we need to add the checkpoint router before the container router or the DELETE gets masked + routers = addExperimentalRouters(routers, d, decoder) + + routers = append(routers, []router.Router{ container.NewRouter(d, decoder), image.NewRouter(d, decoder), systemrouter.NewRouter(d, c), volume.NewRouter(d), build.NewRouter(dockerfile.NewBuildManager(d)), swarmrouter.NewRouter(c), - } + }...) + if d.NetworkControllerEnabled() { routers = append(routers, network.NewRouter(d, c)) } - routers = addExperimentalRouters(routers, d, decoder) s.InitRouter(utils.IsDebugEnabled(), routers...) }