Mercurial > gemma
comparison pkg/geoserver/boot.go @ 890:0a563fef64a9 geo-style
Reconfiguring GeoServer is now queued async.
We should not reconfigure the remote until the
initial config is done.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Tue, 02 Oct 2018 12:58:20 +0200 |
parents | 495fc3264265 |
children | 876d1f5433be |
comparison
equal
deleted
inserted
replaced
889:afd83fb3399d | 890:0a563fef64a9 |
---|---|
5 "encoding/json" | 5 "encoding/json" |
6 "encoding/xml" | 6 "encoding/xml" |
7 "fmt" | 7 "fmt" |
8 "io" | 8 "io" |
9 "log" | 9 "log" |
10 "net" | |
11 "net/http" | 10 "net/http" |
12 "net/url" | 11 "net/url" |
13 "strings" | 12 "strings" |
14 "time" | |
15 | 13 |
16 "gemma.intevation.de/gemma/pkg/config" | 14 "gemma.intevation.de/gemma/pkg/config" |
17 "gemma.intevation.de/gemma/pkg/models" | 15 "gemma.intevation.de/gemma/pkg/models" |
18 ) | 16 ) |
19 | 17 |
489 return true | 487 return true |
490 } | 488 } |
491 } | 489 } |
492 } | 490 } |
493 | 491 |
494 func prepareGeoServer() error { | 492 func PrepareGeoServer() error { |
495 | 493 |
496 if config.DBUser() == "" { | 494 if config.DBUser() == "" { |
497 log.Println("info: Need metamorphic db user to configure GeoServer") | 495 log.Println("info: Need metamorphic db user to configure GeoServer") |
498 return nil | 496 return nil |
499 } | 497 } |
515 } | 513 } |
516 } | 514 } |
517 | 515 |
518 return nil | 516 return nil |
519 } | 517 } |
520 | |
521 func ConfigureBoot() { | |
522 log.Println("Configure GeoServer...") | |
523 const maxTries = 10 | |
524 const sleep = time.Second * 5 | |
525 | |
526 for try := 1; try <= maxTries; try++ { | |
527 err := prepareGeoServer() | |
528 if err == nil { | |
529 break | |
530 } | |
531 if try < maxTries { | |
532 if uerr, ok := err.(*url.Error); ok { | |
533 if oerr, ok := uerr.Err.(*net.OpError); ok && oerr.Op == "dial" { | |
534 log.Printf("Failed attempt %d of %d to configure GeoServer. "+ | |
535 "Will try again in %s...\n", try, maxTries, sleep) | |
536 time.Sleep(sleep) | |
537 continue | |
538 } | |
539 } | |
540 } | |
541 log.Printf("warn: configure GeoServer failed: %v\n", err) | |
542 break | |
543 } | |
544 } |