X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/fb96637bf76fe8779e7a7e58f052b8f55ed76f4f..9a1056497d7b7ad18769336489d3a6822547b65a:/lib/controller/handler.go diff --git a/lib/controller/handler.go b/lib/controller/handler.go index b51d909110..f5840b34ce 100644 --- a/lib/controller/handler.go +++ b/lib/controller/handler.go @@ -32,9 +32,11 @@ import ( ) type Handler struct { - Cluster *arvados.Cluster + Cluster *arvados.Cluster + BackgroundContext context.Context setupOnce sync.Once + federation *federation.Conn handlerStack http.Handler proxy *proxy secureClient *http.Client @@ -103,7 +105,8 @@ func (h *Handler) setup() { healthFuncs := make(map[string]health.Func) oidcAuthorizer := localdb.OIDCAccessTokenAuthorizer(h.Cluster, h.db) - rtr := router.New(federation.New(h.Cluster, &healthFuncs), router.Config{ + h.federation = federation.New(h.Cluster, &healthFuncs) + rtr := router.New(h.federation, router.Config{ MaxRequestSize: h.Cluster.API.MaxRequestSize, WrapCalls: api.ComposeWrappers(ctrlctx.WrapCallsInTransactions(h.db), oidcAuthorizer.WrapCalls), }) @@ -133,6 +136,8 @@ func (h *Handler) setup() { mux.Handle("/arvados/v1/links/", rtr) mux.Handle("/login", rtr) mux.Handle("/logout", rtr) + mux.Handle("/arvados/v1/api_client_authorizations", rtr) + mux.Handle("/arvados/v1/api_client_authorizations/", rtr) hs := http.NotFoundHandler() hs = prepend(hs, h.proxyRailsAPI) @@ -152,6 +157,8 @@ func (h *Handler) setup() { h.proxy = &proxy{ Name: "arvados-controller", } + + go h.trashSweepWorker() } var errDBConnection = errors.New("database connection error")