@@ -64,6 +64,61 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
64
64
},
65
65
},
66
66
}
67
+ openStackClusterWithSubnet := & infrav1.OpenStackCluster {
68
+ Spec : infrav1.OpenStackClusterSpec {
69
+ ManagedSecurityGroups : & infrav1.ManagedSecurityGroups {},
70
+ Subnets : []infrav1.SubnetParam {
71
+ {
72
+ ID : ptr .To (subnetUUID ),
73
+ },
74
+ },
75
+ },
76
+ Status : infrav1.OpenStackClusterStatus {
77
+ WorkerSecurityGroup : & infrav1.SecurityGroupStatus {
78
+ ID : workerSecurityGroupUUID ,
79
+ },
80
+ Network : & infrav1.NetworkStatusWithSubnets {
81
+ NetworkStatus : infrav1.NetworkStatus {
82
+ ID : networkUUID ,
83
+ },
84
+ },
85
+ },
86
+ }
87
+ openStackClusterNoNetwork := & infrav1.OpenStackCluster {
88
+ Spec : infrav1.OpenStackClusterSpec {
89
+ ManagedSecurityGroups : & infrav1.ManagedSecurityGroups {},
90
+ Subnets : []infrav1.SubnetParam {
91
+ {
92
+ ID : ptr .To (subnetUUID ),
93
+ },
94
+ },
95
+ },
96
+ Status : infrav1.OpenStackClusterStatus {
97
+ WorkerSecurityGroup : & infrav1.SecurityGroupStatus {
98
+ ID : workerSecurityGroupUUID ,
99
+ },
100
+ },
101
+ }
102
+ openStackClusterNetworkWithoutID := & infrav1.OpenStackCluster {
103
+ Spec : infrav1.OpenStackClusterSpec {
104
+ ManagedSecurityGroups : & infrav1.ManagedSecurityGroups {},
105
+ Subnets : []infrav1.SubnetParam {
106
+ {
107
+ ID : ptr .To (subnetUUID ),
108
+ },
109
+ },
110
+ },
111
+ Status : infrav1.OpenStackClusterStatus {
112
+ WorkerSecurityGroup : & infrav1.SecurityGroupStatus {
113
+ ID : workerSecurityGroupUUID ,
114
+ },
115
+ Network : & infrav1.NetworkStatusWithSubnets {
116
+ NetworkStatus : infrav1.NetworkStatus {
117
+ ID : "" ,
118
+ },
119
+ },
120
+ },
121
+ }
67
122
portOpts := []infrav1.PortOpts {
68
123
{
69
124
Network : & infrav1.NetworkParam {
@@ -91,24 +146,43 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
91
146
},
92
147
},
93
148
}
149
+ portOptsWithAdditionalSubnet := []infrav1.PortOpts {
150
+ {
151
+ Network : & infrav1.NetworkParam {
152
+ ID : ptr .To (openStackCluster .Status .Network .ID ),
153
+ },
154
+ SecurityGroups : []infrav1.SecurityGroupParam {
155
+ {
156
+ ID : ptr .To (openStackCluster .Status .WorkerSecurityGroup .ID ),
157
+ },
158
+ },
159
+ FixedIPs : []infrav1.FixedIP {
160
+ {
161
+ Subnet : & infrav1.SubnetParam {
162
+ ID : ptr .To (subnetUUID ),
163
+ },
164
+ },
165
+ },
166
+ },
167
+ }
94
168
image := infrav1.ImageParam {Filter : & infrav1.ImageFilter {Name : ptr .To ("my-image" )}}
95
169
tags := []string {"tag1" , "tag2" }
96
170
userData := & corev1.LocalObjectReference {Name : "server-data-secret" }
97
171
tests := []struct {
98
- name string
99
- spec * infrav1.OpenStackMachineSpec
100
- clusterNetwork * infrav1.NetworkStatusWithSubnets
101
- want * infrav1alpha1.OpenStackServerSpec
102
- wantErr bool
172
+ name string
173
+ cluster * infrav1.OpenStackCluster
174
+ spec * infrav1.OpenStackMachineSpec
175
+ want * infrav1alpha1.OpenStackServerSpec
176
+ wantErr bool
103
177
}{
104
178
{
105
- name : "Test a minimum OpenStackMachineSpec to OpenStackServerSpec conversion" ,
179
+ name : "Test a minimum OpenStackMachineSpec to OpenStackServerSpec conversion" ,
180
+ cluster : openStackCluster ,
106
181
spec : & infrav1.OpenStackMachineSpec {
107
182
Flavor : ptr .To (flavorName ),
108
183
Image : image ,
109
184
SSHKeyName : sshKeyName ,
110
185
},
111
- clusterNetwork : openStackCluster .Status .Network ,
112
186
want : & infrav1alpha1.OpenStackServerSpec {
113
187
Flavor : ptr .To (flavorName ),
114
188
IdentityRef : identityRef ,
@@ -120,7 +194,8 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
120
194
},
121
195
},
122
196
{
123
- name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with an additional security group" ,
197
+ name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with an additional security group" ,
198
+ cluster : openStackCluster ,
124
199
spec : & infrav1.OpenStackMachineSpec {
125
200
Flavor : ptr .To (flavorName ),
126
201
Image : image ,
@@ -131,7 +206,6 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
131
206
},
132
207
},
133
208
},
134
- clusterNetwork : openStackCluster .Status .Network ,
135
209
want : & infrav1alpha1.OpenStackServerSpec {
136
210
Flavor : ptr .To (flavorName ),
137
211
IdentityRef : identityRef ,
@@ -143,14 +217,32 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
143
217
},
144
218
},
145
219
{
146
- name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavor and flavorID specified" ,
220
+ name : "Test a OpenStackMachineSpec to OpenStackServerSpec conversion with a specified subnet" ,
221
+ cluster : openStackClusterWithSubnet ,
222
+ spec : & infrav1.OpenStackMachineSpec {
223
+ Flavor : ptr .To (flavorName ),
224
+ Image : image ,
225
+ SSHKeyName : sshKeyName ,
226
+ },
227
+ want : & infrav1alpha1.OpenStackServerSpec {
228
+ Flavor : ptr .To (flavorName ),
229
+ IdentityRef : identityRef ,
230
+ Image : image ,
231
+ SSHKeyName : sshKeyName ,
232
+ Ports : portOptsWithAdditionalSubnet ,
233
+ Tags : tags ,
234
+ UserDataRef : userData ,
235
+ },
236
+ },
237
+ {
238
+ name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavor and flavorID specified" ,
239
+ cluster : openStackCluster ,
147
240
spec : & infrav1.OpenStackMachineSpec {
148
241
Flavor : ptr .To (flavorName ),
149
242
FlavorID : ptr .To (flavorUUID ),
150
243
Image : image ,
151
244
SSHKeyName : sshKeyName ,
152
245
},
153
- clusterNetwork : openStackCluster .Status .Network ,
154
246
want : & infrav1alpha1.OpenStackServerSpec {
155
247
Flavor : ptr .To (flavorName ),
156
248
FlavorID : ptr .To (flavorUUID ),
@@ -163,13 +255,13 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
163
255
},
164
256
},
165
257
{
166
- name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavorID specified but not flavor" ,
258
+ name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavorID specified but not flavor" ,
259
+ cluster : openStackCluster ,
167
260
spec : & infrav1.OpenStackMachineSpec {
168
261
FlavorID : ptr .To (flavorUUID ),
169
262
Image : image ,
170
263
SSHKeyName : sshKeyName ,
171
264
},
172
- clusterNetwork : openStackCluster .Status .Network ,
173
265
want : & infrav1alpha1.OpenStackServerSpec {
174
266
FlavorID : ptr .To (flavorUUID ),
175
267
IdentityRef : identityRef ,
@@ -188,7 +280,7 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
188
280
}},
189
281
SecurityGroups : []infrav1.SecurityGroupParam {{ID : ptr .To (extraSecurityGroupUUID )}},
190
282
},
191
- clusterNetwork : nil ,
283
+ cluster : openStackClusterNoNetwork ,
192
284
want : & infrav1alpha1.OpenStackServerSpec {
193
285
IdentityRef : identityRef ,
194
286
Ports : []infrav1.PortOpts {{
@@ -209,7 +301,7 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
209
301
Network : & infrav1.NetworkParam {ID : ptr .To (networkUUID )},
210
302
}},
211
303
},
212
- clusterNetwork : nil ,
304
+ cluster : openStackClusterNoNetwork ,
213
305
want : & infrav1alpha1.OpenStackServerSpec {
214
306
IdentityRef : identityRef ,
215
307
Ports : []infrav1.PortOpts {{
@@ -228,9 +320,9 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
228
320
SSHKeyName : sshKeyName ,
229
321
// No ports defined
230
322
},
231
- clusterNetwork : nil ,
232
- want : nil ,
233
- wantErr : true ,
323
+ cluster : openStackClusterNoNetwork ,
324
+ want : nil ,
325
+ wantErr : true ,
234
326
},
235
327
{
236
328
name : "Empty cluster network ID, machine defines explicit ports" ,
@@ -241,7 +333,7 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
241
333
Network : & infrav1.NetworkParam {ID : ptr .To (networkUUID )},
242
334
}},
243
335
},
244
- clusterNetwork : & infrav1. NetworkStatusWithSubnets { NetworkStatus : infrav1. NetworkStatus { ID : "" }} ,
336
+ cluster : openStackClusterNetworkWithoutID ,
245
337
want : & infrav1alpha1.OpenStackServerSpec {
246
338
Flavor : ptr .To (flavorName ),
247
339
IdentityRef : identityRef ,
@@ -258,7 +350,7 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
258
350
for i := range tests {
259
351
tt := tests [i ]
260
352
t .Run (tt .name , func (t * testing.T ) {
261
- spec , err := openStackMachineSpecToOpenStackServerSpec (tt .spec , identityRef , tags , "" , userData , & openStackCluster .Status .WorkerSecurityGroup .ID , tt .clusterNetwork )
353
+ spec , err := openStackMachineSpecToOpenStackServerSpec (tt .spec , identityRef , tags , "" , userData , & openStackCluster .Status .WorkerSecurityGroup .ID , tt .cluster )
262
354
if (err != nil ) != tt .wantErr {
263
355
t .Errorf ("openStackMachineSpecToOpenStackServerSpec() error = %v, wantErr %v" , err , tt .wantErr )
264
356
return
0 commit comments