image.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package image
  2. import (
  3. "github.com/docker/docker/api/server/httputils"
  4. "github.com/docker/docker/api/server/router"
  5. )
  6. // imageRouter is a router to talk with the image controller
  7. type imageRouter struct {
  8. backend Backend
  9. decoder httputils.ContainerDecoder
  10. routes []router.Route
  11. }
  12. // NewRouter initializes a new image router
  13. func NewRouter(backend Backend, decoder httputils.ContainerDecoder) router.Router {
  14. r := &imageRouter{
  15. backend: backend,
  16. decoder: decoder,
  17. }
  18. r.initRoutes()
  19. return r
  20. }
  21. // Routes returns the available routes to the image controller
  22. func (r *imageRouter) Routes() []router.Route {
  23. return r.routes
  24. }
  25. // initRoutes initializes the routes in the image router
  26. func (r *imageRouter) initRoutes() {
  27. r.routes = []router.Route{
  28. // GET
  29. router.NewGetRoute("/images/json", r.getImagesJSON),
  30. router.NewGetRoute("/images/search", r.getImagesSearch),
  31. router.NewGetRoute("/images/get", r.getImagesGet),
  32. router.NewGetRoute("/images/{name:.*}/get", r.getImagesGet),
  33. router.NewGetRoute("/images/{name:.*}/history", r.getImagesHistory),
  34. router.NewGetRoute("/images/{name:.*}/json", r.getImagesByName),
  35. // POST
  36. router.NewPostRoute("/commit", r.postCommit),
  37. router.NewPostRoute("/images/load", r.postImagesLoad),
  38. router.NewPostRoute("/images/create", r.postImagesCreate, router.WithCancel),
  39. router.NewPostRoute("/images/{name:.*}/push", r.postImagesPush, router.WithCancel),
  40. router.NewPostRoute("/images/{name:.*}/tag", r.postImagesTag),
  41. router.NewPostRoute("/images/prune", r.postImagesPrune, router.WithCancel),
  42. // DELETE
  43. router.NewDeleteRoute("/images/{name:.*}", r.deleteImages),
  44. }
  45. }