dotcloud/docker

View on GitHub
api/server/router/network/network.go

Summary

Maintainability
A
0 mins
Test Coverage
package network // import "github.com/docker/docker/api/server/router/network"

import (
    "github.com/docker/docker/api/server/router"
)

// networkRouter is a router to talk with the network controller
type networkRouter struct {
    backend Backend
    cluster ClusterBackend
    routes  []router.Route
}

// NewRouter initializes a new network router
func NewRouter(b Backend, c ClusterBackend) router.Router {
    r := &networkRouter{
        backend: b,
        cluster: c,
    }
    r.initRoutes()
    return r
}

// Routes returns the available routes to the network controller
func (r *networkRouter) Routes() []router.Route {
    return r.routes
}

func (r *networkRouter) initRoutes() {
    r.routes = []router.Route{
        // GET
        router.NewGetRoute("/networks", r.getNetworksList),
        router.NewGetRoute("/networks/", r.getNetworksList),
        router.NewGetRoute("/networks/{id:.+}", r.getNetwork),
        // POST
        router.NewPostRoute("/networks/create", r.postNetworkCreate),
        router.NewPostRoute("/networks/{id:.*}/connect", r.postNetworkConnect),
        router.NewPostRoute("/networks/{id:.*}/disconnect", r.postNetworkDisconnect),
        router.NewPostRoute("/networks/prune", r.postNetworksPrune),
        // DELETE
        router.NewDeleteRoute("/networks/{id:.*}", r.deleteNetwork),
    }
}