volume.go 836 B

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