Skip to content

Commit 86a5c2b

Browse files
author
Jelle Dijkstra
committed
Small fixes
1 parent 62a5c20 commit 86a5c2b

28 files changed

+206
-107
lines changed

internal/controller/capabilitiesgenerator/mapper.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,9 @@ func MapWMSToCapabilitiesGeneratorInput(wms *pdoknlv3.WMS, ownerInfo *smoothoper
229229

230230
config := capabilitiesgenerator.Config{
231231
Global: capabilitiesgenerator.Global{
232-
// Prefix is unused for the WMS
233-
Namespace: mapperutils.GetNamespaceURI("", ownerInfo),
234-
Prefix: "",
232+
// Prefix is unused for the WMS, but doesn't hurt to pass it
233+
Namespace: mapperutils.GetNamespaceURI(wms.Spec.Service.Prefix, ownerInfo),
234+
Prefix: wms.Spec.Service.Prefix,
235235
Onlineresourceurl: pdoknlv3.GetHost(true),
236236
Path: "/" + pdoknlv3.GetBaseURLPath(wms),
237237
Version: *serviceVersion,

internal/controller/capabilitiesgenerator/test_data/wms_input.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
global:
2-
prefix: ""
3-
namespace: http://.geonovum.nl
2+
prefix: nwbwegen
3+
namespace: http://nwbwegen.geonovum.nl
44
onlineResourceUrl: http://localhost
55
path: /rws/nwbwegen/wms/v1_0
66
version: v1_0

internal/controller/featureinfogenerator/mapper.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func MapWMSToFeatureinfoGeneratorInput(wms *pdoknlv3.WMS) (*featureinfo.Scheme,
2828
}
2929

3030
parentLayer := wms.Spec.Service.GetParentLayer(layer)
31-
if parentLayer != nil && parentLayer.IsGroupLayer() {
31+
if parentLayer != nil && parentLayer.IsGroupLayer() && parentLayer.Name != wms.Spec.Service.Layer.Name {
3232
l.GroupName = smoothoperatorutils.PointerVal(parentLayer.Name, "")
3333
}
3434

internal/controller/mapfilegenerator/mapfile_generator.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@ func GetMapfileGeneratorInitContainer[O pdoknlv3.WMSWFS](obj O, images types.Ima
4040
// Additional mapfile-generator configuration
4141
if obj.HasPostgisData() {
4242
initContainer.EnvFrom = []corev1.EnvFromSource{
43-
// Todo add this ConfigMap
4443
utils.NewEnvFromSource(utils.EnvFromSourceTypeConfigMap, postgisConfigName),
45-
// Todo add this Secret
4644
utils.NewEnvFromSource(utils.EnvFromSourceTypeSecret, postgisSecretName),
4745
}
4846
}

internal/controller/mapfilegenerator/mapfile_generator_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func testWMS(t *testing.T, filenameWithoutExt string) {
8181
assert.NoError(t, err)
8282

8383
diff := cmp.Diff(expected, inputStruct)
84-
assert.Equal(t, diff, "", "%s", diff)
84+
assert.Equal(t, diff == "", true, "%s", diff)
8585
}
8686

8787
func readExpectedWMS(filename string) (WMSInput, error) {

internal/controller/mapfilegenerator/mapper.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,17 @@ func MapWMSToMapfileGeneratorInput(wms *pdoknlv3.WMS, ownerInfo *smoothoperatorv
212212
MaxSize: maxSize,
213213
}
214214

215+
if wms.Spec.Service.Layer.IsTopLayer() && wms.Spec.Service.Layer.Name != nil {
216+
result.TopLevelName = *wms.Spec.Service.Layer.Name
217+
}
218+
219+
if wms.Spec.Service.Resolution != nil {
220+
result.Resolution = strconv.Itoa(int(*wms.Spec.Service.Resolution))
221+
}
222+
if wms.Spec.Service.DefResolution != nil {
223+
result.DefResolution = strconv.Itoa(int(*wms.Spec.Service.DefResolution))
224+
}
225+
215226
annotatedLayers := wms.Spec.Service.GetAnnotatedLayers()
216227
for _, annotatedLayer := range annotatedLayers {
217228
if annotatedLayer.IsDataLayer {
@@ -225,6 +236,10 @@ func MapWMSToMapfileGeneratorInput(wms *pdoknlv3.WMS, ownerInfo *smoothoperatorv
225236
StyleName: "",
226237
StyleTitle: "",
227238
}
239+
if len(annotatedLayer.Layer.Styles) > 0 {
240+
groupLayer.StyleName = annotatedLayer.Layer.Styles[0].Name
241+
groupLayer.StyleTitle = smoothoperatorutils.PointerVal(annotatedLayer.Layer.Styles[0].Title, "")
242+
}
228243
result.GroupLayers = append(result.GroupLayers, groupLayer)
229244
}
230245
}

internal/controller/mapfilegenerator/types.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ type WMSInput struct {
4646
OutputFormatJpg string `json:"outputformat_jpg"`
4747
OutputFormatPng string `json:"outputformat_png8"`
4848
MaxSize string `json:"maxSize"`
49+
TopLevelName string `json:"top_level_name,omitempty"`
50+
Resolution string `json:"resolution,omitempty"`
51+
DefResolution string `json:"defresolution,omitempty"`
4952
}
5053

5154
//nolint:tagliatelle
@@ -72,12 +75,13 @@ type WFSLayer struct {
7275
BaseLayer
7376
}
7477

78+
//nolint:tagliatelle
7579
type GroupLayer struct {
7680
Name string `json:"name"`
7781
Title string `json:"title"`
7882
Abstract string `json:"abstract"`
79-
StyleName string `json:"styleName"`
80-
StyleTitle string `json:"styleTitle"`
83+
StyleName string `json:"style_name"`
84+
StyleTitle string `json:"style_title"`
8185
}
8286

8387
//nolint:tagliatelle
@@ -86,7 +90,7 @@ type WMSLayer struct {
8690
GroupName string `json:"group_name,omitempty"`
8791
Styles []Style `json:"styles"`
8892
Offsite string `json:"offsite,omitempty"`
89-
GetFeatureInfoIncludesClass bool `json:"get_feature_info_includes_class"`
93+
GetFeatureInfoIncludesClass bool `json:"get_feature_info_includes_class,omitempty"`
9094
}
9195

9296
type Column struct {

internal/controller/ogcwebserviceproxy/ogc_webservice_proxy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func GetConfig(wms *pdoknlv3.WMS) (config string, err error) {
6969
func MapWMSToOgcWebserviceProxyConfig(wms *pdoknlv3.WMS) (config Config, err error) {
7070
dataLayersForGroupLayer := func(l pdoknlv3.Layer) []string {
7171
var dataLayers []string
72-
for _, childLayer := range l.Layers {
72+
for _, childLayer := range l.GetAllSublayers() {
7373
if childLayer.IsDataLayer() {
7474
dataLayers = append(dataLayers, *childLayer.Name)
7575
}
Lines changed: 34 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,46 @@
11
package ogcwebserviceproxy
22

33
import (
4+
"os"
45
"testing"
56

7+
"github.com/google/go-cmp/cmp"
8+
"sigs.k8s.io/yaml"
9+
610
pdoknlv3 "github.com/pdok/mapserver-operator/api/v3"
7-
smoothoperatorutils "github.com/pdok/smooth-operator/pkg/util"
811
)
912

10-
const expectedConfig = `grouplayers:
11-
grouplayer-1:
12-
- datalayer-1
13-
- datalayer-2
14-
grouplayer-2:
15-
- datalayer-3
16-
- datalayer-4
17-
`
18-
1913
func TestGetConfig(t *testing.T) {
20-
type args struct {
21-
wms *pdoknlv3.WMS
22-
}
23-
tests := []struct {
24-
name string
25-
args args
26-
wantConfig string
27-
wantErr bool
28-
}{
29-
{
30-
name: "GetConfig for OGC Webservice proxy",
31-
args: args{
32-
wms: &pdoknlv3.WMS{
33-
Spec: pdoknlv3.WMSSpec{
34-
Service: pdoknlv3.WMSService{
35-
Layer: pdoknlv3.Layer{
36-
Name: smoothoperatorutils.Pointer("toplayer"),
37-
Layers: []pdoknlv3.Layer{
38-
{
39-
Name: smoothoperatorutils.Pointer("grouplayer-1"),
40-
Layers: []pdoknlv3.Layer{
41-
{
42-
Name: smoothoperatorutils.Pointer("datalayer-1"),
43-
Data: &pdoknlv3.Data{Gpkg: &pdoknlv3.Gpkg{BlobKey: "blob-1"}},
44-
},
45-
{
46-
Name: smoothoperatorutils.Pointer("datalayer-2"),
47-
Data: &pdoknlv3.Data{Gpkg: &pdoknlv3.Gpkg{BlobKey: "blob-2"}},
48-
},
49-
},
50-
},
51-
{
52-
Name: smoothoperatorutils.Pointer("grouplayer-2"),
53-
Layers: []pdoknlv3.Layer{
54-
{
55-
Name: smoothoperatorutils.Pointer("datalayer-3"),
56-
Data: &pdoknlv3.Data{Gpkg: &pdoknlv3.Gpkg{BlobKey: "blob-3"}},
57-
},
58-
{
59-
Name: smoothoperatorutils.Pointer("datalayer-4"),
60-
Data: &pdoknlv3.Data{Gpkg: &pdoknlv3.Gpkg{BlobKey: "blob-4"}},
61-
},
62-
},
63-
},
64-
},
65-
},
66-
},
67-
},
68-
},
69-
},
70-
wantConfig: expectedConfig,
71-
wantErr: false,
72-
},
73-
}
14+
tests := []string{"named-toplayer", "unnamed-toplayer"}
15+
7416
for _, tt := range tests {
75-
t.Run(tt.name, func(t *testing.T) {
76-
gotConfig, err := GetConfig(tt.args.wms)
77-
if (err != nil) != tt.wantErr {
78-
t.Errorf("GetConfig() error = %v, wantErr %v", err, tt.wantErr)
79-
return
80-
}
81-
if gotConfig != tt.wantConfig {
82-
t.Errorf("GetConfig() gotConfig = %v, want %v", gotConfig, tt.wantConfig)
83-
}
84-
})
17+
input, err := os.ReadFile("test_data/input/" + tt + ".yaml")
18+
if err != nil {
19+
t.Errorf("os.ReadFile() error = %v", err)
20+
}
21+
wms := &pdoknlv3.WMS{}
22+
if err := yaml.Unmarshal(input, wms); err != nil {
23+
t.Errorf("yaml.Unmarshal() error = %v", err)
24+
}
25+
26+
generated, err := MapWMSToOgcWebserviceProxyConfig(wms)
27+
if err != nil {
28+
t.Errorf("MapWMSToOgcWebserviceProxyConfig() error = %v", err)
29+
}
30+
31+
expectedBytes, err := os.ReadFile("test_data/expected/" + tt + ".yaml")
32+
if err != nil {
33+
t.Errorf("os.ReadFile() error = %v", err)
34+
}
35+
36+
var expected Config
37+
if err := yaml.Unmarshal(expectedBytes, &expected); err != nil {
38+
t.Errorf("yaml.Unmarshal() error = %v", err)
39+
}
40+
41+
diff := cmp.Diff(expected, generated)
42+
if diff != "" {
43+
t.Errorf("GetConfig() mismatch (-want +got):\n%s", diff)
44+
}
8545
}
8646
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
grouplayers:
2+
grouplayer-1:
3+
- datalayer-1
4+
- datalayer-2
5+
grouplayer-2:
6+
- datalayer-3
7+
- datalayer-4
8+
toplayer:
9+
- datalayer-1
10+
- datalayer-2
11+
- datalayer-3
12+
- datalayer-4

0 commit comments

Comments
 (0)