Skip to content

Commit af3362a

Browse files
committed
fix unit testing aftger template and offering changes
1 parent 7b3a248 commit af3362a

File tree

2 files changed

+72
-42
lines changed

2 files changed

+72
-42
lines changed

pkg/cloud/instance_test.go

Lines changed: 71 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import (
3434
var _ = Describe("Instance", func() {
3535
notFoundError := errors.New("no match found")
3636
const unknownErrorMessage = "unknown err"
37+
const offeringFakeID = "123"
38+
const templateFakeID = "456"
3739
unknownError := errors.New(unknownErrorMessage)
3840

3941
var (
@@ -132,50 +134,49 @@ var _ = Describe("Instance", func() {
132134

133135
It("returns errors occuring while fetching sevice offering information", func() {
134136
expectVMNotFound()
135-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).Return("", -1, unknownError)
136-
sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering).Return(nil, -1, unknownError)
137+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).Return("", -1, unknownError)
138+
//sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering.ID).Return(nil, -1, unknownError)
137139
Ω(client.GetOrCreateVMInstance(dummies.CSMachine1, dummies.CAPIMachine, dummies.CSCluster, "")).
138140
ShouldNot(Succeed())
139141
})
140142

141143
It("returns errors if more than one sevice offering found", func() {
142144
expectVMNotFound()
143-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).Return("", 2, nil)
144-
sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering).Return(nil, -1, unknownError)
145+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).Return("", 2, nil)
146+
//sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering.ID).Return(nil, -1, unknownError)
145147
Ω(client.GetOrCreateVMInstance(dummies.CSMachine1, dummies.CAPIMachine, dummies.CSCluster, "")).
146148
ShouldNot(Succeed())
147149
})
148150

149151
const allFilter = "all"
150152
It("returns errors encountered while fetching template", func() {
151153
expectVMNotFound()
152-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).
153-
Return(dummies.CSMachine1.Spec.Offering, 1, nil)
154-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).
154+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).
155+
Return(dummies.CSMachine1.Spec.Offering.ID, 1, nil)
156+
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template.Name, allFilter, dummies.Zone1.ID).
155157
Return("", -1, unknownError)
156-
ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template, allFilter).Return(nil, -1, unknownError)
158+
//ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template.ID, allFilter).Return(nil, -1, unknownError)
157159
Ω(client.GetOrCreateVMInstance(dummies.CSMachine1, dummies.CAPIMachine, dummies.CSCluster, "")).
158160
ShouldNot(Succeed())
159161
})
160162

161163
It("returns errors when more than one template found", func() {
162164
expectVMNotFound()
163-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).
164-
Return(dummies.CSMachine1.Spec.Offering, 1, nil)
165-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).Return("", 2, nil)
166-
ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template, allFilter).Return(nil, -1, unknownError)
165+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).
166+
Return(dummies.CSMachine1.Spec.Offering.ID, 1, nil)
167+
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template.Name, allFilter, dummies.Zone1.ID).Return("", 2, nil)
168+
//ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template.ID, allFilter).Return(nil, -1, unknownError)
167169
Ω(client.GetOrCreateVMInstance(dummies.CSMachine1, dummies.CAPIMachine, dummies.CSCluster, "")).
168170
ShouldNot(Succeed())
169171
})
170172

171173
It("handles deployment errors", func() {
172174
expectVMNotFound()
173-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).
174-
Return(dummies.CSMachine1.Spec.Offering, 1, nil)
175-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).
176-
Return(dummies.CSMachine1.Spec.Template, 1, nil)
177-
vms.EXPECT().NewDeployVirtualMachineParams(
178-
dummies.CSMachine1.Spec.Offering, dummies.CSMachine1.Spec.Template, dummies.Zone1.ID).
175+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).
176+
Return(offeringFakeID, 1, nil)
177+
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template.Name, allFilter, dummies.Zone1.ID).
178+
Return(templateFakeID, 1, nil)
179+
vms.EXPECT().NewDeployVirtualMachineParams(offeringFakeID, templateFakeID, dummies.Zone1.ID).
179180
Return(&cloudstack.DeployVirtualMachineParams{})
180181
vms.EXPECT().DeployVirtualMachine(gomock.Any()).Return(nil, unknownError)
181182

@@ -195,12 +196,12 @@ var _ = Describe("Instance", func() {
195196
dummies.CSCluster.Spec.Account = account
196197
dummies.CSCluster.Status.DomainID = domainID
197198
vms.EXPECT().GetVirtualMachinesMetricByID(*dummies.CSMachine1.Spec.InstanceID).Return(nil, -1, notFoundError)
198-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).Return(dummies.CSMachine1.Spec.Offering, 1, nil)
199-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).
200-
Return(dummies.CSMachine1.Spec.Template, 1, nil)
199+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).Return(offeringFakeID, 1, nil)
200+
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template.Name, allFilter, dummies.Zone1.ID).
201+
Return(templateFakeID, 1, nil)
201202
vms.EXPECT().GetVirtualMachinesMetricByID(*dummies.CSMachine1.Spec.InstanceID).
202203
Return(&cloudstack.VirtualMachinesMetric{}, 1, nil)
203-
vms.EXPECT().NewDeployVirtualMachineParams(dummies.CSMachine1.Spec.Offering, dummies.CSMachine1.Spec.Template, dummies.Zone1.ID).
204+
vms.EXPECT().NewDeployVirtualMachineParams(offeringFakeID, templateFakeID, dummies.Zone1.ID).
204205
Return(&cloudstack.DeployVirtualMachineParams{})
205206
vms.EXPECT().DeployVirtualMachine(ParamMatch(And(AccountEquals(account), DomainIDEquals(domainID)))).
206207
Return(&cloudstack.DeployVirtualMachineResponse{Id: *dummies.CSMachine1.Spec.InstanceID}, nil)
@@ -224,7 +225,7 @@ var _ = Describe("Instance", func() {
224225
})
225226

226227
ActionAndAssert := func() {
227-
vms.EXPECT().NewDeployVirtualMachineParams(dummies.CSMachine1.Spec.Offering, dummies.CSMachine1.Spec.Template, dummies.Zone1.ID).
228+
vms.EXPECT().NewDeployVirtualMachineParams(offeringFakeID, templateFakeID, dummies.Zone1.ID).
228229
Return(&cloudstack.DeployVirtualMachineParams{})
229230

230231
deploymentResp := &cloudstack.DeployVirtualMachineResponse{Id: *dummies.CSMachine1.Spec.InstanceID}
@@ -234,39 +235,68 @@ var _ = Describe("Instance", func() {
234235
}
235236

236237
It("works with service offering name and template name", func() {
237-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).Return(dummies.CSMachine1.Spec.Offering, 1, nil)
238-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).
239-
Return(dummies.CSMachine1.Spec.Template, 1, nil)
238+
dummies.CSMachine1.Spec.Offering.ID = ""
239+
dummies.CSMachine1.Spec.Template.ID = ""
240+
dummies.CSMachine1.Spec.Offering.Name = "offering"
241+
dummies.CSMachine1.Spec.Template.Name = "template"
242+
243+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).Return(offeringFakeID, 1, nil)
244+
//sos.EXPECT().GetServiceOfferingByID(offeringFakeID).Return(&cloudstack.ServiceOffering{}, 1, nil)
245+
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template.Name, allFilter, dummies.Zone1.ID).
246+
Return(templateFakeID, 1, nil)
247+
//ts.EXPECT().GetTemplateByID(templateFakeID, allFilter, dummies.Zone1.ID).
248+
// Return(&cloudstack.Template{}, 1, nil)
240249

241250
ActionAndAssert()
242251
})
243252

244253
It("works with service offering ID and template name", func() {
245-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).Return("", -1, notFoundError)
246-
sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering).Return(&cloudstack.ServiceOffering{}, 1, nil)
247-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).
248-
Return(dummies.CSMachine1.Spec.Template, 1, nil)
254+
dummies.CSMachine1.Spec.Offering.ID = offeringFakeID
255+
dummies.CSMachine1.Spec.Template.ID = ""
256+
dummies.CSMachine1.Spec.Offering.Name = ""
257+
dummies.CSMachine1.Spec.Template.Name = "template"
258+
259+
sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering.ID).Return(&cloudstack.ServiceOffering{}, 1, nil)
260+
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template.Name, allFilter, dummies.Zone1.ID).
261+
Return(templateFakeID, 1, nil)
262+
//ts.EXPECT().GetTemplateByID(templateFakeID, allFilter).Return(&cloudstack.Template{}, 1, nil)
249263

250264
ActionAndAssert()
251265
})
252266

253267
It("works with service offering name and template ID", func() {
254-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).Return(dummies.CSMachine1.Spec.Offering, 1, nil)
255-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).
256-
Return("", -1, notFoundError)
257-
ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template, allFilter).
258-
Return(&cloudstack.Template{}, 1, nil)
268+
dummies.CSMachine1.Spec.Offering.ID = ""
269+
dummies.CSMachine1.Spec.Template.ID = templateFakeID
270+
dummies.CSMachine1.Spec.Offering.Name = "offering"
271+
dummies.CSMachine1.Spec.Template.Name = ""
272+
273+
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering.Name).Return(offeringFakeID, 1, nil)
274+
//sos.EXPECT().GetServiceOfferingByID(offeringFakeID).Return(&cloudstack.ServiceOffering{}, 1, nil)
275+
ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template.ID, allFilter).Return(&cloudstack.Template{}, 1, nil)
259276

260277
ActionAndAssert()
261278
})
262279

263280
It("works with service offering ID and template ID", func() {
264-
sos.EXPECT().GetServiceOfferingID(dummies.CSMachine1.Spec.Offering).Return("", -1, notFoundError)
265-
sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering).Return(&cloudstack.ServiceOffering{}, 1, nil)
266-
ts.EXPECT().GetTemplateID(dummies.CSMachine1.Spec.Template, allFilter, dummies.Zone1.ID).
267-
Return("", -1, notFoundError)
268-
ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template, allFilter).
269-
Return(&cloudstack.Template{}, 1, nil)
281+
dummies.CSMachine1.Spec.Offering.ID = offeringFakeID
282+
dummies.CSMachine1.Spec.Template.ID = templateFakeID
283+
dummies.CSMachine1.Spec.Offering.Name = ""
284+
dummies.CSMachine1.Spec.Template.Name = ""
285+
286+
sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering.ID).Return(&cloudstack.ServiceOffering{}, 1, nil)
287+
ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template.ID, allFilter).Return(&cloudstack.Template{}, 1, nil)
288+
289+
ActionAndAssert()
290+
})
291+
292+
It("works with Id and name both provided", func() {
293+
dummies.CSMachine1.Spec.Offering.ID = offeringFakeID
294+
dummies.CSMachine1.Spec.Template.ID = templateFakeID
295+
dummies.CSMachine1.Spec.Offering.Name = "offering"
296+
dummies.CSMachine1.Spec.Template.Name = "template"
297+
298+
sos.EXPECT().GetServiceOfferingByID(dummies.CSMachine1.Spec.Offering.ID).Return(&cloudstack.ServiceOffering{}, 1, nil)
299+
ts.EXPECT().GetTemplateByID(dummies.CSMachine1.Spec.Template.ID, allFilter).Return(&cloudstack.Template{}, 1, nil)
270300

271301
ActionAndAssert()
272302
})

pkg/webhookutil/webhook_validators.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func EnsureStringFieldsAreEqual(new string, old string, name string, allErrs fie
4747

4848
func EnsureBothFieldsAreEqual(new1 string, new2 string, old1 string, old2 string, name string, allErrs field.ErrorList) field.ErrorList {
4949
if new1 != old1 || new2 != old2 {
50-
allErrs = append(allErrs, field.Required(field.NewPath("spec", name), name))
50+
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", name), name))
5151
}
5252
return allErrs
5353
}

0 commit comments

Comments
 (0)