Merge branch '18696-rnaseq-training' refs #18696
[arvados.git] / services / arv-git-httpd / server.go
index e3cd58299bca3be27c59a3df3af607734c0399b9..38a018ab3d5189a9b60a33368b92ae62247112e3 100644 (file)
@@ -1,36 +1,36 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
 package main
 
 import (
        "net/http"
-       "net/http/cgi"
 
-       "git.curoverse.com/arvados.git/sdk/go/httpserver"
+       "git.arvados.org/arvados.git/sdk/go/arvados"
+       "git.arvados.org/arvados.git/sdk/go/health"
+       "git.arvados.org/arvados.git/sdk/go/httpserver"
 )
 
 type server struct {
        httpserver.Server
+       cluster *arvados.Cluster
 }
 
 func (srv *server) Start() error {
-       gitHandler := &cgi.Handler{
-               Path: theConfig.GitCommand,
-               Dir:  theConfig.Root,
-               Env: []string{
-                       "GIT_PROJECT_ROOT=" + theConfig.Root,
-                       "GIT_HTTP_EXPORT_ALL=",
-                       "SERVER_ADDR=" + theConfig.Addr,
-               },
-               InheritEnv: []string{
-                       "PATH",
-                       // Needed if GitCommand is gitolite-shell:
-                       "GITOLITE_HTTP_HOME",
-                       "GL_BYPASS_ACCESS_CHECKS",
-               },
-               Args:       []string{"http-backend"},
-       }
        mux := http.NewServeMux()
-       mux.Handle("/", &authHandler{gitHandler})
+       mux.Handle("/", &authHandler{handler: newGitHandler(srv.cluster), cluster: srv.cluster})
+       mux.Handle("/_health/", &health.Handler{
+               Token:  srv.cluster.ManagementToken,
+               Prefix: "/_health/",
+       })
+
+       var listen arvados.URL
+       for listen = range srv.cluster.Services.GitHTTP.InternalURLs {
+               break
+       }
+
        srv.Handler = mux
-       srv.Addr = theConfig.Addr
+       srv.Addr = listen.Host
        return srv.Server.Start()
 }