6
"github.com/go-chi/chi"
7
"github.com/go-chi/render"
8
"github.com/pkg/errors"
10
"go.avito.ru/DO/moira"
11
"go.avito.ru/DO/moira/api"
12
"go.avito.ru/DO/moira/api/controller"
15
// maintenance wraps debug methods which expose maintenance values for silent pattern / tag and trigger
16
func maintenance(router chi.Router) {
17
router.Get("/metrics", getMaintenanceMetrics)
18
router.Get("/tags", getMaintenanceTags)
19
router.Route("/trigger/{id}", func(router chi.Router) {
20
router.Get("/", getMaintenanceTrigger)
24
func getMaintenanceMetrics(writer http.ResponseWriter, request *http.Request) {
25
maintenance, err := controller.GetMaintenanceSilent(database, moira.SPTMetric)
27
_ = render.Render(writer, request, err)
31
if err := render.Render(writer, request, maintenance); err != nil {
32
_ = render.Render(writer, request, api.ErrorRender(err))
37
func getMaintenanceTags(writer http.ResponseWriter, request *http.Request) {
38
maintenance, err := controller.GetMaintenanceSilent(database, moira.SPTTag)
40
_ = render.Render(writer, request, err)
44
if err := render.Render(writer, request, maintenance); err != nil {
45
_ = render.Render(writer, request, api.ErrorRender(err))
50
func getMaintenanceTrigger(writer http.ResponseWriter, request *http.Request) {
51
id := chi.URLParam(request, "id")
53
_ = render.Render(writer, request, api.ErrorInvalidRequest(errors.New("'id' param must be set")))
56
maintenance, err := controller.GetMaintenanceTrigger(database, id)
58
_ = render.Render(writer, request, err)
62
if err := render.Render(writer, request, maintenance); err != nil {
63
_ = render.Render(writer, request, api.ErrorRender(err))