| package plugin | |
| import "github.com/moby/moby/v2/daemon/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 (pr *pluginRouter) Routes() []router.Route { | |
| return pr.routes | |
| } | |
| func (pr *pluginRouter) initRoutes() { | |
| pr.routes = []router.Route{ | |
| router.NewGetRoute("/plugins", pr.listPlugins), | |
| router.NewGetRoute("/plugins/{name:.*}/json", pr.inspectPlugin), | |
| router.NewGetRoute("/plugins/privileges", pr.getPrivileges), | |
| router.NewDeleteRoute("/plugins/{name:.*}", pr.removePlugin), | |
| router.NewPostRoute("/plugins/{name:.*}/enable", pr.enablePlugin), | |
| router.NewPostRoute("/plugins/{name:.*}/disable", pr.disablePlugin), | |
| router.NewPostRoute("/plugins/pull", pr.pullPlugin), | |
| router.NewPostRoute("/plugins/{name:.*}/push", pr.pushPlugin), | |
| router.NewPostRoute("/plugins/{name:.*}/upgrade", pr.upgradePlugin, router.WithMinimumAPIVersion("1.26")), | |
| router.NewPostRoute("/plugins/{name:.*}/set", pr.setPlugin), | |
| router.NewPostRoute("/plugins/create", pr.createPlugin), | |
| } | |
| } |