@@ -248,7 +248,7 @@ var _ = Describe("Instance", func() {
248
248
dummies .CSMachine1 .Spec .Offering .Name = ""
249
249
dummies .CSMachine1 .Spec .Template .Name = "template"
250
250
251
- sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {}, 1 , nil )
251
+ sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {Name : "" }, 1 , nil )
252
252
ts .EXPECT ().GetTemplateID (dummies .CSMachine1 .Spec .Template .Name , allFilter , dummies .Zone1 .ID ).
253
253
Return (templateFakeID , 1 , nil )
254
254
@@ -262,7 +262,7 @@ var _ = Describe("Instance", func() {
262
262
dummies .CSMachine1 .Spec .Template .Name = ""
263
263
264
264
sos .EXPECT ().GetServiceOfferingID (dummies .CSMachine1 .Spec .Offering .Name ).Return (offeringFakeID , 1 , nil )
265
- ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , allFilter ).Return (& cloudstack.Template {}, 1 , nil )
265
+ ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , allFilter ).Return (& cloudstack.Template {Name : "" }, 1 , nil )
266
266
267
267
ActionAndAssert ()
268
268
})
@@ -273,8 +273,8 @@ var _ = Describe("Instance", func() {
273
273
dummies .CSMachine1 .Spec .Offering .Name = ""
274
274
dummies .CSMachine1 .Spec .Template .Name = ""
275
275
276
- sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {}, 1 , nil )
277
- ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , allFilter ).Return (& cloudstack.Template {}, 1 , nil )
276
+ sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {Name : "offering" }, 1 , nil )
277
+ ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , allFilter ).Return (& cloudstack.Template {Name : "template" }, 1 , nil )
278
278
279
279
ActionAndAssert ()
280
280
})
@@ -285,11 +285,43 @@ var _ = Describe("Instance", func() {
285
285
dummies .CSMachine1 .Spec .Offering .Name = "offering"
286
286
dummies .CSMachine1 .Spec .Template .Name = "template"
287
287
288
- sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {}, 1 , nil )
289
- ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , allFilter ).Return (& cloudstack.Template {}, 1 , nil )
288
+ sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {Name : "offering" }, 1 , nil )
289
+ ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , allFilter ).Return (& cloudstack.Template {Name : "template" }, 1 , nil )
290
290
291
291
ActionAndAssert ()
292
292
})
293
293
})
294
+
295
+ Context ("when using both UUIDs and names to locate service offerings and templates" , func () {
296
+ BeforeEach (func () {
297
+ vms .EXPECT ().GetVirtualMachinesMetricByID (* dummies .CSMachine1 .Spec .InstanceID ).
298
+ Return (nil , - 1 , notFoundError )
299
+ vms .EXPECT ().GetVirtualMachinesMetricByName (dummies .CSMachine1 .Name ).Return (nil , - 1 , notFoundError )
300
+ })
301
+
302
+ It ("works with Id and name both provided, offering name mismatch" , func () {
303
+ dummies .CSMachine1 .Spec .Offering .ID = offeringFakeID
304
+ dummies .CSMachine1 .Spec .Template .ID = templateFakeID
305
+ dummies .CSMachine1 .Spec .Offering .Name = "offering"
306
+ dummies .CSMachine1 .Spec .Template .Name = "template"
307
+
308
+ sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {Name : "offering-not-match" }, 1 , nil )
309
+ requiredRegexp := "offering name %s does not match name %s returned using UUID %s"
310
+ Ω (client .GetOrCreateVMInstance (dummies .CSMachine1 , dummies .CAPIMachine , dummies .CSCluster , "" )).Should (MatchError (MatchRegexp (requiredRegexp , dummies .CSMachine1 .Spec .Offering .Name , "offering-not-match" , offeringFakeID )))
311
+ })
312
+
313
+ It ("works with Id and name both provided, template name mismatch" , func () {
314
+ dummies .CSMachine1 .Spec .Offering .ID = offeringFakeID
315
+ dummies .CSMachine1 .Spec .Template .ID = templateFakeID
316
+ dummies .CSMachine1 .Spec .Offering .Name = "offering"
317
+ dummies .CSMachine1 .Spec .Template .Name = "template"
318
+
319
+ sos .EXPECT ().GetServiceOfferingByID (dummies .CSMachine1 .Spec .Offering .ID ).Return (& cloudstack.ServiceOffering {Name : "offering" }, 1 , nil )
320
+ ts .EXPECT ().GetTemplateByID (dummies .CSMachine1 .Spec .Template .ID , allFilter ).Return (& cloudstack.Template {Name : "template-not-match" }, 1 , nil )
321
+ requiredRegexp := "template name %s does not match name %s returned using UUID %s"
322
+ Ω (client .GetOrCreateVMInstance (dummies .CSMachine1 , dummies .CAPIMachine , dummies .CSCluster , "" )).Should (MatchError (MatchRegexp (requiredRegexp , dummies .CSMachine1 .Spec .Template .Name , "template-not-match" , templateFakeID )))
323
+
324
+ })
325
+ })
294
326
})
295
327
})
0 commit comments