@@ -77,20 +77,17 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
77
77
},
78
78
}
79
79
portOptsWithAdditionalSecurityGroup := []infrav1.PortOpts {
80
- {
81
- Network : & infrav1.NetworkParam {
82
- ID : ptr .To (openStackCluster .Status .Network .ID ),
83
- },
84
- SecurityGroups : []infrav1.SecurityGroupParam {
85
- {
86
- ID : ptr .To (openStackCluster .Status .WorkerSecurityGroup .ID ),
87
- },
88
- {
89
- ID : ptr .To (extraSecurityGroupUUID ),
90
- },
91
- },
92
- },
93
- }
80
+ {
81
+ Network : & infrav1.NetworkParam {
82
+ ID : ptr .To (openStackCluster .Status .Network .ID ),
83
+ },
84
+ SecurityGroups : []infrav1.SecurityGroupParam {
85
+ {
86
+ ID : ptr .To (extraSecurityGroupUUID ),
87
+ },
88
+ },
89
+ },
90
+ }
94
91
image := infrav1.ImageParam {Filter : & infrav1.ImageFilter {Name : ptr .To ("my-image" )}}
95
92
tags := []string {"tag1" , "tag2" }
96
93
userData := & corev1.LocalObjectReference {Name : "server-data-secret" }
@@ -158,27 +155,67 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
158
155
},
159
156
},
160
157
{
161
- name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavorID specified but not flavor" ,
162
- spec : & infrav1.OpenStackMachineSpec {
163
- FlavorID : ptr .To (flavorUUID ),
164
- Image : image ,
165
- SSHKeyName : sshKeyName ,
166
- },
167
- want : & infrav1alpha1.OpenStackServerSpec {
168
- FlavorID : ptr .To (flavorUUID ),
169
- IdentityRef : identityRef ,
170
- Image : image ,
171
- SSHKeyName : sshKeyName ,
172
- Ports : portOpts ,
173
- Tags : tags ,
174
- UserDataRef : userData ,
175
- },
176
- },
158
+ name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavorID specified but not flavor" ,
159
+ spec : & infrav1.OpenStackMachineSpec {
160
+ FlavorID : ptr .To (flavorUUID ),
161
+ Image : image ,
162
+ SSHKeyName : sshKeyName ,
163
+ },
164
+ want : & infrav1alpha1.OpenStackServerSpec {
165
+ FlavorID : ptr .To (flavorUUID ),
166
+ IdentityRef : identityRef ,
167
+ Image : image ,
168
+ SSHKeyName : sshKeyName ,
169
+ Ports : portOpts ,
170
+ Tags : tags ,
171
+ UserDataRef : userData ,
172
+ },
173
+ },
174
+ {
175
+ name : "Cluster network nil, machine defines port network and overrides SG" ,
176
+ spec : & infrav1.OpenStackMachineSpec {
177
+ Ports : []infrav1.PortOpts {{
178
+ Network : & infrav1.NetworkParam {ID : ptr .To (networkUUID )},
179
+ }},
180
+ SecurityGroups : []infrav1.SecurityGroupParam {{ID : ptr .To (extraSecurityGroupUUID )}},
181
+ },
182
+ want : & infrav1alpha1.OpenStackServerSpec {
183
+ IdentityRef : identityRef ,
184
+ Ports : []infrav1.PortOpts {{
185
+ Network : & infrav1.NetworkParam {ID : ptr .To (networkUUID )},
186
+ SecurityGroups : []infrav1.SecurityGroupParam {{ID : ptr .To (extraSecurityGroupUUID )}},
187
+ }},
188
+ Tags : tags ,
189
+ UserDataRef : userData ,
190
+ },
191
+ },
192
+ {
193
+ name : "Cluster network nil, machine defines port network and falls back to cluster SG" ,
194
+ spec : & infrav1.OpenStackMachineSpec {
195
+ Ports : []infrav1.PortOpts {{
196
+ Network : & infrav1.NetworkParam {ID : ptr .To (networkUUID )},
197
+ }},
198
+ },
199
+ want : & infrav1alpha1.OpenStackServerSpec {
200
+ IdentityRef : identityRef ,
201
+ Ports : []infrav1.PortOpts {{
202
+ Network : & infrav1.NetworkParam {ID : ptr .To (networkUUID )},
203
+ SecurityGroups : []infrav1.SecurityGroupParam {{ID : ptr .To (workerSecurityGroupUUID )}},
204
+ }},
205
+ Tags : tags ,
206
+ UserDataRef : userData ,
207
+ },
208
+ },
177
209
}
178
210
for i := range tests {
179
211
tt := tests [i ]
180
212
t .Run (tt .name , func (t * testing.T ) {
181
- spec := openStackMachineSpecToOpenStackServerSpec (tt .spec , identityRef , tags , "" , userData , & openStackCluster .Status .WorkerSecurityGroup .ID , openStackCluster .Status .Network .ID )
213
+ defaultNetID := ""
214
+ if openStackCluster .Status .Network != nil {
215
+ defaultNetID = openStackCluster .Status .Network .ID
216
+ }
217
+
218
+ spec := openStackMachineSpecToOpenStackServerSpec (tt .spec , identityRef , tags , "" , userData , & openStackCluster .Status .WorkerSecurityGroup .ID , defaultNetID )
182
219
if ! reflect .DeepEqual (spec , tt .want ) {
183
220
t .Errorf ("openStackMachineSpecToOpenStackServerSpec() got = %+v, want %+v" , spec , tt .want )
184
221
}
0 commit comments