Skip to content

Commit 1eca090

Browse files
committed
Split v1alpha6&v1alpha7 conversion into multiple files
This is 100% code motion with no code changes whatsoever. conversion.go has become unwieldy, making changes to it harder to understand. This simply splits it into several files based on the corresponding _types.go. We don't touch v1alpha5 as it's about to be deleted. It can stay a mess.
1 parent e6bb34f commit 1eca090

12 files changed

+2507
-2238
lines changed

api/v1alpha6/conversion.go

Lines changed: 0 additions & 1236 deletions
This file was deleted.

api/v1alpha6/openstackcluster_conversion.go

Lines changed: 400 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
/*
2+
Copyright 2023 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package v1alpha6
18+
19+
import (
20+
ctrlconversion "sigs.k8s.io/controller-runtime/pkg/conversion"
21+
22+
infrav1 "sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1"
23+
"sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/conversion"
24+
)
25+
26+
var _ ctrlconversion.Convertible = &OpenStackClusterTemplate{}
27+
28+
func (r *OpenStackClusterTemplate) ConvertTo(dstRaw ctrlconversion.Hub) error {
29+
dst := dstRaw.(*infrav1.OpenStackClusterTemplate)
30+
31+
return conversion.ConvertAndRestore(
32+
r, dst,
33+
Convert_v1alpha6_OpenStackClusterTemplate_To_v1beta1_OpenStackClusterTemplate, Convert_v1beta1_OpenStackClusterTemplate_To_v1alpha6_OpenStackClusterTemplate,
34+
v1alpha6OpenStackClusterTemplateRestorer, v1beta1OpenStackClusterTemplateRestorer,
35+
)
36+
}
37+
38+
func (r *OpenStackClusterTemplate) ConvertFrom(srcRaw ctrlconversion.Hub) error {
39+
src := srcRaw.(*infrav1.OpenStackClusterTemplate)
40+
41+
return conversion.ConvertAndRestore(
42+
src, r,
43+
Convert_v1beta1_OpenStackClusterTemplate_To_v1alpha6_OpenStackClusterTemplate, Convert_v1alpha6_OpenStackClusterTemplate_To_v1beta1_OpenStackClusterTemplate,
44+
v1beta1OpenStackClusterTemplateRestorer, v1alpha6OpenStackClusterTemplateRestorer,
45+
)
46+
}
47+
48+
var _ ctrlconversion.Convertible = &OpenStackClusterTemplateList{}
49+
50+
func (r *OpenStackClusterTemplateList) ConvertTo(dstRaw ctrlconversion.Hub) error {
51+
dst := dstRaw.(*infrav1.OpenStackClusterTemplateList)
52+
return Convert_v1alpha6_OpenStackClusterTemplateList_To_v1beta1_OpenStackClusterTemplateList(r, dst, nil)
53+
}
54+
55+
func (r *OpenStackClusterTemplateList) ConvertFrom(srcRaw ctrlconversion.Hub) error {
56+
src := srcRaw.(*infrav1.OpenStackClusterTemplateList)
57+
return Convert_v1beta1_OpenStackClusterTemplateList_To_v1alpha6_OpenStackClusterTemplateList(src, r, nil)
58+
}
59+
60+
/* Restorers */
61+
62+
var v1alpha6OpenStackClusterTemplateRestorer = conversion.RestorerFor[*OpenStackClusterTemplate]{
63+
"spec": conversion.HashedFieldRestorer(
64+
func(c *OpenStackClusterTemplate) *OpenStackClusterSpec {
65+
return &c.Spec.Template.Spec
66+
},
67+
restorev1alpha6ClusterSpec,
68+
),
69+
}
70+
71+
var v1beta1OpenStackClusterTemplateRestorer = conversion.RestorerFor[*infrav1.OpenStackClusterTemplate]{
72+
"externalNetwork": conversion.UnconditionalFieldRestorer(
73+
func(c *infrav1.OpenStackClusterTemplate) *infrav1.NetworkFilter {
74+
return &c.Spec.Template.Spec.ExternalNetwork
75+
},
76+
),
77+
"disableExternalNetwork": conversion.UnconditionalFieldRestorer(
78+
func(c *infrav1.OpenStackClusterTemplate) *bool {
79+
return &c.Spec.Template.Spec.DisableExternalNetwork
80+
},
81+
),
82+
"router": conversion.UnconditionalFieldRestorer(
83+
func(c *infrav1.OpenStackClusterTemplate) **infrav1.RouterFilter {
84+
return &c.Spec.Template.Spec.Router
85+
},
86+
),
87+
"networkMtu": conversion.UnconditionalFieldRestorer(
88+
func(c *infrav1.OpenStackClusterTemplate) *int {
89+
return &c.Spec.Template.Spec.NetworkMTU
90+
},
91+
),
92+
"bastion": conversion.HashedFieldRestorer(
93+
func(c *infrav1.OpenStackClusterTemplate) **infrav1.Bastion {
94+
return &c.Spec.Template.Spec.Bastion
95+
},
96+
restorev1beta1Bastion,
97+
),
98+
"subnets": conversion.HashedFieldRestorer(
99+
func(c *infrav1.OpenStackClusterTemplate) *[]infrav1.SubnetFilter {
100+
return &c.Spec.Template.Spec.Subnets
101+
},
102+
restorev1beta1Subnets,
103+
),
104+
"allNodesSecurityGroupRules": conversion.HashedFieldRestorer(
105+
func(c *infrav1.OpenStackClusterTemplate) *infrav1.ManagedSecurityGroups {
106+
return c.Spec.Template.Spec.ManagedSecurityGroups
107+
},
108+
restorev1beta1ManagedSecurityGroups,
109+
),
110+
"managedSubnets": conversion.UnconditionalFieldRestorer(
111+
func(c *infrav1.OpenStackClusterTemplate) *[]infrav1.SubnetSpec {
112+
return &c.Spec.Template.Spec.ManagedSubnets
113+
},
114+
),
115+
}

0 commit comments

Comments
 (0)