Skip to content

Commit 68f2229

Browse files
committed
unit tests: add cases for nil network and SG override
Signed-off-by: Bharath Nallapeta <[email protected]>
1 parent 5e87136 commit 68f2229

File tree

1 file changed

+68
-31
lines changed

1 file changed

+68
-31
lines changed

controllers/openstackmachine_controller_test.go

Lines changed: 68 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,17 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
7777
},
7878
}
7979
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+
}
9491
image := infrav1.ImageParam{Filter: &infrav1.ImageFilter{Name: ptr.To("my-image")}}
9592
tags := []string{"tag1", "tag2"}
9693
userData := &corev1.LocalObjectReference{Name: "server-data-secret"}
@@ -158,27 +155,67 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
158155
},
159156
},
160157
{
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+
},
177209
}
178210
for i := range tests {
179211
tt := tests[i]
180212
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)
182219
if !reflect.DeepEqual(spec, tt.want) {
183220
t.Errorf("openStackMachineSpecToOpenStackServerSpec() got = %+v, want %+v", spec, tt.want)
184221
}

0 commit comments

Comments
 (0)