Skip to content

Commit 01e4614

Browse files
authored
Merge pull request #1 from wanyufe/add-datadisk-parameter
Adding volume type parameter to work for cloudstack 4.16
2 parents 548d849 + b00d7f5 commit 01e4614

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

pkg/cloud/instance.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ func (c *client) GetOrCreateVMInstance(
274274
func (c *client) DestroyVMInstance(csMachine *infrav1.CloudStackMachine) error {
275275
// Attempt deletion regardless of machine state.
276276
p := c.csAsync.VirtualMachine.NewDestroyVirtualMachineParams(*csMachine.Spec.InstanceID)
277-
volIDs, err := c.listVMInstanceVolumeIDs(*csMachine.Spec.InstanceID)
277+
volIDs, err := c.listVMInstanceDatadiskVolumeIDs(*csMachine.Spec.InstanceID)
278278
if err != nil {
279279
return err
280280
}
@@ -303,9 +303,11 @@ func (c *client) DestroyVMInstance(csMachine *infrav1.CloudStackMachine) error {
303303
return errors.New("VM deletion in progress")
304304
}
305305

306-
func (c *client) listVMInstanceVolumeIDs(instanceID string) ([]string, error) {
306+
func (c *client) listVMInstanceDatadiskVolumeIDs(instanceID string) ([]string, error) {
307307
p := c.cs.Volume.NewListVolumesParams()
308308
p.SetVirtualmachineid(instanceID)
309+
// VM root volumes are destroyed automatically, no need to explicitly include
310+
p.SetType("DATADISK")
309311

310312
listVOLResp, err := c.csAsync.Volume.ListVolumes(p)
311313
if err != nil {

pkg/cloud/instance_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ var _ = Describe("Instance", func() {
439439

440440
It("calls destroy and finds VM doesn't exist, then returns nil", func() {
441441
listVolumesParams.SetVirtualmachineid(*dummies.CSMachine1.Spec.InstanceID)
442+
listVolumesParams.SetType("DATADISK")
442443
vms.EXPECT().NewDestroyVirtualMachineParams(*dummies.CSMachine1.Spec.InstanceID).
443444
Return(expungeDestroyParams)
444445
vms.EXPECT().DestroyVirtualMachine(expungeDestroyParams).Return(nil, fmt.Errorf("unable to find uuid for id"))
@@ -450,6 +451,7 @@ var _ = Describe("Instance", func() {
450451

451452
It("calls destroy and returns unexpected error", func() {
452453
listVolumesParams.SetVirtualmachineid(*dummies.CSMachine1.Spec.InstanceID)
454+
listVolumesParams.SetType("DATADISK")
453455
vms.EXPECT().NewDestroyVirtualMachineParams(*dummies.CSMachine1.Spec.InstanceID).
454456
Return(expungeDestroyParams)
455457
vms.EXPECT().DestroyVirtualMachine(expungeDestroyParams).Return(nil, fmt.Errorf("new error"))
@@ -460,6 +462,7 @@ var _ = Describe("Instance", func() {
460462

461463
It("calls destroy without error but cannot resolve VM after", func() {
462464
listVolumesParams.SetVirtualmachineid(*dummies.CSMachine1.Spec.InstanceID)
465+
listVolumesParams.SetType("DATADISK")
463466
vms.EXPECT().NewDestroyVirtualMachineParams(*dummies.CSMachine1.Spec.InstanceID).
464467
Return(expungeDestroyParams)
465468
vms.EXPECT().DestroyVirtualMachine(expungeDestroyParams).Return(nil, nil)
@@ -473,6 +476,7 @@ var _ = Describe("Instance", func() {
473476

474477
It("calls destroy without error and identifies it as expunging", func() {
475478
listVolumesParams.SetVirtualmachineid(*dummies.CSMachine1.Spec.InstanceID)
479+
listVolumesParams.SetType("DATADISK")
476480
vms.EXPECT().NewDestroyVirtualMachineParams(*dummies.CSMachine1.Spec.InstanceID).
477481
Return(expungeDestroyParams)
478482
vms.EXPECT().DestroyVirtualMachine(expungeDestroyParams).Return(nil, nil)
@@ -488,6 +492,7 @@ var _ = Describe("Instance", func() {
488492

489493
It("calls destroy without error and identifies it as expunged", func() {
490494
listVolumesParams.SetVirtualmachineid(*dummies.CSMachine1.Spec.InstanceID)
495+
listVolumesParams.SetType("DATADISK")
491496
vms.EXPECT().NewDestroyVirtualMachineParams(*dummies.CSMachine1.Spec.InstanceID).
492497
Return(expungeDestroyParams)
493498
vms.EXPECT().DestroyVirtualMachine(expungeDestroyParams).Return(nil, nil)
@@ -503,6 +508,7 @@ var _ = Describe("Instance", func() {
503508

504509
It("calls destroy without error and identifies it as stopping", func() {
505510
listVolumesParams.SetVirtualmachineid(*dummies.CSMachine1.Spec.InstanceID)
511+
listVolumesParams.SetType("DATADISK")
506512
vms.EXPECT().NewDestroyVirtualMachineParams(*dummies.CSMachine1.Spec.InstanceID).
507513
Return(expungeDestroyParams)
508514
vms.EXPECT().DestroyVirtualMachine(expungeDestroyParams).Return(nil, nil)

0 commit comments

Comments
 (0)