MCPcopy Create free account
hub / github.com/cloudbase/garm / EventsHandler

Method EventsHandler

apiserver/controllers/controllers.go:212–247  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

210}
211
212func (a *APIController) EventsHandler(w http.ResponseWriter, r *http.Request) {
213 ctx := r.Context()
214 if !auth.IsAdmin(ctx) {
215 w.WriteHeader(http.StatusForbidden)
216 if _, err := w.Write([]byte("events are available to admin users")); err != nil {
217 slog.With(slog.Any("error", err)).ErrorContext(ctx, "failed to encode response")
218 }
219 return
220 }
221
222 conn, err := a.upgrader.Upgrade(w, r, nil)
223 if err != nil {
224 slog.With(slog.Any("error", err)).ErrorContext(ctx, "error upgrading to websockets")
225 return
226 }
227 defer conn.Close()
228
229 wsClient, err := wsWriter.NewClient(ctx, conn)
230 if err != nil {
231 slog.With(slog.Any("error", err)).ErrorContext(ctx, "failed to create new client")
232 return
233 }
234 defer wsClient.Stop()
235
236 eventHandler, err := events.NewHandler(ctx, wsClient)
237 if err != nil {
238 slog.With(slog.Any("error", err)).ErrorContext(ctx, "failed to create new event handler")
239 return
240 }
241
242 if err := eventHandler.Start(); err != nil {
243 slog.With(slog.Any("error", err)).ErrorContext(ctx, "failed to start event handler")
244 return
245 }
246 <-eventHandler.Done()
247}
248
249func (a *APIController) MetricsHandler(w http.ResponseWriter, r *http.Request) {
250 ctx := r.Context()

Callers

nothing calls this directly

Calls 7

StopMethod · 0.95
IsAdminFunction · 0.92
NewHandlerFunction · 0.92
CloseMethod · 0.65
StartMethod · 0.65
WriteMethod · 0.45
DoneMethod · 0.45

Tested by

no test coverage detected