@@ -39,82 +39,7 @@ func (src *WFS) ConvertTo(dstRaw conversion.Hub) error {
3939 dst := dstRaw .(* pdoknlv3.WFS )
4040 log .Printf ("ConvertTo: Converting WFS from Spoke version v2beta1 to Hub version v3;" +
4141 "source: %s/%s, target: %s/%s" , src .Namespace , src .Name , dst .Namespace , dst .Name )
42-
43- dst .ObjectMeta = src .ObjectMeta
44-
45- // Set LifeCycle if defined
46- if src .Spec .Kubernetes .Lifecycle != nil && src .Spec .Kubernetes .Lifecycle .TTLInDays != nil {
47- dst .Spec .Lifecycle = & sharedModel.Lifecycle {
48- TTLInDays : Pointer (int32 (* src .Spec .Kubernetes .Lifecycle .TTLInDays )),
49- }
50- }
51-
52- if src .Spec .Kubernetes .Autoscaling != nil {
53- dst .Spec .HorizontalPodAutoscalerPatch = ConvertAutoscaling (* src .Spec .Kubernetes .Autoscaling )
54- }
55-
56- // TODO converse src.Spec.Kubernetes.HealthCheck when we know what the implementation in v3 will be
57- if src .Spec .Kubernetes .Resources != nil {
58- dst .Spec .PodSpecPatch = ConvertResources (* src .Spec .Kubernetes .Resources )
59- }
60-
61- dst .Spec .Options = * ConvertOptionsV2ToV3 (src .Spec .Options )
62-
63- service := pdoknlv3.WFSService {
64- // TODO what is prefix, Geonovum subdomain?
65- Prefix : "prefix" ,
66- URL : CreateBaseURL ("https://service.pdok.nl" , "wfs" , src .Spec .General ),
67- OwnerInfoRef : "pdok" ,
68- Title : src .Spec .Service .Title ,
69- Abstract : src .Spec .Service .Abstract ,
70- Keywords : src .Spec .Service .Keywords ,
71- Fees : nil ,
72- AccessConstraints : src .Spec .Service .AccessConstraints ,
73- DefaultCrs : src .Spec .Service .DataEPSG ,
74- OtherCrs : []string {},
75- CountDefault : src .Spec .Service .Maxfeatures ,
76- FeatureTypes : make ([]pdoknlv3.FeatureType , 0 ),
77- }
78-
79- if src .Spec .Service .Mapfile != nil {
80- service .Mapfile = & pdoknlv3.Mapfile {
81- ConfigMapKeyRef : src .Spec .Service .Mapfile .ConfigMapKeyRef ,
82- }
83- }
84-
85- if src .Spec .Service .Extent != nil && * src .Spec .Service .Extent != "" {
86- service .Bbox = & pdoknlv3.Bbox {
87- DefaultCRS : sharedModel .ExtentToBBox (* src .Spec .Service .Extent ),
88- }
89- } else {
90- service .Bbox = & pdoknlv3.Bbox {
91- DefaultCRS : sharedModel.BBox {
92- MinX : "-25000" ,
93- MaxX : "280000" ,
94- MinY : "250000" ,
95- MaxY : "860000" ,
96- },
97- }
98- }
99-
100- // TODO - where to place the MetadataIdentifier and FeatureTypes[0].SourceMetadataIdentifier if the service is not inspire?
101- if src .Spec .Service .Inspire {
102- service .Inspire = & pdoknlv3.Inspire {
103- ServiceMetadataURL : pdoknlv3.MetadataURL {
104- CSW : & pdoknlv3.Metadata {
105- MetadataIdentifier : src .Spec .Service .MetadataIdentifier ,
106- },
107- },
108- SpatialDatasetIdentifier : src .Spec .Service .FeatureTypes [0 ].SourceMetadataIdentifier ,
109- Language : "dut" ,
110- }
111- }
112-
113- for _ , featureType := range src .Spec .Service .FeatureTypes {
114- service .FeatureTypes = append (service .FeatureTypes , convertV2FeatureTypeToV3 (featureType ))
115- }
116-
117- dst .Spec .Service = service
42+ V3WFSHubFromV2 (src , dst )
11843
11944 return nil
12045}
@@ -219,3 +144,81 @@ func (dst *WFS) ConvertFrom(srcRaw conversion.Hub) error {
219144
220145 return nil
221146}
147+
148+ func V3WFSHubFromV2 (src * WFS , target * pdoknlv3.WFS ) {
149+ target .ObjectMeta = src .ObjectMeta
150+
151+ // Set LifeCycle if defined
152+ if src .Spec .Kubernetes .Lifecycle != nil && src .Spec .Kubernetes .Lifecycle .TTLInDays != nil {
153+ target .Spec .Lifecycle = & sharedModel.Lifecycle {
154+ TTLInDays : Pointer (int32 (* src .Spec .Kubernetes .Lifecycle .TTLInDays )),
155+ }
156+ }
157+
158+ if src .Spec .Kubernetes .Autoscaling != nil {
159+ target .Spec .HorizontalPodAutoscalerPatch = ConvertAutoscaling (* src .Spec .Kubernetes .Autoscaling )
160+ }
161+
162+ // TODO converse src.Spec.Kubernetes.HealthCheck when we know what the implementation in v3 will be
163+ if src .Spec .Kubernetes .Resources != nil {
164+ target .Spec .PodSpecPatch = ConvertResources (* src .Spec .Kubernetes .Resources )
165+ }
166+
167+ target .Spec .Options = * ConvertOptionsV2ToV3 (src .Spec .Options )
168+
169+ service := pdoknlv3.WFSService {
170+ // TODO what is prefix, Geonovum subdomain?
171+ Prefix : "prefix" ,
172+ URL : CreateBaseURL ("https://service.pdok.nl" , "wfs" , src .Spec .General ),
173+ OwnerInfoRef : "pdok" ,
174+ Title : src .Spec .Service .Title ,
175+ Abstract : src .Spec .Service .Abstract ,
176+ Keywords : src .Spec .Service .Keywords ,
177+ Fees : nil ,
178+ AccessConstraints : src .Spec .Service .AccessConstraints ,
179+ DefaultCrs : src .Spec .Service .DataEPSG ,
180+ OtherCrs : []string {},
181+ CountDefault : src .Spec .Service .Maxfeatures ,
182+ FeatureTypes : make ([]pdoknlv3.FeatureType , 0 ),
183+ }
184+
185+ if src .Spec .Service .Mapfile != nil {
186+ service .Mapfile = & pdoknlv3.Mapfile {
187+ ConfigMapKeyRef : src .Spec .Service .Mapfile .ConfigMapKeyRef ,
188+ }
189+ }
190+
191+ if src .Spec .Service .Extent != nil && * src .Spec .Service .Extent != "" {
192+ service .Bbox = & pdoknlv3.Bbox {
193+ DefaultCRS : sharedModel .ExtentToBBox (* src .Spec .Service .Extent ),
194+ }
195+ } else {
196+ service .Bbox = & pdoknlv3.Bbox {
197+ DefaultCRS : sharedModel.BBox {
198+ MinX : "-25000" ,
199+ MaxX : "280000" ,
200+ MinY : "250000" ,
201+ MaxY : "860000" ,
202+ },
203+ }
204+ }
205+
206+ // TODO - where to place the MetadataIdentifier and FeatureTypes[0].SourceMetadataIdentifier if the service is not inspire?
207+ if src .Spec .Service .Inspire {
208+ service .Inspire = & pdoknlv3.Inspire {
209+ ServiceMetadataURL : pdoknlv3.MetadataURL {
210+ CSW : & pdoknlv3.Metadata {
211+ MetadataIdentifier : src .Spec .Service .MetadataIdentifier ,
212+ },
213+ },
214+ SpatialDatasetIdentifier : src .Spec .Service .FeatureTypes [0 ].SourceMetadataIdentifier ,
215+ Language : "dut" ,
216+ }
217+ }
218+
219+ for _ , featureType := range src .Spec .Service .FeatureTypes {
220+ service .FeatureTypes = append (service .FeatureTypes , convertV2FeatureTypeToV3 (featureType ))
221+ }
222+
223+ target .Spec .Service = service
224+ }
0 commit comments