@@ -1115,9 +1115,9 @@ func TestReconcilePowerVSServiceInstance(t *testing.T) {
1115
1115
t .Cleanup (teardown )
1116
1116
1117
1117
clusterScopeParams := getPowerVSClusterScopeParams ()
1118
- clusterScopeParams .ResourceControllerFactory = func () (resourcecontroller. ResourceController , error ) {
1119
- mockResourceController .EXPECT ().GetResourceInstance (gomock .Any ()).Return (nil , nil , errors . New ( "failed to get resource instance " ))
1120
- return mockResourceController , nil
1118
+ clusterScopeParams .PowerVSClientFactory = func () (powervs. PowerVS , error ) {
1119
+ mockPowerVS .EXPECT ().GetDHCPServer (gomock .Any ()).Return (nil , fmt . Errorf ( "GetDHCPServer error " ))
1120
+ return mockPowerVS , nil
1121
1121
}
1122
1122
clusterScope , err := NewPowerVSClusterScope (clusterScopeParams )
1123
1123
g .Expect (err ).To (BeNil ())
@@ -1127,39 +1127,33 @@ func TestReconcilePowerVSServiceInstance(t *testing.T) {
1127
1127
g .Expect (err ).ToNot (BeNil ())
1128
1128
g .Expect (requeue ).To (BeFalse ())
1129
1129
})
1130
-
1131
- t .Run ("When service instance id is set and GetResourceInstance returns nil" , func (t * testing.T ) {
1130
+ t .Run ("When DHCPServer exists and is active" , func (t * testing.T ) {
1132
1131
g := NewWithT (t )
1133
1132
setup (t )
1134
1133
t .Cleanup (teardown )
1135
1134
1136
1135
clusterScopeParams := getPowerVSClusterScopeParams ()
1137
- clusterScopeParams .ResourceControllerFactory = func () (resourcecontroller.ResourceController , error ) {
1138
- mockResourceController .EXPECT ().GetResourceInstance (gomock .Any ()).Return (nil , nil , nil )
1139
- return mockResourceController , nil
1136
+ clusterScopeParams .PowerVSClientFactory = func () (powervs.PowerVS , error ) {
1137
+ dhcpServer := & models.DHCPServerDetail {ID : ptr .To ("dhcpID" ), Status : ptr .To (string (infrav1beta2 .DHCPServerStateActive ))}
1138
+ mockPowerVS .EXPECT ().GetDHCPServer (gomock .Any ()).Return (dhcpServer , nil )
1139
+ return mockPowerVS , nil
1140
1140
}
1141
- clusterScope , err := NewPowerVSClusterScope (clusterScopeParams )
1142
- g .Expect (err ).To (BeNil ())
1143
- clusterScope .IBMPowerVSCluster .Spec .ServiceInstanceID = serviceInstanceID
1141
+ clusterScope , _ := NewPowerVSClusterScope (clusterScopeParams )
1144
1142
1145
- requeue , err := clusterScope .ReconcilePowerVSServiceInstance ()
1146
- g .Expect (err ).ToNot (BeNil ())
1143
+ requeue , err := clusterScope .ReconcileNetwork ()
1144
+ g .Expect (err ).To (BeNil ())
1147
1145
g .Expect (requeue ).To (BeFalse ())
1148
1146
})
1149
-
1150
- t .Run ("When service instance id is set and instance in failed state" , func (t * testing.T ) {
1147
+ t .Run ("When DHCPID is empty and GetNetworkByID returns error " , func (t * testing.T ) {
1151
1148
g := NewWithT (t )
1152
1149
setup (t )
1153
1150
t .Cleanup (teardown )
1154
1151
1155
1152
clusterScopeParams := getPowerVSClusterScopeParams ()
1156
- clusterScopeParams .ResourceControllerFactory = func () (resourcecontroller.ResourceController , error ) {
1157
- instance := & resourcecontrollerv2.ResourceInstance {
1158
- Name : ptr .To ("test-instance" ),
1159
- State : ptr .To ("failed" ),
1160
- }
1161
- mockResourceController .EXPECT ().GetResourceInstance (gomock .Any ()).Return (instance , nil , nil )
1162
- return mockResourceController , nil
1153
+ clusterScopeParams .PowerVSClientFactory = func () (powervs.PowerVS , error ) {
1154
+ network := & models.Network {}
1155
+ mockPowerVS .EXPECT ().GetNetworkByID (gomock .Any ()).Return (network , fmt .Errorf ("GetNetworkByID error" ))
1156
+ return mockPowerVS , nil
1163
1157
}
1164
1158
clusterScope , err := NewPowerVSClusterScope (clusterScopeParams )
1165
1159
g .Expect (err ).To (BeNil ())
@@ -1170,30 +1164,50 @@ func TestReconcilePowerVSServiceInstance(t *testing.T) {
1170
1164
g .Expect (requeue ).To (BeFalse ())
1171
1165
})
1172
1166
1173
- t .Run ("When service instance id is set and instance in active state" , func (t * testing.T ) {
1167
+ t .Run ("When service instance id is set and instance in failed state" , func (t * testing.T ) {
1174
1168
g := NewWithT (t )
1175
1169
setup (t )
1176
1170
t .Cleanup (teardown )
1177
-
1171
+ network := & models. Network { NetworkID : ptr . To ( "networkID" )}
1178
1172
clusterScopeParams := getPowerVSClusterScopeParams ()
1179
- clusterScopeParams .ResourceControllerFactory = func () (resourcecontroller.ResourceController , error ) {
1180
- instance := & resourcecontrollerv2.ResourceInstance {
1181
- Name : ptr .To ("test-instance" ),
1182
- State : ptr .To ("active" ),
1183
- }
1184
- mockResourceController .EXPECT ().GetResourceInstance (gomock .Any ()).Return (instance , nil , nil )
1185
- return mockResourceController , nil
1173
+ clusterScopeParams .PowerVSClientFactory = func () (powervs.PowerVS , error ) {
1174
+ mockPowerVS .EXPECT ().GetNetworkByID (gomock .Any ()).Return (network , nil )
1175
+ return mockPowerVS , nil
1186
1176
}
1187
1177
clusterScope , err := NewPowerVSClusterScope (clusterScopeParams )
1188
1178
g .Expect (err ).To (BeNil ())
1189
1179
clusterScope .IBMPowerVSCluster .Spec .ServiceInstanceID = serviceInstanceID
1190
1180
1191
- requeue , err := clusterScope .ReconcilePowerVSServiceInstance ()
1181
+ requeue , err := clusterScope .ReconcileNetwork ()
1182
+ g .Expect (clusterScope .IBMPowerVSCluster .Status .Network .ID ).To (Equal (network .NetworkID ))
1192
1183
g .Expect (err ).To (BeNil ())
1193
1184
g .Expect (requeue ).To (BeFalse ())
1194
1185
})
1186
+ t .Run ("When DHCPID is empty and GetNetworkByName returns empty network" , func (t * testing.T ) {
1187
+ g := NewWithT (t )
1188
+ setup (t )
1189
+ t .Cleanup (teardown )
1195
1190
1196
- t .Run ("When isServiceInstanceExists returns error" , func (t * testing.T ) {
1191
+ network := & models.NetworkReference {}
1192
+ dhcpNetwork := & models.DHCPServerNetwork {ID : ptr .To ("dhcpNetworkID" )}
1193
+ dhcpServer := & models.DHCPServer {ID : ptr .To ("dhcpID" ), Network : dhcpNetwork }
1194
+ clusterScopeParams := getPowerVSClusterScopeParams ()
1195
+ clusterScopeParams .PowerVSClientFactory = func () (powervs.PowerVS , error ) {
1196
+ mockPowerVS .EXPECT ().GetNetworkByName (gomock .Any ()).Return (network , nil )
1197
+ mockPowerVS .EXPECT ().CreateDHCPServer (gomock .Any ()).Return (dhcpServer , nil )
1198
+ return mockPowerVS , nil
1199
+ }
1200
+ clusterScopeParams .IBMPowerVSCluster .Spec .DHCPServer .ID = nil
1201
+ clusterScope , _ := NewPowerVSClusterScope (clusterScopeParams )
1202
+
1203
+ requeue , err := clusterScope .ReconcileNetwork ()
1204
+ g .Expect (clusterScope .IBMPowerVSCluster .Status .DHCPServer .ID ).To (Equal (dhcpServer .ID ))
1205
+ g .Expect (clusterScope .IBMPowerVSCluster .Status .Network .ID ).To (Equal (dhcpNetwork .ID ))
1206
+ g .Expect (err ).To (BeNil ())
1207
+ g .Expect (requeue ).To (BeTrue ())
1208
+
1209
+ })
1210
+ t .Run ("When DHCPID is empty and checkNetwork returns empty network ID" , func (t * testing.T ) {
1197
1211
g := NewWithT (t )
1198
1212
setup (t )
1199
1213
t .Cleanup (teardown )
@@ -1302,73 +1316,17 @@ func TestReconcilePowerVSServiceInstance(t *testing.T) {
1302
1316
g .Expect (* clusterScope .IBMPowerVSCluster .Status .ServiceInstance .ID ).To (Equal ("instance-GUID" ))
1303
1317
g .Expect (* clusterScope .IBMPowerVSCluster .Status .ServiceInstance .ControllerCreated ).To (BeTrue ())
1304
1318
})
1305
- }
1306
-
1307
- func TestCheckServiceInstanceState (t * testing.T ) {
1308
- testCases := []struct {
1309
- name string
1310
- requeue bool
1311
- expectedErr error
1312
- instance resourcecontrollerv2.ResourceInstance
1313
- }{
1314
- {
1315
- name : "Service instance is in active state" ,
1316
- instance : resourcecontrollerv2.ResourceInstance {Name : ptr .To ("instance" ), State : ptr .To ("active" )},
1317
- },
1318
- {
1319
- name : "Service instance is in provisioning state" ,
1320
- instance : resourcecontrollerv2.ResourceInstance {Name : ptr .To ("instance" ), State : ptr .To ("provisioning" )},
1321
- requeue : true ,
1322
- },
1323
- {
1324
- name : "Service instance is in failed state" ,
1325
- instance : resourcecontrollerv2.ResourceInstance {Name : ptr .To ("instance" ), State : ptr .To ("failed" )},
1326
- expectedErr : fmt .Errorf ("PowerVS service instance is in failed state" ),
1327
- },
1328
- {
1329
- name : "Service instance is in unknown state" ,
1330
- instance : resourcecontrollerv2.ResourceInstance {Name : ptr .To ("instance" ), State : ptr .To ("unknown" )},
1331
- expectedErr : fmt .Errorf ("PowerVS service instance is in unknown state" ),
1332
- },
1333
- }
1334
-
1335
- for _ , tc := range testCases {
1336
- g := NewWithT (t )
1337
- t .Run (tc .name , func (_ * testing.T ) {
1338
- clusterScope := PowerVSClusterScope {}
1339
- requeue , err := clusterScope .checkServiceInstanceState (tc .instance )
1340
- g .Expect (requeue ).To (Equal (tc .requeue ))
1341
- if tc .expectedErr != nil {
1342
- g .Expect (err ).To (Equal (tc .expectedErr ))
1343
- } else {
1344
- g .Expect (err ).To (BeNil ())
1345
- }
1346
- })
1347
- }
1348
- }
1349
-
1350
- func TestIsServiceInstanceExists (t * testing.T ) {
1351
- var (
1352
- mockResourceController * mockRC.MockResourceController
1353
- mockCtrl * gomock.Controller
1354
- )
1355
- setup := func (t * testing.T ) {
1356
- t .Helper ()
1357
- mockCtrl = gomock .NewController (t )
1358
- mockResourceController = mockRC .NewMockResourceController (mockCtrl )
1359
- }
1360
- teardown := func () {
1361
- mockCtrl .Finish ()
1362
- }
1363
- t .Run ("When get service instance returns error" , func (t * testing.T ) {
1319
+ t .Run ("When DHCPID and networkID is not empty and createDHCPServer returns error" , func (t * testing.T ) {
1364
1320
g := NewWithT (t )
1365
1321
setup (t )
1366
1322
t .Cleanup (teardown )
1367
1323
1368
1324
clusterScopeParams := getPowerVSClusterScopeParams ()
1369
- clusterScopeParams .ResourceControllerFactory = func () (resourcecontroller.ResourceController , error ) {
1370
- mockResourceController .EXPECT ().GetServiceInstance (gomock .Any (), gomock .Any (), gomock .Any ()).Return (nil , errors .New ("failed to get service instance" ))
1371
- return mockResourceController , nil
1325
+ clusterScopeParams .PowerVSClientFactory = func () (powervs.PowerVS , error ) {
1326
+ network := & models.Network {}
1327
+ mockPowerVS .EXPECT ().GetNetworkByID (gomock .Any ()).Return (network , nil )
1328
+ mockPowerVS .EXPECT ().CreateDHCPServer (gomock .Any ()).Return (nil , fmt .Errorf ("CreateDHCPServer error" ))
1329
+ return mockPowerVS , nil
1372
1330
}
1373
1331
clusterScope , err := NewPowerVSClusterScope (clusterScopeParams )
1374
1332
g .Expect (err ).To (BeNil ())
0 commit comments