diff --git a/proxmoxtf/resource_virtual_environment_vm.go b/proxmoxtf/resource_virtual_environment_vm.go index 37e58b8d..378a1feb 100644 --- a/proxmoxtf/resource_virtual_environment_vm.go +++ b/proxmoxtf/resource_virtual_environment_vm.go @@ -3515,7 +3515,12 @@ func resourceVirtualEnvironmentVMUpdateDiskLocationAndSize(d *schema.ResourceDat diskNewBlock := diskNewEntries[i].(map[string]interface{}) diskOldDatastoreID := diskOldBlock[mkResourceVirtualEnvironmentVMDiskDatastoreID].(string) - diskOldName := diskOldBlock[mkResourcevirtualEnvironmentVMDiskInterface].(string) + diskOldInterface := diskOldBlock[mkResourcevirtualEnvironmentVMDiskInterface].(string) + diskNewInterface := diskNewBlock[mkResourcevirtualEnvironmentVMDiskInterface].(string) + + if diskNewInterface != diskOldInterface { + return fmt.Errorf("Alteration of disk interface is not supported. Old Interface was %s", diskOldInterface) + } diskNewDatastoreID := diskNewBlock[mkResourceVirtualEnvironmentVMDiskDatastoreID].(string) @@ -3524,7 +3529,7 @@ func resourceVirtualEnvironmentVMUpdateDiskLocationAndSize(d *schema.ResourceDat diskMoveBodies = append(diskMoveBodies, &proxmox.VirtualEnvironmentVMMoveDiskRequestBody{ DeleteOriginalDisk: &deleteOriginalDisk, - Disk: diskOldName, + Disk: diskOldInterface, TargetStorage: diskNewDatastoreID, }) } @@ -3532,9 +3537,9 @@ func resourceVirtualEnvironmentVMUpdateDiskLocationAndSize(d *schema.ResourceDat diskOldSize := diskOldBlock[mkResourceVirtualEnvironmentVMDiskSize].(int) diskNewSize := diskNewBlock[mkResourceVirtualEnvironmentVMDiskSize].(int) - if diskOldSize != diskNewSize { + if diskOldSize <= diskNewSize { diskResizeBodies = append(diskResizeBodies, &proxmox.VirtualEnvironmentVMResizeDiskRequestBody{ - Disk: diskOldName, + Disk: diskOldInterface, Size: fmt.Sprintf("%dG", diskNewSize), }) }