Adds POST /api/v1/admin/ips/scan (plus an optional periodic ticker) to
discover free Floating IPs in the OpenStack project and feed them straight
into the check queue. More importantly, decouples check/event history from
ip_queue's lifecycle: a new ip_registry table (migration 0007) gives every
address ever submitted a durable identity, so deleting it from the queue no
longer destroys its history — it's still reachable via the new
GET /api/v1/admin/registry[/{ip}] endpoints and the dashboard's /registry
pages, with retention depth configurable in check cycles per address
(history_retention_cycles, 0 = unlimited).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
58 lines
3.3 KiB
Go
58 lines
3.3 KiB
Go
package httpapi
|
|
|
|
import "net/http"
|
|
|
|
func (s *Server) routes(mux *http.ServeMux) {
|
|
mux.HandleFunc("GET /healthz", s.handleHealthz)
|
|
|
|
mux.HandleFunc("POST /api/v1/agents/register", s.handleAgentRegister)
|
|
mux.HandleFunc("POST /api/v1/agents/{id}/heartbeat", s.handleAgentHeartbeat)
|
|
mux.HandleFunc("GET /api/v1/agents/{id}/assignment", s.handleAgentAssignment)
|
|
mux.HandleFunc("POST /api/v1/agents/{id}/self-check", s.handleAgentSelfCheck)
|
|
mux.HandleFunc("POST /api/v1/agents/{id}/events", s.handleAgentEvent)
|
|
mux.HandleFunc("POST /api/v1/agents/{id}/results", s.handleAgentResults)
|
|
mux.HandleFunc("POST /api/v1/agents/{id}/complete", s.handleAgentComplete)
|
|
|
|
mux.HandleFunc("POST /api/v1/probers/register", s.handleProberRegister)
|
|
mux.HandleFunc("POST /api/v1/probers/{site_id}/heartbeat", s.handleProberHeartbeat)
|
|
mux.HandleFunc("GET /api/v1/probers/{site_id}/assignments", s.handleProberAssignments)
|
|
mux.HandleFunc("POST /api/v1/probers/{site_id}/results", s.handleProberResults)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/status", s.handleAdminStatus)
|
|
mux.HandleFunc("GET /api/v1/admin/ips", s.handleAdminIPs)
|
|
mux.HandleFunc("POST /api/v1/admin/ips", s.handleAdminSubmitIPs)
|
|
mux.HandleFunc("POST /api/v1/admin/ips/scan", s.handleAdminScanFloatingIPs)
|
|
mux.HandleFunc("GET /api/v1/admin/ips/{ip}", s.handleAdminIPDetail)
|
|
mux.HandleFunc("POST /api/v1/admin/ips/{ip}/cancel", s.handleAdminCancelIP)
|
|
mux.HandleFunc("DELETE /api/v1/admin/ips/{ip}", s.handleAdminDeleteIP)
|
|
mux.HandleFunc("POST /api/v1/admin/ips/delete", s.handleAdminDeleteIPs)
|
|
mux.HandleFunc("POST /api/v1/admin/ips/clear", s.handleAdminClearQueue)
|
|
mux.HandleFunc("GET /api/v1/admin/validators", s.handleAdminValidators)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/registry", s.handleAdminRegistry)
|
|
mux.HandleFunc("GET /api/v1/admin/registry/{ip}", s.handleAdminRegistryHistory)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/config/validators", s.handleConfigListValidators)
|
|
mux.HandleFunc("POST /api/v1/admin/config/validators", s.handleConfigCreateValidator)
|
|
mux.HandleFunc("PUT /api/v1/admin/config/validators/{id}", s.handleConfigUpdateValidator)
|
|
mux.HandleFunc("DELETE /api/v1/admin/config/validators/{id}", s.handleConfigDeleteValidator)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/config/sites", s.handleConfigListSites)
|
|
mux.HandleFunc("PUT /api/v1/admin/config/sites/{index}", s.handleConfigPutSite)
|
|
mux.HandleFunc("DELETE /api/v1/admin/config/sites/{index}", s.handleConfigDeleteSite)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/config/targets", s.handleConfigListTargets)
|
|
mux.HandleFunc("PUT /api/v1/admin/config/targets/{group}", s.handleConfigPutTargetGroup)
|
|
mux.HandleFunc("DELETE /api/v1/admin/config/targets/{group}", s.handleConfigDeleteTargetGroup)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/config/check-types", s.handleConfigListCheckTypes)
|
|
mux.HandleFunc("PUT /api/v1/admin/config/check-types/{name}", s.handleConfigPutCheckType)
|
|
mux.HandleFunc("DELETE /api/v1/admin/config/check-types/{name}", s.handleConfigDeleteCheckType)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/config/orchestrator", s.handleConfigGetOrchestratorSettings)
|
|
mux.HandleFunc("PUT /api/v1/admin/config/orchestrator", s.handleConfigPutOrchestratorSettings)
|
|
|
|
mux.HandleFunc("GET /api/v1/admin/config/inbound-checks", s.handleConfigGetInboundChecks)
|
|
mux.HandleFunc("PUT /api/v1/admin/config/inbound-checks", s.handleConfigPutInboundChecks)
|
|
}
|