0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-01 11:02:59 +00:00

Minor fixes to VM cloning

This commit is contained in:
Dan Petersen 2020-01-19 19:26:49 +01:00
parent 94679a3f5e
commit cd64b66ad7

View File

@ -1038,9 +1038,10 @@ func resourceVirtualEnvironmentVMCreateClone(d *schema.ResourceData, m interface
updateBody := &proxmox.VirtualEnvironmentVMUpdateRequestBody{
AudioDevices: audioDevices,
Description: &description,
}
delete := []string{}
if acpi != dvResourceVirtualEnvironmentVMACPI {
updateBody.ACPI = &acpi
}
@ -1172,6 +1173,16 @@ func resourceVirtualEnvironmentVMCreateClone(d *schema.ResourceData, m interface
return err
}
for i := 0; i < len(updateBody.NetworkDevices); i++ {
if !updateBody.NetworkDevices[i].Enabled {
delete = append(delete, fmt.Sprintf("net%d", i))
}
}
for i := len(updateBody.NetworkDevices); i < maxNetworkDevices; i++ {
delete = append(delete, fmt.Sprintf("net%d", i))
}
updateBody.NetworkDevices = networkDeviceObjects
}
@ -1189,6 +1200,10 @@ func resourceVirtualEnvironmentVMCreateClone(d *schema.ResourceData, m interface
return err
}
for i := len(updateBody.SerialDevices); i < maxSerialDevices; i++ {
delete = append(delete, fmt.Sprintf("serial%d", i))
}
updateBody.SerialDevices = serialDevices
}
@ -1214,6 +1229,8 @@ func resourceVirtualEnvironmentVMCreateClone(d *schema.ResourceData, m interface
updateBody.VGADevice = vgaDevice
}
updateBody.Delete = delete
err = veClient.UpdateVM(nodeName, vmID, updateBody)
if err != nil {