comparison 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
comparison
equal deleted inserted replaced
873:ad9272460ef3 874:da526b58c9c4
285 } 285 }
286 286
287 return nil 287 return nil
288 } 288 }
289 289
290 func deleteWorkspace() error {
291 log.Println("info: delete workspace " + workspaceName)
292 var (
293 url = config.GeoServerURL()
294 user = config.GeoServerUser()
295 password = config.GeoServerPassword()
296 auth = basicAuth(user, password)
297 )
298
299 req, err := http.NewRequest(
300 http.MethodDelete,
301 url+"/rest/workspaces/"+workspaceName+"?recurse=true",
302 nil)
303 if err != nil {
304 return err
305 }
306 auth(req)
307 _, err = http.DefaultClient.Do(req)
308 return err
309 }
310
290 func prepareGeoServer() error { 311 func prepareGeoServer() error {
291 312
292 if config.DBUser() == "" { 313 if config.DBUser() == "" {
293 log.Println("info: Need metamorphic db user to configure GeoServer") 314 log.Println("info: Need metamorphic db user to configure GeoServer")
294 return nil 315 return nil
295 } 316 }
296 317
297 if config.GeoServerURL() == "" { 318 if config.GeoServerURL() == "" {
298 log.Println("info: No tables to publish on GeoServer") 319 log.Println("info: No tables to publish on GeoServer")
299 return nil 320 return nil
321 }
322
323 // Should we delete our workspace first?
324 if config.GeoServerClean() {
325 if err := deleteWorkspace(); err != nil {
326 return err
327 }
300 } 328 }
301 329
302 if err := ensureWorkspace(); err != nil { 330 if err := ensureWorkspace(); err != nil {
303 return err 331 return err
304 } 332 }