diff options
Diffstat (limited to 'internal/api')
| -rw-r--r-- | internal/api/executions.go | 8 | ||||
| -rw-r--r-- | internal/api/server.go | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/internal/api/executions.go b/internal/api/executions.go index 4d8ba9c..d39de9f 100644 --- a/internal/api/executions.go +++ b/internal/api/executions.go @@ -128,6 +128,14 @@ func (s *Server) handleGetAgentStatus(w http.ResponseWriter, r *http.Request) { }) } +// handleUndrainAgent resets the drain state and failure counter for the given agent type. +// POST /api/pool/agents/{agent}/undrain +func (s *Server) handleUndrainAgent(w http.ResponseWriter, r *http.Request) { + agent := r.PathValue("agent") + s.pool.UndrainingAgent(agent) + w.WriteHeader(http.StatusOK) +} + // tailLogFile reads the last n lines from the file at path. func tailLogFile(path string, n int) (string, error) { data, err := os.ReadFile(path) diff --git a/internal/api/server.go b/internal/api/server.go index 65823b4..ff6fdb6 100644 --- a/internal/api/server.go +++ b/internal/api/server.go @@ -123,6 +123,7 @@ func (s *Server) routes() { s.mux.HandleFunc("GET /api/executions", s.handleListRecentExecutions) s.mux.HandleFunc("GET /api/stats", s.handleGetDashboardStats) s.mux.HandleFunc("GET /api/agents/status", s.handleGetAgentStatus) + s.mux.HandleFunc("POST /api/pool/agents/{agent}/undrain", s.handleUndrainAgent) s.mux.HandleFunc("GET /api/executions/{id}", s.handleGetExecution) s.mux.HandleFunc("GET /api/executions/{id}/log", s.handleGetExecutionLog) s.mux.HandleFunc("GET /api/tasks/{id}/logs/stream", s.handleStreamTaskLogs) |
