mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-07-01 02:52:58 +00:00
feat(vm): add configurable timeout for VM create operation (#648)
Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
This commit is contained in:
parent
1d428da8c1
commit
a30f96c348
@ -454,6 +454,8 @@ output "ubuntu_vm_public_key" {
|
|||||||
- `template` - (Optional) Whether to create a template (defaults to `false`).
|
- `template` - (Optional) Whether to create a template (defaults to `false`).
|
||||||
- `timeout_clone` - (Optional) Timeout for cloning a VM in seconds (defaults to
|
- `timeout_clone` - (Optional) Timeout for cloning a VM in seconds (defaults to
|
||||||
1800).
|
1800).
|
||||||
|
- `timeout_create` - (Optional) Timeout for creating a VM in seconds (defaults to
|
||||||
|
1800).
|
||||||
- `timeout_move_disk` - (Optional) Timeout for moving the disk of a VM in
|
- `timeout_move_disk` - (Optional) Timeout for moving the disk of a VM in
|
||||||
seconds (defaults to 1800).
|
seconds (defaults to 1800).
|
||||||
- `timeout_migrate` - (Optional) Timeout for migrating the VM (defaults to
|
- `timeout_migrate` - (Optional) Timeout for migrating the VM (defaults to
|
||||||
@ -536,7 +538,6 @@ attaching one disk to multiple VM will cause errors or even data corruption.
|
|||||||
Do *not* move or resize `data_vm` disks.
|
Do *not* move or resize `data_vm` disks.
|
||||||
(Resource `data_user_vm` should reject attempts to move or resize non-owned disks.)
|
(Resource `data_user_vm` should reject attempts to move or resize non-owned disks.)
|
||||||
|
|
||||||
|
|
||||||
```terraform
|
```terraform
|
||||||
resource "proxmox_virtual_environment_vm" "data_vm" {
|
resource "proxmox_virtual_environment_vm" "data_vm" {
|
||||||
node_name = "first-node"
|
node_name = "first-node"
|
||||||
|
@ -124,6 +124,7 @@ const (
|
|||||||
dvResourceVirtualEnvironmentVMTabletDevice = true
|
dvResourceVirtualEnvironmentVMTabletDevice = true
|
||||||
dvResourceVirtualEnvironmentVMTemplate = false
|
dvResourceVirtualEnvironmentVMTemplate = false
|
||||||
dvResourceVirtualEnvironmentVMTimeoutClone = 1800
|
dvResourceVirtualEnvironmentVMTimeoutClone = 1800
|
||||||
|
dvResourceVirtualEnvironmentVMTimeoutCreate = 1800
|
||||||
dvResourceVirtualEnvironmentVMTimeoutMoveDisk = 1800
|
dvResourceVirtualEnvironmentVMTimeoutMoveDisk = 1800
|
||||||
dvResourceVirtualEnvironmentVMTimeoutMigrate = 1800
|
dvResourceVirtualEnvironmentVMTimeoutMigrate = 1800
|
||||||
dvResourceVirtualEnvironmentVMTimeoutReboot = 1800
|
dvResourceVirtualEnvironmentVMTimeoutReboot = 1800
|
||||||
@ -272,6 +273,7 @@ const (
|
|||||||
mkResourceVirtualEnvironmentVMTags = "tags"
|
mkResourceVirtualEnvironmentVMTags = "tags"
|
||||||
mkResourceVirtualEnvironmentVMTemplate = "template"
|
mkResourceVirtualEnvironmentVMTemplate = "template"
|
||||||
mkResourceVirtualEnvironmentVMTimeoutClone = "timeout_clone"
|
mkResourceVirtualEnvironmentVMTimeoutClone = "timeout_clone"
|
||||||
|
mkResourceVirtualEnvironmentVMTimeoutCreate = "timeout_create"
|
||||||
mkResourceVirtualEnvironmentVMTimeoutMoveDisk = "timeout_move_disk"
|
mkResourceVirtualEnvironmentVMTimeoutMoveDisk = "timeout_move_disk"
|
||||||
mkResourceVirtualEnvironmentVMTimeoutMigrate = "timeout_migrate"
|
mkResourceVirtualEnvironmentVMTimeoutMigrate = "timeout_migrate"
|
||||||
mkResourceVirtualEnvironmentVMTimeoutReboot = "timeout_reboot"
|
mkResourceVirtualEnvironmentVMTimeoutReboot = "timeout_reboot"
|
||||||
@ -284,8 +286,6 @@ const (
|
|||||||
mkResourceVirtualEnvironmentVMVGAType = "type"
|
mkResourceVirtualEnvironmentVMVGAType = "type"
|
||||||
mkResourceVirtualEnvironmentVMVMID = "vm_id"
|
mkResourceVirtualEnvironmentVMVMID = "vm_id"
|
||||||
mkResourceVirtualEnvironmentVMSCSIHardware = "scsi_hardware"
|
mkResourceVirtualEnvironmentVMSCSIHardware = "scsi_hardware"
|
||||||
|
|
||||||
vmCreateTimeoutSeconds = 10
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// VM returns a resource that manages VMs.
|
// VM returns a resource that manages VMs.
|
||||||
@ -1398,6 +1398,12 @@ func VM() *schema.Resource {
|
|||||||
Optional: true,
|
Optional: true,
|
||||||
Default: dvResourceVirtualEnvironmentVMTimeoutClone,
|
Default: dvResourceVirtualEnvironmentVMTimeoutClone,
|
||||||
},
|
},
|
||||||
|
mkResourceVirtualEnvironmentVMTimeoutCreate: {
|
||||||
|
Type: schema.TypeInt,
|
||||||
|
Description: "Create VM timeout",
|
||||||
|
Optional: true,
|
||||||
|
Default: dvResourceVirtualEnvironmentVMTimeoutCreate,
|
||||||
|
},
|
||||||
mkResourceVirtualEnvironmentVMTimeoutMoveDisk: {
|
mkResourceVirtualEnvironmentVMTimeoutMoveDisk: {
|
||||||
Type: schema.TypeInt,
|
Type: schema.TypeInt,
|
||||||
Description: "MoveDisk timeout",
|
Description: "MoveDisk timeout",
|
||||||
@ -2607,7 +2613,9 @@ func vmCreateCustom(ctx context.Context, d *schema.ResourceData, m interface{})
|
|||||||
createBody.PoolID = &poolID
|
createBody.PoolID = &poolID
|
||||||
}
|
}
|
||||||
|
|
||||||
err = api.Node(nodeName).VM(0).CreateVM(ctx, createBody, vmCreateTimeoutSeconds)
|
createTimeout := d.Get(mkResourceVirtualEnvironmentVMTimeoutClone).(int)
|
||||||
|
|
||||||
|
err = api.Node(nodeName).VM(0).CreateVM(ctx, createBody, createTimeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return diag.FromErr(err)
|
return diag.FromErr(err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user