14712: Adds arv-git-httpd to cluster config loading
[arvados.git] / lib / config / deprecated.go
index df872111db2adf8ff1bc504fd0a5b2f31f2b14a6..9eb8c40c18d9455693a9ce18d24d890c528f6d25 100644 (file)
@@ -468,3 +468,44 @@ func (ldr *Loader) loadOldKeepWebConfig(cfg *arvados.Config) error {
        cfg.Clusters[cluster.ClusterID] = *cluster
        return nil
 }
+
+const defaultGitHttpdConfigPath = "/etc/arvados/git-httpd/git-httpd.yml"
+
+type oldGitHttpdConfig struct {
+       Client          *arvados.Client
+       Listen          string
+       GitCommand      string
+       GitoliteHome    string
+       RepoRoot        string
+       ManagementToken string
+}
+
+func (ldr *Loader) loadOldGitHttpdConfig(cfg *arvados.Config) error {
+       if ldr.GitHttpdPath == "" {
+               return nil
+       }
+       var oc oldGitHttpdConfig
+       err := ldr.loadOldConfigHelper("arv-git-httpd", ldr.GitHttpdPath, &oc)
+       if os.IsNotExist(err) && ldr.GitHttpdPath == defaultGitHttpdConfigPath {
+               return nil
+       } else if err != nil {
+               return err
+       }
+
+       cluster, err := cfg.GetCluster("")
+       if err != nil {
+               return err
+       }
+
+       loadOldClientConfig(cluster, oc.Client)
+
+       cluster.Services.GitHTTP.InternalURLs[arvados.URL{Host: oc.Listen}] = arvados.ServiceInstance{}
+       cluster.TLS.Insecure = oc.Client.Insecure
+       cluster.ManagementToken = oc.ManagementToken
+       cluster.Git.GitCommand = oc.GitCommand
+       cluster.Git.GitoliteHome = oc.GitoliteHome
+       cluster.Git.Repositories = oc.RepoRoot
+
+       cfg.Clusters[cluster.ClusterID] = *cluster
+       return nil
+}