github.com/docker/docker@v299999999.0.0-20200612211812-aaf470eca7b5+incompatible/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  }