github.com/hustcat/docker@v1.3.3-0.20160314103604-901c67a8eeab/api/server/router/container/container.go (about) 1 package container 2 3 import "github.com/docker/docker/api/server/router" 4 5 // containerRouter is a router to talk with the container controller 6 type containerRouter struct { 7 backend Backend 8 routes []router.Route 9 } 10 11 // NewRouter initializes a new container router 12 func NewRouter(b Backend) router.Router { 13 r := &containerRouter{ 14 backend: b, 15 } 16 r.initRoutes() 17 return r 18 } 19 20 // Routes returns the available routes to the container controller 21 func (r *containerRouter) Routes() []router.Route { 22 return r.routes 23 } 24 25 // initRoutes initializes the routes in container router 26 func (r *containerRouter) initRoutes() { 27 r.routes = []router.Route{ 28 // HEAD 29 router.NewHeadRoute("/containers/{name:.*}/archive", r.headContainersArchive), 30 // GET 31 router.NewGetRoute("/containers/json", r.getContainersJSON), 32 router.NewGetRoute("/containers/{name:.*}/export", r.getContainersExport), 33 router.NewGetRoute("/containers/{name:.*}/changes", r.getContainersChanges), 34 router.NewGetRoute("/containers/{name:.*}/json", r.getContainersByName), 35 router.NewGetRoute("/containers/{name:.*}/top", r.getContainersTop), 36 router.NewGetRoute("/containers/{name:.*}/logs", r.getContainersLogs), 37 router.NewGetRoute("/containers/{name:.*}/stats", r.getContainersStats), 38 router.NewGetRoute("/containers/{name:.*}/attach/ws", r.wsContainersAttach), 39 router.NewGetRoute("/exec/{id:.*}/json", r.getExecByID), 40 router.NewGetRoute("/containers/{name:.*}/archive", r.getContainersArchive), 41 // POST 42 router.NewPostRoute("/containers/create", r.postContainersCreate), 43 router.NewPostRoute("/containers/{name:.*}/kill", r.postContainersKill), 44 router.NewPostRoute("/containers/{name:.*}/pause", r.postContainersPause), 45 router.NewPostRoute("/containers/{name:.*}/unpause", r.postContainersUnpause), 46 router.NewPostRoute("/containers/{name:.*}/restart", r.postContainersRestart), 47 router.NewPostRoute("/containers/{name:.*}/start", r.postContainersStart), 48 router.NewPostRoute("/containers/{name:.*}/stop", r.postContainersStop), 49 router.NewPostRoute("/containers/{name:.*}/wait", r.postContainersWait), 50 router.NewPostRoute("/containers/{name:.*}/resize", r.postContainersResize), 51 router.NewPostRoute("/containers/{name:.*}/attach", r.postContainersAttach), 52 router.NewPostRoute("/containers/{name:.*}/copy", r.postContainersCopy), 53 router.NewPostRoute("/containers/{name:.*}/exec", r.postContainerExecCreate), 54 router.NewPostRoute("/exec/{name:.*}/start", r.postContainerExecStart), 55 router.NewPostRoute("/exec/{name:.*}/resize", r.postContainerExecResize), 56 router.NewPostRoute("/containers/{name:.*}/rename", r.postContainerRename), 57 router.NewPostRoute("/containers/{name:.*}/update", r.postContainerUpdate), 58 // PUT 59 router.NewPutRoute("/containers/{name:.*}/archive", r.putContainersArchive), 60 // DELETE 61 router.NewDeleteRoute("/containers/{name:.*}", r.deleteContainers), 62 } 63 }