network.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package network // import "github.com/docker/docker/api/server/router/network"
  2. import (
  3. "github.com/docker/docker/api/server/router"
  4. )
  5. // networkRouter is a router to talk with the network controller
  6. type networkRouter struct {
  7. backend Backend
  8. cluster ClusterBackend
  9. routes []router.Route
  10. }
  11. // NewRouter initializes a new network router
  12. func NewRouter(b Backend, c ClusterBackend) router.Router {
  13. r := &networkRouter{
  14. backend: b,
  15. cluster: c,
  16. }
  17. r.initRoutes()
  18. return r
  19. }
  20. // Routes returns the available routes to the network controller
  21. func (r *networkRouter) Routes() []router.Route {
  22. return r.routes
  23. }
  24. func (r *networkRouter) initRoutes() {
  25. r.routes = []router.Route{
  26. // GET
  27. router.NewGetRoute("/networks", r.getNetworksList),
  28. router.NewGetRoute("/networks/", r.getNetworksList),
  29. router.NewGetRoute("/networks/{id:.+}", r.getNetwork),
  30. // POST
  31. router.NewPostRoute("/networks/create", r.postNetworkCreate),
  32. router.NewPostRoute("/networks/{id:.*}/connect", r.postNetworkConnect),
  33. router.NewPostRoute("/networks/{id:.*}/disconnect", r.postNetworkDisconnect),
  34. router.NewPostRoute("/networks/prune", r.postNetworksPrune),
  35. // DELETE
  36. router.NewDeleteRoute("/networks/{id:.*}", r.deleteNetwork),
  37. }
  38. }