1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
12 "git.arvados.org/arvados.git/lib/service"
13 "git.arvados.org/arvados.git/sdk/go/arvados"
14 "git.arvados.org/arvados.git/sdk/go/ctxlog"
15 "git.arvados.org/arvados.git/sdk/go/keepclient"
16 "github.com/prometheus/client_golang/prometheus"
23 var Command = service.Command(arvados.ServiceNameKeepweb, newHandlerOrErrorHandler)
25 func newHandlerOrErrorHandler(ctx context.Context, cluster *arvados.Cluster, token string, reg *prometheus.Registry) service.Handler {
26 h, err := newHandler(ctx, cluster, token, reg)
28 return service.ErrorHandler(ctx, cluster, err)
33 func newHandler(ctx context.Context, cluster *arvados.Cluster, token string, reg *prometheus.Registry) (*handler, error) {
34 logger := ctxlog.FromContext(ctx)
35 if ext := ".txt"; mime.TypeByExtension(ext) == "" {
36 logger.Warnf("cannot look up MIME type for %q -- this probably means /etc/mime.types is missing -- clients will see incorrect content types", ext)
39 keepclient.RefreshServiceDiscoveryOnSIGHUP()
40 os.Setenv("ARVADOS_API_HOST", cluster.Services.Controller.ExternalURL.Host)