changeset 474:11d80120ed3d

Renamed published services to internal services to be more symmetrical to external services.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 23 Aug 2018 13:32:16 +0200
parents b2dea4e56ff1
children 699080c4baa5
files cmd/gemma/geoserver.go pkg/controllers/publish.go pkg/controllers/routes.go pkg/models/intservices.go pkg/models/pubservices.go
diffstat 5 files changed, 119 insertions(+), 119 deletions(-) [+]
line wrap: on
line diff
--- a/cmd/gemma/geoserver.go	Thu Aug 23 13:24:26 2018 +0200
+++ b/cmd/gemma/geoserver.go	Thu Aug 23 13:32:16 2018 +0200
@@ -182,7 +182,7 @@
 		auth     = basicAuth(user, password)
 	)
 
-	tables := models.PublishedServices.Filter(models.PublishedWFS)
+	tables := models.InternalServices.Filter(models.IntWFS)
 	if len(tables) == 0 {
 		log.Println("info: no tables to publish")
 		return nil
--- a/pkg/controllers/publish.go	Thu Aug 23 13:24:26 2018 +0200
+++ b/pkg/controllers/publish.go	Thu Aug 23 13:32:16 2018 +0200
@@ -10,10 +10,10 @@
 func published(_ interface{}, req *http.Request, _ *sql.DB) (jr JSONResult, err error) {
 	jr = JSONResult{
 		Result: struct {
-			Internal []models.PubEntry `json:"internal"`
+			Internal []models.IntEntry `json:"internal"`
 			External []models.ExtEntry `json:"external"`
 		}{
-			Internal: models.PublishedServices.Filter(models.PublishedAll),
+			Internal: models.InternalServices.Filter(models.InternalAll),
 			External: models.ExternalServices.Filter(models.ExternalAll),
 		},
 	}
--- a/pkg/controllers/routes.go	Thu Aug 23 13:24:26 2018 +0200
+++ b/pkg/controllers/routes.go	Thu Aug 23 13:32:16 2018 +0200
@@ -73,7 +73,7 @@
 
 	// Internal proxies.
 	internal := &httputil.ReverseProxy{
-		Director:       proxyDirector(models.PublishedServices.Find),
+		Director:       proxyDirector(models.InternalServices.Find),
 		ModifyResponse: proxyModifyResponse("/api/internal/"),
 	}
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg/models/intservices.go	Thu Aug 23 13:32:16 2018 +0200
@@ -0,0 +1,115 @@
+package models
+
+import (
+	"database/sql"
+	"log"
+	"sync"
+
+	"gemma.intevation.de/gemma/pkg/auth"
+	"gemma.intevation.de/gemma/pkg/config"
+)
+
+type IntEntry struct {
+	Name  string         `json:"name"`
+	Style sql.NullString `json:"-"` // This should be done separately.
+	WMS   bool           `json:"wms"`
+	WFS   bool           `json:"wfs"`
+}
+
+type IntServices struct {
+	entries []IntEntry
+	mu      sync.Mutex
+}
+
+const selectPublishedServices = `SELECT name, style, as_wms, as_wfs
+FROM sys_admin.published_services ORDER by name`
+
+var InternalServices = &IntServices{}
+
+func (ps *IntServices) Find(name string) (string, bool) {
+	ps.mu.Lock()
+	defer ps.mu.Unlock()
+
+	if ps.entries == nil {
+		if err := ps.load(); err != nil {
+			log.Printf("error: %v\n", err)
+			return "", false
+		}
+	}
+
+	if ps.has(name) {
+		return config.GeoServerURL() + "/" + name, true
+	}
+	return "", false
+}
+
+func (ps *IntServices) has(service string) bool {
+	var check func(*IntEntry) bool
+	switch service {
+	case "wms":
+		check = func(e *IntEntry) bool { return e.WMS }
+	case "wfs":
+		check = func(e *IntEntry) bool { return e.WFS }
+	default:
+		return false
+	}
+	for i := range ps.entries {
+		if check(&ps.entries[i]) {
+			return true
+		}
+	}
+	return false
+}
+
+func (ps *IntServices) load() error {
+	// make empty slice to prevent retry if slice is empty.
+	ps.entries = []IntEntry{}
+	return auth.RunAs("sys_admin", func(db *sql.DB) error {
+		rows, err := db.Query(selectPublishedServices)
+		if err != nil {
+			return err
+		}
+		defer rows.Close()
+		for rows.Next() {
+			var entry IntEntry
+			if err := rows.Scan(
+				&entry.Name, &entry.Style,
+				&entry.WFS, &entry.WFS,
+			); err != nil {
+				return err
+			}
+			ps.entries = append(ps.entries, entry)
+		}
+		return rows.Err()
+	})
+	return nil
+}
+
+func (ps *IntServices) Invalidate() {
+	ps.mu.Lock()
+	ps.entries = nil
+	ps.mu.Unlock()
+}
+
+func InternalAll(IntEntry) bool  { return true }
+func IntWMS(entry IntEntry) bool { return entry.WMS }
+func IntWFS(entry IntEntry) bool { return entry.WFS }
+
+func (ps *IntServices) Filter(accept func(IntEntry) bool) []IntEntry {
+	ps.mu.Lock()
+	defer ps.mu.Unlock()
+	if ps.entries == nil {
+		if err := ps.load(); err != nil {
+			log.Printf("error: %v\n", err)
+			return nil
+		}
+	}
+	pe := make([]IntEntry, 0, len(ps.entries))
+	for _, e := range ps.entries {
+		if accept(e) {
+			pe = append(pe, e)
+		}
+	}
+
+	return pe
+}
--- a/pkg/models/pubservices.go	Thu Aug 23 13:24:26 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-package models
-
-import (
-	"database/sql"
-	"log"
-	"sync"
-
-	"gemma.intevation.de/gemma/pkg/auth"
-	"gemma.intevation.de/gemma/pkg/config"
-)
-
-type PubEntry struct {
-	Name  string         `json:"name"`
-	Style sql.NullString `json:"-"` // This should be done separately.
-	WMS   bool           `json:"wms"`
-	WFS   bool           `json:"wfs"`
-}
-
-type PubServices struct {
-	entries []PubEntry
-	mu      sync.Mutex
-}
-
-const selectPublishedServices = `SELECT name, style, as_wms, as_wfs
-FROM sys_admin.published_services ORDER by name`
-
-var PublishedServices = &PubServices{}
-
-func (ps *PubServices) Find(name string) (string, bool) {
-	ps.mu.Lock()
-	defer ps.mu.Unlock()
-
-	if ps.entries == nil {
-		if err := ps.load(); err != nil {
-			log.Printf("error: %v\n", err)
-			return "", false
-		}
-	}
-
-	if ps.has(name) {
-		return config.GeoServerURL() + "/" + name, true
-	}
-	return "", false
-}
-
-func (ps *PubServices) has(service string) bool {
-	var check func(*PubEntry) bool
-	switch service {
-	case "wms":
-		check = func(e *PubEntry) bool { return e.WMS }
-	case "wfs":
-		check = func(e *PubEntry) bool { return e.WFS }
-	default:
-		return false
-	}
-	for i := range ps.entries {
-		if check(&ps.entries[i]) {
-			return true
-		}
-	}
-	return false
-}
-
-func (ps *PubServices) load() error {
-	// make empty slice to prevent retry if slice is empty.
-	ps.entries = []PubEntry{}
-	return auth.RunAs("sys_admin", func(db *sql.DB) error {
-		rows, err := db.Query(selectPublishedServices)
-		if err != nil {
-			return err
-		}
-		defer rows.Close()
-		for rows.Next() {
-			var entry PubEntry
-			if err := rows.Scan(
-				&entry.Name, &entry.Style,
-				&entry.WFS, &entry.WFS,
-			); err != nil {
-				return err
-			}
-			ps.entries = append(ps.entries, entry)
-		}
-		return rows.Err()
-	})
-	return nil
-}
-
-func (ps *PubServices) Invalidate() {
-	ps.mu.Lock()
-	ps.entries = nil
-	ps.mu.Unlock()
-}
-
-func PublishedAll(PubEntry) bool       { return true }
-func PublishedWMS(entry PubEntry) bool { return entry.WMS }
-func PublishedWFS(entry PubEntry) bool { return entry.WFS }
-
-func (ps *PubServices) Filter(accept func(PubEntry) bool) []PubEntry {
-	ps.mu.Lock()
-	defer ps.mu.Unlock()
-	if ps.entries == nil {
-		if err := ps.load(); err != nil {
-			log.Printf("error: %v\n", err)
-			return nil
-		}
-	}
-	pe := make([]PubEntry, 0, len(ps.entries))
-	for _, e := range ps.entries {
-		if accept(e) {
-			pe = append(pe, e)
-		}
-	}
-
-	return pe
-}