diff cmd/gemma/main.go @ 868:aa8f30c1ed27 geo-style

Moved GeoServer configuration to own package.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sat, 29 Sep 2018 22:34:24 +0200
parents 848c44e01060
children 0a563fef64a9
line wrap: on
line diff
--- a/cmd/gemma/main.go	Sat Sep 29 22:24:31 2018 +0200
+++ b/cmd/gemma/main.go	Sat Sep 29 22:34:24 2018 +0200
@@ -4,14 +4,11 @@
 	"context"
 	"fmt"
 	"log"
-	"net"
 	"net/http"
-	"net/url"
 	"os"
 	"os/signal"
 	"path/filepath"
 	"syscall"
-	"time"
 
 	"github.com/gorilla/mux"
 	"github.com/rs/cors"
@@ -20,6 +17,7 @@
 	"gemma.intevation.de/gemma/pkg/auth"
 	"gemma.intevation.de/gemma/pkg/config"
 	"gemma.intevation.de/gemma/pkg/controllers"
+	"gemma.intevation.de/gemma/pkg/geoserver"
 )
 
 func prepareSessionStore() {
@@ -41,30 +39,7 @@
 	prepareSessionStore()
 
 	// Do GeoServer setup in background.
-	go func() {
-		log.Println("Configure GeoServer...")
-		const maxTries = 10
-		const sleep = time.Second * 5
-
-		for try := 1; try <= maxTries; try++ {
-			err := prepareGeoServer()
-			if err == nil {
-				break
-			}
-			if try < maxTries {
-				if uerr, ok := err.(*url.Error); ok {
-					if oerr, ok := uerr.Err.(*net.OpError); ok && oerr.Op == "dial" {
-						log.Printf("Failed attempt %d of %d to configure GeoServer. "+
-							"Will try again in %s...\n", try, maxTries, sleep)
-						time.Sleep(sleep)
-						continue
-					}
-				}
-			}
-			log.Printf("warn: configure GeoServer failed: %v\n", err)
-			break
-		}
-	}()
+	go geoserver.ConfigureBoot()
 
 	m := mux.NewRouter()
 	controllers.BindRoutes(m)