@@ -18,9 +18,6 @@ func main() {
1818 updateWMSV3Layers (crdDir )
1919}
2020
21- // TODO fix linting (funlen)
22- //
23- //nolint:funlen
2421func updateWMSV3Layers (crdDir string ) {
2522 path := filepath .Join (crdDir , "pdok.nl_wms.yaml" )
2623
@@ -38,44 +35,7 @@ func updateWMSV3Layers(crdDir string) {
3835 versions := make ([]v1.CustomResourceDefinitionVersion , 0 )
3936 for _ , version := range crd .Spec .Versions {
4037 if version .Name == "v3" {
41- schema := version .Schema .OpenAPIV3Schema
42- spec := schema .Properties ["spec" ]
43- service := spec .Properties ["service" ]
44- layer := service .Properties ["layer" ]
45-
46- // Level 3
47- layerSpecLevel3 := layer .DeepCopy ()
48- layerSpecLevel3 .Required = append (layerSpecLevel3 .Required , "name" )
49- delete (layerSpecLevel3 .Properties , "layers" )
50- xvals := v1.ValidationRules {}
51- for _ , xval := range layerSpecLevel3 .XValidations {
52- if ! strings .Contains (xval .Rule , "self.layers" ) {
53- xvals = append (xvals , xval )
54- }
55- }
56- layerSpecLevel3 .XValidations = xvals
57-
58- // Level 2
59- layerSpecLevel2 := layer .DeepCopy ()
60- layerSpecLevel2 .Required = append (layerSpecLevel2 .Required , "name" )
61- layerSpecLevel2 .Properties ["layers" ] = v1.JSONSchemaProps {
62- Type : "array" ,
63- Description : "[OpenAPI spec injected by mapserver-operator/cmd/update_openapi.go]" ,
64- Items : & v1.JSONSchemaPropsOrArray {Schema : layerSpecLevel3 },
65- }
66-
67- layer .Properties ["layers" ] = v1.JSONSchemaProps {
68- Type : "array" ,
69- Description : "[OpenAPI spec injected by mapserver-operator/cmd/update_openapi.go]" ,
70- Items : & v1.JSONSchemaPropsOrArray {Schema : layerSpecLevel2 },
71- }
72-
73- service .Properties ["layer" ] = layer
74- spec .Properties ["service" ] = service
75- schema .Properties ["spec" ] = spec
76- version .Schema = & v1.CustomResourceValidation {
77- OpenAPIV3Schema : schema ,
78- }
38+ updateLayersV3 (& version )
7939
8040 versions = append (versions , version )
8141 } else {
@@ -100,3 +60,44 @@ func updateWMSV3Layers(crdDir string) {
10060 enc .SetIndent (2 )
10161 _ = enc .Encode (rawData )
10262}
63+
64+ func updateLayersV3 (version * v1.CustomResourceDefinitionVersion ) {
65+ schema := version .Schema .OpenAPIV3Schema
66+ spec := schema .Properties ["spec" ]
67+ service := spec .Properties ["service" ]
68+ layer := service .Properties ["layer" ]
69+
70+ // Level 3
71+ layerSpecLevel3 := layer .DeepCopy ()
72+ layerSpecLevel3 .Required = append (layerSpecLevel3 .Required , "name" )
73+ delete (layerSpecLevel3 .Properties , "layers" )
74+ xvals := v1.ValidationRules {}
75+ for _ , xval := range layerSpecLevel3 .XValidations {
76+ if ! strings .Contains (xval .Rule , "self.layers" ) {
77+ xvals = append (xvals , xval )
78+ }
79+ }
80+ layerSpecLevel3 .XValidations = xvals
81+
82+ // Level 2
83+ layerSpecLevel2 := layer .DeepCopy ()
84+ layerSpecLevel2 .Required = append (layerSpecLevel2 .Required , "name" )
85+ layerSpecLevel2 .Properties ["layers" ] = v1.JSONSchemaProps {
86+ Type : "array" ,
87+ Description : "[OpenAPI spec injected by mapserver-operator/cmd/update_openapi.go]" ,
88+ Items : & v1.JSONSchemaPropsOrArray {Schema : layerSpecLevel3 },
89+ }
90+
91+ layer .Properties ["layers" ] = v1.JSONSchemaProps {
92+ Type : "array" ,
93+ Description : "[OpenAPI spec injected by mapserver-operator/cmd/update_openapi.go]" ,
94+ Items : & v1.JSONSchemaPropsOrArray {Schema : layerSpecLevel2 },
95+ }
96+
97+ service .Properties ["layer" ] = layer
98+ spec .Properties ["service" ] = service
99+ schema .Properties ["spec" ] = spec
100+ version .Schema = & v1.CustomResourceValidation {
101+ OpenAPIV3Schema : schema ,
102+ }
103+ }
0 commit comments