dotcloud/docker

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

Summary

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

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

// pluginRouter is a router to talk with the plugin controller
type pluginRouter struct {
    backend Backend
    routes  []router.Route
}

// NewRouter initializes a new plugin router
func NewRouter(b Backend) router.Router {
    r := &pluginRouter{
        backend: b,
    }
    r.initRoutes()
    return r
}

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

func (r *pluginRouter) initRoutes() {
    r.routes = []router.Route{
        router.NewGetRoute("/plugins", r.listPlugins),
        router.NewGetRoute("/plugins/{name:.*}/json", r.inspectPlugin),
        router.NewGetRoute("/plugins/privileges", r.getPrivileges),
        router.NewDeleteRoute("/plugins/{name:.*}", r.removePlugin),
        router.NewPostRoute("/plugins/{name:.*}/enable", r.enablePlugin),
        router.NewPostRoute("/plugins/{name:.*}/disable", r.disablePlugin),
        router.NewPostRoute("/plugins/pull", r.pullPlugin),
        router.NewPostRoute("/plugins/{name:.*}/push", r.pushPlugin),
        router.NewPostRoute("/plugins/{name:.*}/upgrade", r.upgradePlugin),
        router.NewPostRoute("/plugins/{name:.*}/set", r.setPlugin),
        router.NewPostRoute("/plugins/create", r.createPlugin),
    }
}