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