0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-03 03:52:58 +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.
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)
timeMax := float64(timeout)
timeStart := time.Now()
@ -202,10 +202,10 @@ func (c *VirtualEnvironmentClient) WaitForVMConfigUnlock(nodeName string, vmID i
data, err := c.GetVMStatus(nodeName, vmID)
if err != nil {
return err
}
if data.Lock == nil || *data.Lock == "" {
if !ignoreErrorResponse {
return err
}
} else if data.Lock == nil || *data.Lock == "" {
return nil
}

View File

@ -1007,7 +1007,8 @@ func resourceVirtualEnvironmentVMCreateClone(d *schema.ResourceData, m interface
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 {
return err