mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-06-30 02:31:10 +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
@ -243,7 +243,7 @@ output "ubuntu_vm_public_key" {
|
||||
- `path_in_datastore` - (Optional) The in-datastore path to the disk image.
|
||||
***Experimental.***Use to attach another VM's disks,
|
||||
or (as root only) host's filesystem paths (`datastore_id` empty string).
|
||||
See "*Example: Attached disks*".
|
||||
See "*Example: Attached disks*".
|
||||
- `discard` - (Optional) Whether to pass discard/trim requests to the
|
||||
underlying storage. Supported values are `on`/`ignore` (defaults
|
||||
to `ignore`).
|
||||
@ -454,6 +454,8 @@ output "ubuntu_vm_public_key" {
|
||||
- `template` - (Optional) Whether to create a template (defaults to `false`).
|
||||
- `timeout_clone` - (Optional) Timeout for cloning a VM in seconds (defaults to
|
||||
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
|
||||
seconds (defaults to 1800).
|
||||
- `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.
|
||||
(Resource `data_user_vm` should reject attempts to move or resize non-owned disks.)
|
||||
|
||||
|
||||
```terraform
|
||||
resource "proxmox_virtual_environment_vm" "data_vm" {
|
||||
node_name = "first-node"
|
||||
|
@ -124,6 +124,7 @@ const (
|
||||
dvResourceVirtualEnvironmentVMTabletDevice = true
|
||||
dvResourceVirtualEnvironmentVMTemplate = false
|
||||
dvResourceVirtualEnvironmentVMTimeoutClone = 1800
|
||||
dvResourceVirtualEnvironmentVMTimeoutCreate = 1800
|
||||
dvResourceVirtualEnvironmentVMTimeoutMoveDisk = 1800
|
||||
dvResourceVirtualEnvironmentVMTimeoutMigrate = 1800
|
||||
dvResourceVirtualEnvironmentVMTimeoutReboot = 1800
|
||||
@ -272,6 +273,7 @@ const (
|
||||
mkResourceVirtualEnvironmentVMTags = "tags"
|
||||
mkResourceVirtualEnvironmentVMTemplate = "template"
|
||||
mkResourceVirtualEnvironmentVMTimeoutClone = "timeout_clone"
|
||||
mkResourceVirtualEnvironmentVMTimeoutCreate = "timeout_create"
|
||||
mkResourceVirtualEnvironmentVMTimeoutMoveDisk = "timeout_move_disk"
|
||||
mkResourceVirtualEnvironmentVMTimeoutMigrate = "timeout_migrate"
|
||||
mkResourceVirtualEnvironmentVMTimeoutReboot = "timeout_reboot"
|
||||
@ -284,8 +286,6 @@ const (
|
||||
mkResourceVirtualEnvironmentVMVGAType = "type"
|
||||
mkResourceVirtualEnvironmentVMVMID = "vm_id"
|
||||
mkResourceVirtualEnvironmentVMSCSIHardware = "scsi_hardware"
|
||||
|
||||
vmCreateTimeoutSeconds = 10
|
||||
)
|
||||
|
||||
// VM returns a resource that manages VMs.
|
||||
@ -1398,6 +1398,12 @@ func VM() *schema.Resource {
|
||||
Optional: true,
|
||||
Default: dvResourceVirtualEnvironmentVMTimeoutClone,
|
||||
},
|
||||
mkResourceVirtualEnvironmentVMTimeoutCreate: {
|
||||
Type: schema.TypeInt,
|
||||
Description: "Create VM timeout",
|
||||
Optional: true,
|
||||
Default: dvResourceVirtualEnvironmentVMTimeoutCreate,
|
||||
},
|
||||
mkResourceVirtualEnvironmentVMTimeoutMoveDisk: {
|
||||
Type: schema.TypeInt,
|
||||
Description: "MoveDisk timeout",
|
||||
@ -2607,7 +2613,9 @@ func vmCreateCustom(ctx context.Context, d *schema.ResourceData, m interface{})
|
||||
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 {
|
||||
return diag.FromErr(err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user