plugin.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package plugin // import "github.com/docker/docker/api/server/router/plugin"
  2. import "github.com/docker/docker/api/server/router"
  3. // pluginRouter is a router to talk with the plugin controller
  4. type pluginRouter struct {
  5. backend Backend
  6. routes []router.Route
  7. }
  8. // NewRouter initializes a new plugin router
  9. func NewRouter(b Backend) router.Router {
  10. r := &pluginRouter{
  11. backend: b,
  12. }
  13. r.initRoutes()
  14. return r
  15. }
  16. // Routes returns the available routers to the plugin controller
  17. func (r *pluginRouter) Routes() []router.Route {
  18. return r.routes
  19. }
  20. func (r *pluginRouter) initRoutes() {
  21. r.routes = []router.Route{
  22. router.NewGetRoute("/plugins", r.listPlugins),
  23. router.NewGetRoute("/plugins/{name:.*}/json", r.inspectPlugin),
  24. router.NewGetRoute("/plugins/privileges", r.getPrivileges),
  25. router.NewDeleteRoute("/plugins/{name:.*}", r.removePlugin),
  26. router.NewPostRoute("/plugins/{name:.*}/enable", r.enablePlugin),
  27. router.NewPostRoute("/plugins/{name:.*}/disable", r.disablePlugin),
  28. router.NewPostRoute("/plugins/pull", r.pullPlugin),
  29. router.NewPostRoute("/plugins/{name:.*}/push", r.pushPlugin),
  30. router.NewPostRoute("/plugins/{name:.*}/upgrade", r.upgradePlugin),
  31. router.NewPostRoute("/plugins/{name:.*}/set", r.setPlugin),
  32. router.NewPostRoute("/plugins/create", r.createPlugin),
  33. }
  34. }