0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-03 20:12:59 +00:00

Wait for VM creation while waiting for VM configuration lock to be released

This commit is contained in:
Dan Petersen 2020-01-21 20:48:00 +01:00
parent c4c31cdf96
commit bec026361d
2 changed files with 7 additions and 6 deletions

View File

@ -191,7 +191,7 @@ func (c *VirtualEnvironmentClient) WaitForNoNetworkInterfacesFromVMAgent(nodeNam
} }
// WaitForVMConfigUnlock waits for a virtual machine configuration to become unlocked. // WaitForVMConfigUnlock waits for a virtual machine configuration to become unlocked.
func (c *VirtualEnvironmentClient) WaitForVMConfigUnlock(nodeName string, vmID int, timeout int, delay int) error { func (c *VirtualEnvironmentClient) WaitForVMConfigUnlock(nodeName string, vmID int, timeout int, delay int, ignoreErrorResponse bool) error {
timeDelay := int64(delay) timeDelay := int64(delay)
timeMax := float64(timeout) timeMax := float64(timeout)
timeStart := time.Now() timeStart := time.Now()
@ -202,10 +202,10 @@ func (c *VirtualEnvironmentClient) WaitForVMConfigUnlock(nodeName string, vmID i
data, err := c.GetVMStatus(nodeName, vmID) data, err := c.GetVMStatus(nodeName, vmID)
if err != nil { if err != nil {
if !ignoreErrorResponse {
return err return err
} }
} else if data.Lock == nil || *data.Lock == "" {
if data.Lock == nil || *data.Lock == "" {
return nil return nil
} }

View File

@ -1007,7 +1007,8 @@ func resourceVirtualEnvironmentVMCreateClone(d *schema.ResourceData, m interface
d.SetId(strconv.Itoa(vmID)) d.SetId(strconv.Itoa(vmID))
err = veClient.WaitForVMConfigUnlock(nodeName, vmID, 300, 5) // Wait for the virtual machine to be created and its configuration lock to be released.
err = veClient.WaitForVMConfigUnlock(nodeName, vmID, 600, 5, true)
if err != nil { if err != nil {
return err return err