network.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package network
  2. import (
  3. "github.com/docker/docker/api/server/router"
  4. "github.com/docker/docker/api/server/router/local"
  5. "github.com/docker/docker/daemon"
  6. )
  7. // networkRouter is a router to talk with the network controller
  8. type networkRouter struct {
  9. daemon *daemon.Daemon
  10. routes []router.Route
  11. }
  12. // NewRouter initializes a new network router
  13. func NewRouter(d *daemon.Daemon) router.Router {
  14. r := &networkRouter{
  15. daemon: d,
  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. local.NewGetRoute("/networks", r.getNetworksList),
  28. local.NewGetRoute("/networks/{id:.*}", r.getNetwork),
  29. // POST
  30. local.NewPostRoute("/networks/create", r.postNetworkCreate),
  31. local.NewPostRoute("/networks/{id:.*}/connect", r.postNetworkConnect),
  32. local.NewPostRoute("/networks/{id:.*}/disconnect", r.postNetworkDisconnect),
  33. // DELETE
  34. local.NewDeleteRoute("/networks/{id:.*}", r.deleteNetwork),
  35. }
  36. }