@@ -17,8 +17,12 @@ limitations under the License.
17
17
package v1beta1
18
18
19
19
import (
20
+ apiconversion "k8s.io/apimachinery/pkg/conversion"
21
+
20
22
"sigs.k8s.io/controller-runtime/pkg/conversion"
21
23
24
+ utilconversion "sigs.k8s.io/cluster-api/util/conversion"
25
+
22
26
infrav1beta2 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta2"
23
27
)
24
28
@@ -49,13 +53,58 @@ func (dst *IBMVPCClusterList) ConvertFrom(srcRaw conversion.Hub) error {
49
53
func (src * IBMVPCMachine ) ConvertTo (dstRaw conversion.Hub ) error {
50
54
dst := dstRaw .(* infrav1beta2.IBMVPCMachine )
51
55
52
- return Convert_v1beta1_IBMVPCMachine_To_v1beta2_IBMVPCMachine (src , dst , nil )
56
+ if err := Convert_v1beta1_IBMVPCMachine_To_v1beta2_IBMVPCMachine (src , dst , nil ); err != nil {
57
+ return err
58
+ }
59
+
60
+ if src .Spec .Image != "" {
61
+ dst .Spec .Image = & infrav1beta2.IBMVPCResourceReference {
62
+ ID : & src .Spec .Image ,
63
+ }
64
+ }
65
+
66
+ if src .Spec .ImageName != "" {
67
+ dst .Spec .Image = & infrav1beta2.IBMVPCResourceReference {
68
+ Name : & src .Spec .ImageName ,
69
+ }
70
+ }
71
+
72
+ for _ , sshKey := range src .Spec .SSHKeyNames {
73
+ dst .Spec .SSHKeys = append (dst .Spec .SSHKeys , & infrav1beta2.IBMVPCResourceReference {
74
+ Name : sshKey ,
75
+ })
76
+ }
77
+
78
+ return nil
53
79
}
54
80
55
81
func (dst * IBMVPCMachine ) ConvertFrom (srcRaw conversion.Hub ) error {
56
82
src := srcRaw .(* infrav1beta2.IBMVPCMachine )
57
83
58
- return Convert_v1beta2_IBMVPCMachine_To_v1beta1_IBMVPCMachine (src , dst , nil )
84
+ if err := Convert_v1beta2_IBMVPCMachine_To_v1beta1_IBMVPCMachine (src , dst , nil ); err != nil {
85
+ return err
86
+ }
87
+
88
+ // Preserve Hub data on down-conversion except for metadata
89
+ if err := utilconversion .MarshalData (src , dst ); err != nil {
90
+ return err
91
+ }
92
+
93
+ if src .Spec .Image != nil && src .Spec .Image .ID != nil {
94
+ dst .Spec .Image = * src .Spec .Image .ID
95
+ }
96
+
97
+ if src .Spec .Image != nil && src .Spec .Image .Name != nil {
98
+ dst .Spec .ImageName = * src .Spec .Image .Name
99
+ }
100
+
101
+ for _ , sshKey := range src .Spec .SSHKeys {
102
+ if sshKey .Name != nil {
103
+ dst .Spec .SSHKeyNames = append (dst .Spec .SSHKeyNames , sshKey .Name )
104
+ }
105
+ }
106
+
107
+ return nil
59
108
}
60
109
61
110
func (src * IBMVPCMachineList ) ConvertTo (dstRaw conversion.Hub ) error {
@@ -73,13 +122,58 @@ func (dst *IBMVPCMachineList) ConvertFrom(srcRaw conversion.Hub) error {
73
122
func (src * IBMVPCMachineTemplate ) ConvertTo (dstRaw conversion.Hub ) error {
74
123
dst := dstRaw .(* infrav1beta2.IBMVPCMachineTemplate )
75
124
76
- return Convert_v1beta1_IBMVPCMachineTemplate_To_v1beta2_IBMVPCMachineTemplate (src , dst , nil )
125
+ if err := Convert_v1beta1_IBMVPCMachineTemplate_To_v1beta2_IBMVPCMachineTemplate (src , dst , nil ); err != nil {
126
+ return err
127
+ }
128
+
129
+ if src .Spec .Template .Spec .Image != "" {
130
+ dst .Spec .Template .Spec .Image = & infrav1beta2.IBMVPCResourceReference {
131
+ ID : & src .Spec .Template .Spec .Image ,
132
+ }
133
+ }
134
+
135
+ if src .Spec .Template .Spec .ImageName != "" {
136
+ dst .Spec .Template .Spec .Image = & infrav1beta2.IBMVPCResourceReference {
137
+ Name : & src .Spec .Template .Spec .ImageName ,
138
+ }
139
+ }
140
+
141
+ for _ , sshKey := range src .Spec .Template .Spec .SSHKeyNames {
142
+ dst .Spec .Template .Spec .SSHKeys = append (dst .Spec .Template .Spec .SSHKeys , & infrav1beta2.IBMVPCResourceReference {
143
+ Name : sshKey ,
144
+ })
145
+ }
146
+
147
+ return nil
77
148
}
78
149
79
150
func (dst * IBMVPCMachineTemplate ) ConvertFrom (srcRaw conversion.Hub ) error {
80
151
src := srcRaw .(* infrav1beta2.IBMVPCMachineTemplate )
81
152
82
- return Convert_v1beta2_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate (src , dst , nil )
153
+ if err := Convert_v1beta2_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate (src , dst , nil ); err != nil {
154
+ return err
155
+ }
156
+
157
+ // Preserve Hub data on down-conversion except for metadata
158
+ if err := utilconversion .MarshalData (src , dst ); err != nil {
159
+ return err
160
+ }
161
+
162
+ if src .Spec .Template .Spec .Image != nil && src .Spec .Template .Spec .Image .ID != nil {
163
+ dst .Spec .Template .Spec .Image = * src .Spec .Template .Spec .Image .ID
164
+ }
165
+
166
+ if src .Spec .Template .Spec .Image != nil && src .Spec .Template .Spec .Image .Name != nil {
167
+ dst .Spec .Template .Spec .ImageName = * src .Spec .Template .Spec .Image .Name
168
+ }
169
+
170
+ for _ , sshKey := range src .Spec .Template .Spec .SSHKeys {
171
+ if sshKey .Name != nil {
172
+ dst .Spec .Template .Spec .SSHKeyNames = append (dst .Spec .Template .Spec .SSHKeyNames , sshKey .Name )
173
+ }
174
+ }
175
+
176
+ return nil
83
177
}
84
178
85
179
func (src * IBMVPCMachineTemplateList ) ConvertTo (dstRaw conversion.Hub ) error {
@@ -93,3 +187,31 @@ func (dst *IBMVPCMachineTemplateList) ConvertFrom(srcRaw conversion.Hub) error {
93
187
94
188
return Convert_v1beta2_IBMVPCMachineTemplateList_To_v1beta1_IBMVPCMachineTemplateList (src , dst , nil )
95
189
}
190
+
191
+ func Convert_v1beta1_IBMVPCMachineSpec_To_v1beta2_IBMVPCMachineSpec (in * IBMVPCMachineSpec , out * infrav1beta2.IBMVPCMachineSpec , s apiconversion.Scope ) error {
192
+ return autoConvert_v1beta1_IBMVPCMachineSpec_To_v1beta2_IBMVPCMachineSpec (in , out , s )
193
+ }
194
+
195
+ func Convert_v1beta2_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec (in * infrav1beta2.IBMVPCMachineSpec , out * IBMVPCMachineSpec , s apiconversion.Scope ) error {
196
+ return autoConvert_v1beta2_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec (in , out , s )
197
+ }
198
+
199
+ func Convert_Slice_Pointer_string_To_Slice_Pointer_v1beta2_IBMVPCResourceReference (in * []* string , out * []* infrav1beta2.IBMVPCResourceReference , s apiconversion.Scope ) error {
200
+ for _ , sshKey := range * in {
201
+ * out = append (* out , & infrav1beta2.IBMVPCResourceReference {
202
+ ID : sshKey ,
203
+ })
204
+ }
205
+ return nil
206
+ }
207
+
208
+ func Convert_Slice_Pointer_v1beta2_IBMVPCResourceReference_To_Slice_Pointer_string (in * []* infrav1beta2.IBMVPCResourceReference , out * []* string , s apiconversion.Scope ) error {
209
+ if in != nil {
210
+ for _ , sshKey := range * in {
211
+ if sshKey .ID != nil {
212
+ * out = append (* out , sshKey .ID )
213
+ }
214
+ }
215
+ }
216
+ return nil
217
+ }
0 commit comments