volume.go 888 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package volume
  2. import (
  3. "github.com/docker/docker/api/server/router"
  4. "github.com/docker/docker/api/server/router/local"
  5. )
  6. // volumeRouter is a router to talk with the volumes controller
  7. type volumeRouter struct {
  8. backend Backend
  9. routes []router.Route
  10. }
  11. // NewRouter initializes a new volumeRouter
  12. func NewRouter(b Backend) router.Router {
  13. r := &volumeRouter{
  14. backend: b,
  15. }
  16. r.initRoutes()
  17. return r
  18. }
  19. //Routes returns the available routers to the volumes controller
  20. func (r *volumeRouter) Routes() []router.Route {
  21. return r.routes
  22. }
  23. func (r *volumeRouter) initRoutes() {
  24. r.routes = []router.Route{
  25. // GET
  26. local.NewGetRoute("/volumes", r.getVolumesList),
  27. local.NewGetRoute("/volumes/{name:.*}", r.getVolumeByName),
  28. // POST
  29. local.NewPostRoute("/volumes/create", r.postVolumesCreate),
  30. // DELETE
  31. local.NewDeleteRoute("/volumes/{name:.*}", r.deleteVolumes),
  32. }
  33. }