@@ -68,6 +68,63 @@ func TestIBMPowerVSCluster_create(t *testing.T) {
68
68
},
69
69
wantErr : true ,
70
70
},
71
+ {
72
+ name : "Should error network regex and dhcp server name is set but does not match dhcp server name" ,
73
+ powervsCluster : & IBMPowerVSCluster {
74
+ Spec : IBMPowerVSClusterSpec {
75
+ ServiceInstanceID : "capi-si-id" ,
76
+ Network : IBMPowerVSResourceReference {
77
+ RegEx : ptr .To ("^capi$" ),
78
+ },
79
+ DHCPServer : & DHCPServer {
80
+ Name : ptr .To ("test" ),
81
+ },
82
+ },
83
+ },
84
+ wantErr : true ,
85
+ },
86
+ {
87
+ name : "Should allow if network regex, dhcp server name is set and matches dhcp server name" ,
88
+ powervsCluster : & IBMPowerVSCluster {
89
+ Spec : IBMPowerVSClusterSpec {
90
+ ServiceInstanceID : "capi-si-id" ,
91
+ Network : IBMPowerVSResourceReference {
92
+ RegEx : ptr .To ("^capi$" ),
93
+ },
94
+ DHCPServer : & DHCPServer {
95
+ Name : ptr .To ("capi" ),
96
+ },
97
+ },
98
+ },
99
+ wantErr : false ,
100
+ },
101
+ {
102
+ name : "Should error if only network regex is set, dhcp server name is not set and does not match cluster name" ,
103
+ powervsCluster : & IBMPowerVSCluster {
104
+ Spec : IBMPowerVSClusterSpec {
105
+ ServiceInstanceID : "capi-si-id" ,
106
+ Network : IBMPowerVSResourceReference {
107
+ RegEx : ptr .To ("^capi$" ),
108
+ },
109
+ },
110
+ ObjectMeta : metav1.ObjectMeta {
111
+ Name : "test" ,
112
+ },
113
+ },
114
+ wantErr : true ,
115
+ },
116
+ {
117
+ name : "Should allow if network regex is set, dhcp server name is not set and matches cluster name" ,
118
+ powervsCluster : & IBMPowerVSCluster {
119
+ Spec : IBMPowerVSClusterSpec {
120
+ ServiceInstanceID : "capi-si-id" ,
121
+ Network : IBMPowerVSResourceReference {
122
+ RegEx : ptr .To ("^capi-cluster-.*" ),
123
+ },
124
+ },
125
+ },
126
+ wantErr : false ,
127
+ },
71
128
}
72
129
73
130
for _ , tc := range tests {
@@ -141,6 +198,9 @@ func TestIBMPowerVSCluster_update(t *testing.T) {
141
198
Network : IBMPowerVSResourceReference {
142
199
RegEx : ptr .To ("^capi-net-id$" ),
143
200
},
201
+ DHCPServer : & DHCPServer {
202
+ Name : ptr .To ("capi-net-id" ),
203
+ },
144
204
},
145
205
},
146
206
newPowervsCluster : & IBMPowerVSCluster {
@@ -149,6 +209,9 @@ func TestIBMPowerVSCluster_update(t *testing.T) {
149
209
Network : IBMPowerVSResourceReference {
150
210
RegEx : ptr .To ("^capi-net-id$" ),
151
211
},
212
+ DHCPServer : & DHCPServer {
213
+ Name : ptr .To ("capi-net-id" ),
214
+ },
152
215
},
153
216
},
154
217
wantErr : false ,
@@ -175,6 +238,107 @@ func TestIBMPowerVSCluster_update(t *testing.T) {
175
238
},
176
239
wantErr : true ,
177
240
},
241
+ {
242
+ name : "Should error if network regex and dhcp server name is set but network regex does not match dhcp server name" ,
243
+ oldPowervsCluster : & IBMPowerVSCluster {
244
+ Spec : IBMPowerVSClusterSpec {
245
+ ServiceInstanceID : "capi-si-id" ,
246
+ Network : IBMPowerVSResourceReference {
247
+ RegEx : ptr .To ("^capi$" ),
248
+ },
249
+ DHCPServer : & DHCPServer {
250
+ Name : ptr .To ("capi" ),
251
+ },
252
+ },
253
+ },
254
+ newPowervsCluster : & IBMPowerVSCluster {
255
+ Spec : IBMPowerVSClusterSpec {
256
+ ServiceInstanceID : "capi-si-id" ,
257
+ Network : IBMPowerVSResourceReference {
258
+ RegEx : ptr .To ("^capi$" ),
259
+ },
260
+ DHCPServer : & DHCPServer {
261
+ Name : ptr .To ("test" ),
262
+ },
263
+ },
264
+ },
265
+ wantErr : true ,
266
+ },
267
+ {
268
+ name : "Should allow if network regex, dhcp server name is set and network regex matches dhcp server name" ,
269
+ oldPowervsCluster : & IBMPowerVSCluster {
270
+ Spec : IBMPowerVSClusterSpec {
271
+ ServiceInstanceID : "capi-si-id" ,
272
+ Network : IBMPowerVSResourceReference {
273
+ RegEx : ptr .To ("^capi$" ),
274
+ },
275
+ DHCPServer : & DHCPServer {
276
+ Name : ptr .To ("capi" ),
277
+ },
278
+ },
279
+ },
280
+ newPowervsCluster : & IBMPowerVSCluster {
281
+ Spec : IBMPowerVSClusterSpec {
282
+ ServiceInstanceID : "capi-si-id" ,
283
+ Network : IBMPowerVSResourceReference {
284
+ RegEx : ptr .To ("^capi$" ),
285
+ },
286
+ DHCPServer : & DHCPServer {
287
+ Name : ptr .To ("capi" ),
288
+ },
289
+ },
290
+ },
291
+ wantErr : false ,
292
+ },
293
+ {
294
+ name : "Should error if network regex is set, dhcp server name is not set and network regex does not match cluster name" ,
295
+ oldPowervsCluster : & IBMPowerVSCluster {
296
+ Spec : IBMPowerVSClusterSpec {
297
+ ServiceInstanceID : "capi-si-id" ,
298
+ Network : IBMPowerVSResourceReference {
299
+ RegEx : ptr .To ("^capi$" ),
300
+ },
301
+ DHCPServer : & DHCPServer {
302
+ Name : ptr .To ("capi" ),
303
+ },
304
+ },
305
+ },
306
+ newPowervsCluster : & IBMPowerVSCluster {
307
+ Spec : IBMPowerVSClusterSpec {
308
+ ServiceInstanceID : "capi-si-id" ,
309
+ Network : IBMPowerVSResourceReference {
310
+ RegEx : ptr .To ("^capi$" ),
311
+ },
312
+ },
313
+ ObjectMeta : metav1.ObjectMeta {
314
+ Name : "capi" ,
315
+ },
316
+ },
317
+ wantErr : true ,
318
+ },
319
+ {
320
+ name : "Should allow if network regex is set, dhcp server name is not set and network regex matches cluster name" ,
321
+ oldPowervsCluster : & IBMPowerVSCluster {
322
+ Spec : IBMPowerVSClusterSpec {
323
+ ServiceInstanceID : "capi-si-id" ,
324
+ Network : IBMPowerVSResourceReference {
325
+ RegEx : ptr .To ("^capi$" ),
326
+ },
327
+ DHCPServer : & DHCPServer {
328
+ Name : ptr .To ("capi" ),
329
+ },
330
+ },
331
+ },
332
+ newPowervsCluster : & IBMPowerVSCluster {
333
+ Spec : IBMPowerVSClusterSpec {
334
+ ServiceInstanceID : "capi-si-id" ,
335
+ Network : IBMPowerVSResourceReference {
336
+ RegEx : ptr .To ("^capi-cluster-.*" ),
337
+ },
338
+ },
339
+ },
340
+ wantErr : false ,
341
+ },
178
342
}
179
343
180
344
for _ , tc := range tests {
0 commit comments