@@ -64,6 +64,26 @@ 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
+ }
67
87
portOpts := []infrav1.PortOpts {
68
88
{
69
89
Network : & infrav1.NetworkParam {
@@ -91,16 +111,37 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
91
111
},
92
112
},
93
113
}
114
+ portOptsWithAdditionalSubnet := []infrav1.PortOpts {
115
+ {
116
+ Network : & infrav1.NetworkParam {
117
+ ID : ptr .To (openStackCluster .Status .Network .ID ),
118
+ },
119
+ SecurityGroups : []infrav1.SecurityGroupParam {
120
+ {
121
+ ID : ptr .To (openStackCluster .Status .WorkerSecurityGroup .ID ),
122
+ },
123
+ },
124
+ FixedIPs : []infrav1.FixedIP {
125
+ {
126
+ Subnet : & infrav1.SubnetParam {
127
+ ID : ptr .To (subnetUUID ),
128
+ },
129
+ },
130
+ },
131
+ },
132
+ }
94
133
image := infrav1.ImageParam {Filter : & infrav1.ImageFilter {Name : ptr .To ("my-image" )}}
95
134
tags := []string {"tag1" , "tag2" }
96
135
userData := & corev1.LocalObjectReference {Name : "server-data-secret" }
97
136
tests := []struct {
98
- name string
99
- spec * infrav1.OpenStackMachineSpec
100
- want * infrav1alpha1.OpenStackServerSpec
137
+ name string
138
+ cluster * infrav1.OpenStackCluster
139
+ spec * infrav1.OpenStackMachineSpec
140
+ want * infrav1alpha1.OpenStackServerSpec
101
141
}{
102
142
{
103
- name : "Test a minimum OpenStackMachineSpec to OpenStackServerSpec conversion" ,
143
+ name : "Test a minimum OpenStackMachineSpec to OpenStackServerSpec conversion" ,
144
+ cluster : openStackCluster ,
104
145
spec : & infrav1.OpenStackMachineSpec {
105
146
Flavor : ptr .To (flavorName ),
106
147
Image : image ,
@@ -117,7 +158,8 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
117
158
},
118
159
},
119
160
{
120
- name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with an additional security group" ,
161
+ name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with an additional security group" ,
162
+ cluster : openStackCluster ,
121
163
spec : & infrav1.OpenStackMachineSpec {
122
164
Flavor : ptr .To (flavorName ),
123
165
Image : image ,
@@ -139,7 +181,26 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
139
181
},
140
182
},
141
183
{
142
- name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavor and flavorID specified" ,
184
+ name : "Test a OpenStackMachineSpec to OpenStackServerSpec conversion with a specified subnet " ,
185
+ cluster : openStackClusterWithSubnet ,
186
+ spec : & infrav1.OpenStackMachineSpec {
187
+ Flavor : ptr .To (flavorName ),
188
+ Image : image ,
189
+ SSHKeyName : sshKeyName ,
190
+ },
191
+ want : & infrav1alpha1.OpenStackServerSpec {
192
+ Flavor : ptr .To (flavorName ),
193
+ IdentityRef : identityRef ,
194
+ Image : image ,
195
+ SSHKeyName : sshKeyName ,
196
+ Ports : portOptsWithAdditionalSubnet ,
197
+ Tags : tags ,
198
+ UserDataRef : userData ,
199
+ },
200
+ },
201
+ {
202
+ name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavor and flavorID specified" ,
203
+ cluster : openStackCluster ,
143
204
spec : & infrav1.OpenStackMachineSpec {
144
205
Flavor : ptr .To (flavorName ),
145
206
FlavorID : ptr .To (flavorUUID ),
@@ -158,7 +219,8 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
158
219
},
159
220
},
160
221
{
161
- name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavorID specified but not flavor" ,
222
+ name : "Test an OpenStackMachineSpec to OpenStackServerSpec conversion with flavorID specified but not flavor" ,
223
+ cluster : openStackCluster ,
162
224
spec : & infrav1.OpenStackMachineSpec {
163
225
FlavorID : ptr .To (flavorUUID ),
164
226
Image : image ,
@@ -178,7 +240,7 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
178
240
for i := range tests {
179
241
tt := tests [i ]
180
242
t .Run (tt .name , func (t * testing.T ) {
181
- spec := openStackMachineSpecToOpenStackServerSpec (tt .spec , identityRef , tags , "" , userData , & openStackCluster .Status .WorkerSecurityGroup .ID , openStackCluster . Status . Network . ID )
243
+ spec := openStackMachineSpecToOpenStackServerSpec (tt .spec , identityRef , tags , "" , userData , & openStackCluster .Status .WorkerSecurityGroup .ID , tt . cluster )
182
244
if ! reflect .DeepEqual (spec , tt .want ) {
183
245
t .Errorf ("openStackMachineSpecToOpenStackServerSpec() got = %+v, want %+v" , spec , tt .want )
184
246
}
0 commit comments