@@ -179,6 +179,55 @@ var _ = Describe("Instance", func() {
179
179
ShouldNot (Succeed ())
180
180
})
181
181
182
+ It ("returns errors when more than one diskoffering found" , func () {
183
+ expectVMNotFound ()
184
+ sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).
185
+ Return (dummies .CSMachine1 .Spec .Offering .ID , 1 , nil )
186
+ ts .EXPECT ().GetTemplateID (dummies .CSMachine1 .Spec .Template .Name , executableFilter , dummies .Zone1 .ID ).Return (dummies .CSMachine1 .Spec .Template .ID , 1 , nil )
187
+ dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 2 , nil )
188
+ Ω (client .GetOrCreateVMInstance (
189
+ dummies .CSMachine1 , dummies .CAPIMachine , dummies .CSCluster , dummies .CSZone1 , dummies .CSAffinityGroup , "" )).
190
+ ShouldNot (Succeed ())
191
+ })
192
+
193
+ It ("returns errors when fetching diskoffering" , func () {
194
+ expectVMNotFound ()
195
+ sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).
196
+ Return (dummies .CSMachine1 .Spec .Offering .ID , 1 , nil )
197
+ ts .EXPECT ().GetTemplateID (dummies .CSMachine1 .Spec .Template .Name , executableFilter , dummies .Zone1 .ID ).Return (dummies .CSMachine1 .Spec .Template .ID , 1 , nil )
198
+ dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 1 , nil )
199
+ dos .EXPECT ().GetDiskOfferingByID (diskOfferingFakeID ).Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , unknownError )
200
+ Ω (client .GetOrCreateVMInstance (
201
+ dummies .CSMachine1 , dummies .CAPIMachine , dummies .CSCluster , dummies .CSZone1 , dummies .CSAffinityGroup , "" )).
202
+ ShouldNot (Succeed ())
203
+ })
204
+
205
+ It ("returns errors when disk size not zero for non-customized disk offering" , func () {
206
+ expectVMNotFound ()
207
+ dummies .CSMachine1 .Spec .DiskOffering .CustomSize = 1
208
+ sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).
209
+ Return (dummies .CSMachine1 .Spec .Offering .ID , 1 , nil )
210
+ ts .EXPECT ().GetTemplateID (dummies .CSMachine1 .Spec .Template .Name , executableFilter , dummies .Zone1 .ID ).Return (dummies .CSMachine1 .Spec .Template .ID , 1 , nil )
211
+ dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 1 , nil )
212
+ dos .EXPECT ().GetDiskOfferingByID (diskOfferingFakeID ).Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , nil )
213
+ Ω (client .GetOrCreateVMInstance (
214
+ dummies .CSMachine1 , dummies .CAPIMachine , dummies .CSCluster , dummies .CSZone1 , dummies .CSAffinityGroup , "" )).
215
+ ShouldNot (Succeed ())
216
+ })
217
+
218
+ It ("returns errors when disk size zero for customized disk offering" , func () {
219
+ expectVMNotFound ()
220
+ dummies .CSMachine1 .Spec .DiskOffering .CustomSize = 0
221
+ sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).
222
+ Return (dummies .CSMachine1 .Spec .Offering .ID , 1 , nil )
223
+ ts .EXPECT ().GetTemplateID (dummies .CSMachine1 .Spec .Template .Name , executableFilter , dummies .Zone1 .ID ).Return (dummies .CSMachine1 .Spec .Template .ID , 1 , nil )
224
+ dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 1 , nil )
225
+ dos .EXPECT ().GetDiskOfferingByID (diskOfferingFakeID ).Return (& cloudstack.DiskOffering {Iscustomized : true }, 1 , nil )
226
+ Ω (client .GetOrCreateVMInstance (
227
+ dummies .CSMachine1 , dummies .CAPIMachine , dummies .CSCluster , dummies .CSZone1 , dummies .CSAffinityGroup , "" )).
228
+ ShouldNot (Succeed ())
229
+ })
230
+
182
231
It ("handles deployment errors" , func () {
183
232
expectVMNotFound ()
184
233
sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).
@@ -187,6 +236,8 @@ var _ = Describe("Instance", func() {
187
236
Return (templateFakeID , 1 , nil )
188
237
dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).
189
238
Return (diskOfferingFakeID , 1 , nil )
239
+ dos .EXPECT ().GetDiskOfferingByID (diskOfferingFakeID ).
240
+ Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , nil )
190
241
vms .EXPECT ().NewDeployVirtualMachineParams (offeringFakeID , templateFakeID , dummies .Zone1 .ID ).
191
242
Return (& cloudstack.DeployVirtualMachineParams {})
192
243
vms .EXPECT ().DeployVirtualMachine (gomock .Any ()).Return (nil , unknownError )
@@ -221,13 +272,15 @@ var _ = Describe("Instance", func() {
221
272
}
222
273
223
274
It ("works with service offering name and template name" , func () {
275
+ dummies .CSMachine1 .Spec .DiskOffering .ID = diskOfferingFakeID
224
276
dummies .CSMachine1 .Spec .Offering .ID = ""
225
277
dummies .CSMachine1 .Spec .Template .ID = ""
226
278
dummies .CSMachine1 .Spec .Offering .Name = "offering"
227
279
dummies .CSMachine1 .Spec .Template .Name = "template"
228
280
229
281
sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).Return (offeringFakeID , 1 , nil )
230
282
dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 1 , nil )
283
+ dos .EXPECT ().GetDiskOfferingByID (dummies .CSMachine1 .Spec .DiskOffering .ID ).Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , nil )
231
284
ts .EXPECT ().GetTemplateID (dummies .CSMachine1 .Spec .Template .Name , executableFilter , dummies .Zone1 .ID ).
232
285
Return (templateFakeID , 1 , nil )
233
286
@@ -249,6 +302,7 @@ var _ = Describe("Instance", func() {
249
302
})
250
303
251
304
It ("works with service offering ID and template name" , func () {
305
+ dummies .CSMachine1 .Spec .DiskOffering .ID = diskOfferingFakeID
252
306
dummies .CSMachine1 .Spec .Offering .ID = offeringFakeID
253
307
dummies .CSMachine1 .Spec .Template .ID = ""
254
308
dummies .CSMachine1 .Spec .Offering .Name = ""
@@ -258,11 +312,13 @@ var _ = Describe("Instance", func() {
258
312
ts .EXPECT ().GetTemplateID (dummies .CSMachine1 .Spec .Template .Name , executableFilter , dummies .Zone1 .ID ).
259
313
Return (templateFakeID , 1 , nil )
260
314
dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 1 , nil )
315
+ dos .EXPECT ().GetDiskOfferingByID (dummies .CSMachine1 .Spec .DiskOffering .ID ).Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , nil )
261
316
262
317
ActionAndAssert ()
263
318
})
264
319
265
320
It ("works with service offering name and template ID" , func () {
321
+ dummies .CSMachine1 .Spec .DiskOffering .ID = diskOfferingFakeID
266
322
dummies .CSMachine1 .Spec .Offering .ID = ""
267
323
dummies .CSMachine1 .Spec .Template .ID = templateFakeID
268
324
dummies .CSMachine1 .Spec .Offering .Name = "offering"
@@ -271,11 +327,13 @@ var _ = Describe("Instance", func() {
271
327
sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).Return (offeringFakeID , 1 , nil )
272
328
ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , executableFilter ).Return (& cloudstack.Template {Name : "" }, 1 , nil )
273
329
dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 1 , nil )
330
+ dos .EXPECT ().GetDiskOfferingByID (dummies .CSMachine1 .Spec .DiskOffering .ID ).Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , nil )
274
331
275
332
ActionAndAssert ()
276
333
})
277
334
278
335
It ("works with service offering ID and template ID" , func () {
336
+ dummies .CSMachine1 .Spec .DiskOffering .ID = diskOfferingFakeID
279
337
dummies .CSMachine1 .Spec .Offering .ID = offeringFakeID
280
338
dummies .CSMachine1 .Spec .Template .ID = templateFakeID
281
339
dummies .CSMachine1 .Spec .Offering .Name = ""
@@ -285,13 +343,16 @@ var _ = Describe("Instance", func() {
285
343
Return (& cloudstack.ServiceOffering {Name : "offering" }, 1 , nil )
286
344
dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).
287
345
Return (diskOfferingFakeID , 1 , nil )
346
+ dos .EXPECT ().GetDiskOfferingByID (dummies .CSMachine1 .Spec .DiskOffering .ID ).
347
+ Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , nil )
288
348
ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , executableFilter ).
289
349
Return (& cloudstack.Template {Name : "template" }, 1 , nil )
290
350
291
351
ActionAndAssert ()
292
352
})
293
353
294
354
It ("works with Id and name both provided" , func () {
355
+ dummies .CSMachine1 .Spec .DiskOffering .ID = diskOfferingFakeID
295
356
dummies .CSMachine1 .Spec .Offering .ID = offeringFakeID
296
357
dummies .CSMachine1 .Spec .Template .ID = templateFakeID
297
358
dummies .CSMachine1 .Spec .Offering .Name = "offering"
@@ -300,6 +361,7 @@ var _ = Describe("Instance", func() {
300
361
sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {Name : "offering" }, 1 , nil )
301
362
ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , executableFilter ).Return (& cloudstack.Template {Name : "template" }, 1 , nil )
302
363
dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID , 1 , nil )
364
+ dos .EXPECT ().GetDiskOfferingByID (dummies .CSMachine1 .Spec .DiskOffering .ID ).Return (& cloudstack.DiskOffering {Iscustomized : false }, 1 , nil )
303
365
304
366
ActionAndAssert ()
305
367
})
@@ -339,6 +401,24 @@ var _ = Describe("Instance", func() {
339
401
Should (MatchError (MatchRegexp (requiredRegexp , dummies .CSMachine1 .Spec .Template .Name , "template-not-match" , templateFakeID )))
340
402
341
403
})
404
+
405
+ It ("works with Id and name both provided, disk offering id/name mismatch" , func () {
406
+ dummies .CSMachine1 .Spec .Offering .ID = offeringFakeID
407
+ dummies .CSMachine1 .Spec .Template .ID = templateFakeID
408
+ dummies .CSMachine1 .Spec .DiskOffering .ID = diskOfferingFakeID
409
+ dummies .CSMachine1 .Spec .Offering .Name = "offering"
410
+ dummies .CSMachine1 .Spec .Template .Name = "template"
411
+ dummies .CSMachine1 .Spec .DiskOffering .Name = "diskoffering"
412
+
413
+ sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {Name : "offering" }, 1 , nil )
414
+ ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , executableFilter ).Return (& cloudstack.Template {Name : "template" }, 1 , nil )
415
+ dos .EXPECT ().GetDiskOfferingID (dummies .CSMachine1 .Spec .DiskOffering .Name ).Return (diskOfferingFakeID + "-not-match" , 1 , nil )
416
+ requiredRegexp := "diskOffering ID %s does not match ID %s returned using name %s"
417
+ Ω (client .GetOrCreateVMInstance (
418
+ dummies .CSMachine1 , dummies .CAPIMachine , dummies .CSCluster , dummies .CSZone1 , dummies .CSAffinityGroup , "" )).
419
+ Should (MatchError (MatchRegexp (requiredRegexp , dummies .CSMachine1 .Spec .DiskOffering .ID , diskOfferingFakeID + "-not-match" , dummies .CSMachine1 .Spec .DiskOffering .Name )))
420
+
421
+ })
342
422
})
343
423
})
344
424
0 commit comments