@@ -64,6 +64,26 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
6464 },
6565 },
6666 }
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+ }
6787 portOpts := []infrav1.PortOpts {
6888 {
6989 Network : & infrav1.NetworkParam {
@@ -91,16 +111,37 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
91111 },
92112 },
93113 }
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+ }
94133 image := infrav1.ImageParam {Filter : & infrav1.ImageFilter {Name : ptr .To ("my-image" )}}
95134 tags := []string {"tag1" , "tag2" }
96135 userData := & corev1.LocalObjectReference {Name : "server-data-secret" }
97136 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
101141 }{
102142 {
103- name : "Test a minimum OpenStackMachineSpec to OpenStackServerSpec conversion" ,
143+ name : "Test a minimum OpenStackMachineSpec to OpenStackServerSpec conversion" ,
144+ cluster : openStackCluster ,
104145 spec : & infrav1.OpenStackMachineSpec {
105146 Flavor : ptr .To (flavorName ),
106147 Image : image ,
@@ -117,7 +158,8 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
117158 },
118159 },
119160 {
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 ,
121163 spec : & infrav1.OpenStackMachineSpec {
122164 Flavor : ptr .To (flavorName ),
123165 Image : image ,
@@ -139,7 +181,26 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
139181 },
140182 },
141183 {
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 ,
143204 spec : & infrav1.OpenStackMachineSpec {
144205 Flavor : ptr .To (flavorName ),
145206 FlavorID : ptr .To (flavorUUID ),
@@ -158,7 +219,8 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
158219 },
159220 },
160221 {
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 ,
162224 spec : & infrav1.OpenStackMachineSpec {
163225 FlavorID : ptr .To (flavorUUID ),
164226 Image : image ,
@@ -178,7 +240,7 @@ func TestOpenStackMachineSpecToOpenStackServerSpec(t *testing.T) {
178240 for i := range tests {
179241 tt := tests [i ]
180242 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 )
182244 if ! reflect .DeepEqual (spec , tt .want ) {
183245 t .Errorf ("openStackMachineSpecToOpenStackServerSpec() got = %+v, want %+v" , spec , tt .want )
184246 }
0 commit comments