Mercurial > gemma
diff pkg/geoserver/boot.go @ 874:da526b58c9c4 geo-style
Added a flag geoserver-clean to force deletion of the gemma workspace before configuring the GeoServer again.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 30 Sep 2018 15:36:17 +0200 |
parents | aa8f30c1ed27 |
children | 371c756f0370 |
line wrap: on
line diff
--- a/pkg/geoserver/boot.go Sun Sep 30 14:24:37 2018 +0200 +++ b/pkg/geoserver/boot.go Sun Sep 30 15:36:17 2018 +0200 @@ -287,6 +287,27 @@ return nil } +func deleteWorkspace() error { + log.Println("info: delete workspace " + workspaceName) + var ( + url = config.GeoServerURL() + user = config.GeoServerUser() + password = config.GeoServerPassword() + auth = basicAuth(user, password) + ) + + req, err := http.NewRequest( + http.MethodDelete, + url+"/rest/workspaces/"+workspaceName+"?recurse=true", + nil) + if err != nil { + return err + } + auth(req) + _, err = http.DefaultClient.Do(req) + return err +} + func prepareGeoServer() error { if config.DBUser() == "" { @@ -299,6 +320,13 @@ return nil } + // Should we delete our workspace first? + if config.GeoServerClean() { + if err := deleteWorkspace(); err != nil { + return err + } + } + if err := ensureWorkspace(); err != nil { return err }