From 47ddee58b5d8cfe2919640148cae45172cc36cc2 Mon Sep 17 00:00:00 2001 From: Andrzej Ressel Date: Sat, 12 Jan 2019 19:04:16 +0100 Subject: [PATCH 1/2] Show message when neither clone nor iso is set --- proxmox/resource_vm_qemu.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proxmox/resource_vm_qemu.go b/proxmox/resource_vm_qemu.go index 978f1b1..134b76d 100644 --- a/proxmox/resource_vm_qemu.go +++ b/proxmox/resource_vm_qemu.go @@ -421,6 +421,8 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error { pmParallelEnd(pconf) return err } + } else { + return fmt.Errorf("Either clone or iso must be set") } } else { log.Printf("[DEBUG] recycling VM vmId: %d", vmr.VmId()) From 4c8997ba6e00168568314bbb851f3171ba0c58ea Mon Sep 17 00:00:00 2001 From: Andrzej Ressel Date: Wed, 30 Jan 2019 21:25:00 +0100 Subject: [PATCH 2/2] Fix VM name changing Also use id instead of name when updating/reading --- proxmox/resource_vm_qemu.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/proxmox/resource_vm_qemu.go b/proxmox/resource_vm_qemu.go index 134b76d..b6bf3f3 100644 --- a/proxmox/resource_vm_qemu.go +++ b/proxmox/resource_vm_qemu.go @@ -471,19 +471,24 @@ func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error { pconf := meta.(*providerConfiguration) pmParallelBegin(pconf) client := pconf.Client - vmr, err := client.GetVmRefByName(d.Get("name").(string)) + _, _, vmID, err := parseResourceId(d.Id()) + if err != nil { + pmParallelEnd(pconf) + return err + } + vmr := pxapi.NewVmRef(vmID) + _, err = client.GetVmInfo(vmr) if err != nil { pmParallelEnd(pconf) return err } - vmName := d.Get("name").(string) configDisksSet := d.Get("disk").(*schema.Set) qemuDisks := devicesSetToMap(configDisksSet) configNetworksSet := d.Get("network").(*schema.Set) qemuNetworks := devicesSetToMap(configNetworksSet) config := pxapi.ConfigQemu{ - Name: vmName, + Name: d.Get("name").(string), Description: d.Get("desc").(string), Onboot: d.Get("onboot").(bool), Memory: d.Get("memory").(int), @@ -551,8 +556,15 @@ func resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error { pconf := meta.(*providerConfiguration) pmParallelBegin(pconf) client := pconf.Client - vmr, err := client.GetVmRefByName(d.Get("name").(string)) + _, _, vmID, err := parseResourceId(d.Id()) if err != nil { + pmParallelEnd(pconf) + return err + } + vmr := pxapi.NewVmRef(vmID) + _, err = client.GetVmInfo(vmr) + if err != nil { + pmParallelEnd(pconf) return err } config, err := pxapi.NewConfigQemuFromApi(vmr, client)