checkpoint.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package checkpoint // import "github.com/docker/docker/api/server/router/checkpoint"
  2. import (
  3. "github.com/docker/docker/api/server/httputils"
  4. "github.com/docker/docker/api/server/router"
  5. )
  6. // checkpointRouter is a router to talk with the checkpoint controller
  7. type checkpointRouter struct {
  8. backend Backend
  9. decoder httputils.ContainerDecoder
  10. routes []router.Route
  11. }
  12. // NewRouter initializes a new checkpoint router
  13. func NewRouter(b Backend, decoder httputils.ContainerDecoder) router.Router {
  14. r := &checkpointRouter{
  15. backend: b,
  16. decoder: decoder,
  17. }
  18. r.initRoutes()
  19. return r
  20. }
  21. // Routes returns the available routers to the checkpoint controller
  22. func (r *checkpointRouter) Routes() []router.Route {
  23. return r.routes
  24. }
  25. func (r *checkpointRouter) initRoutes() {
  26. r.routes = []router.Route{
  27. router.NewGetRoute("/containers/{name:.*}/checkpoints", r.getContainerCheckpoints, router.Experimental),
  28. router.NewPostRoute("/containers/{name:.*}/checkpoints", r.postContainerCheckpoint, router.Experimental),
  29. router.NewDeleteRoute("/containers/{name}/checkpoints/{checkpoint}", r.deleteContainerCheckpoint, router.Experimental),
  30. }
  31. }