image.go 1.4 KB

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