cluster.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package swarm
  2. import "github.com/docker/docker/api/server/router"
  3. // swarmRouter is a router to talk with the build controller
  4. type swarmRouter struct {
  5. backend Backend
  6. routes []router.Route
  7. }
  8. // NewRouter initializes a new build router
  9. func NewRouter(b Backend) router.Router {
  10. r := &swarmRouter{
  11. backend: b,
  12. }
  13. r.initRoutes()
  14. return r
  15. }
  16. // Routes returns the available routers to the swarm controller
  17. func (sr *swarmRouter) Routes() []router.Route {
  18. return sr.routes
  19. }
  20. func (sr *swarmRouter) initRoutes() {
  21. sr.routes = []router.Route{
  22. router.NewPostRoute("/swarm/init", sr.initCluster),
  23. router.NewPostRoute("/swarm/join", sr.joinCluster),
  24. router.NewPostRoute("/swarm/leave", sr.leaveCluster),
  25. router.NewGetRoute("/swarm", sr.inspectCluster),
  26. router.NewGetRoute("/swarm/unlockkey", sr.getUnlockKey),
  27. router.NewPostRoute("/swarm/update", sr.updateCluster),
  28. router.NewPostRoute("/swarm/unlock", sr.unlockCluster),
  29. router.NewGetRoute("/services", sr.getServices),
  30. router.NewGetRoute("/services/{id}", sr.getService),
  31. router.NewPostRoute("/services/create", sr.createService),
  32. router.NewPostRoute("/services/{id}/update", sr.updateService),
  33. router.NewDeleteRoute("/services/{id}", sr.removeService),
  34. router.Experimental(router.Cancellable(router.NewGetRoute("/services/{id}/logs", sr.getServiceLogs))),
  35. router.NewGetRoute("/nodes", sr.getNodes),
  36. router.NewGetRoute("/nodes/{id}", sr.getNode),
  37. router.NewDeleteRoute("/nodes/{id}", sr.removeNode),
  38. router.NewPostRoute("/nodes/{id}/update", sr.updateNode),
  39. router.NewGetRoute("/tasks", sr.getTasks),
  40. router.NewGetRoute("/tasks/{id}", sr.getTask),
  41. router.NewGetRoute("/secrets", sr.getSecrets),
  42. router.NewPostRoute("/secrets/create", sr.createSecret),
  43. router.NewDeleteRoute("/secrets/{id}", sr.removeSecret),
  44. router.NewGetRoute("/secrets/{id}", sr.getSecret),
  45. router.NewPostRoute("/secrets/{id}/update", sr.updateSecret),
  46. }
  47. }