diff --git a/proxmox/resource_lxc.go b/proxmox/resource_lxc.go index 2be6037..f2ec98b 100644 --- a/proxmox/resource_lxc.go +++ b/proxmox/resource_lxc.go @@ -177,11 +177,11 @@ func resourceLxc() *schema.Resource { Optional: true, }, "gw": { - Type: schema.TypeBool, + Type: schema.TypeString, Optional: true, }, "gw6": { - Type: schema.TypeBool, + Type: schema.TypeString, Optional: true, }, "hwaddr": { @@ -519,8 +519,10 @@ func resourceLxcRead(d *schema.ResourceData, meta interface{}) error { d.Set("description", config.Description) defaultFeatures := d.Get("features").(*schema.Set) - featuresWithDefaults := UpdateDeviceConfDefaults(config.Features, defaultFeatures) - d.Set("features", featuresWithDefaults) + if len(defaultFeatures.List()) > 0 { + featuresWithDefaults := UpdateDeviceConfDefaults(config.Features, defaultFeatures) + d.Set("features", featuresWithDefaults) + } d.Set("force", config.Force) d.Set("hookscript", config.Hookscript) diff --git a/proxmox/resource_vm_qemu.go b/proxmox/resource_vm_qemu.go index 6b56daa..7df9134 100644 --- a/proxmox/resource_vm_qemu.go +++ b/proxmox/resource_vm_qemu.go @@ -71,6 +71,12 @@ func resourceVmQemu() *schema.Resource { Optional: true, ForceNew: true, }, + "full_clone": { + Type: schema.TypeBool, + Optional: true, + ForceNew: true, + Default: true, + }, "qemu_os": { Type: schema.TypeString, Optional: true, @@ -381,6 +387,10 @@ func resourceVmQemu() *schema.Resource { Type: schema.TypeString, Optional: true, }, + "ipconfig2": { + Type: schema.TypeString, + Optional: true, + }, "preprovision": { Type: schema.TypeBool, Optional: true, @@ -443,6 +453,7 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error { Sshkeys: d.Get("sshkeys").(string), Ipconfig0: d.Get("ipconfig0").(string), Ipconfig1: d.Get("ipconfig1").(string), + Ipconfig2: d.Get("ipconfig2").(string), // Deprecated single disk config. Storage: d.Get("storage").(string), DiskSize: d.Get("disk_gb").(float64), @@ -486,6 +497,12 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error { // check if ISO or clone if d.Get("clone").(string) != "" { + fullClone := 1 + if !d.Get("full_clone").(bool) { + fullClone = 0 + } + config.FullClone = &fullClone + sourceVmr, err := client.GetVmRefByName(d.Get("clone").(string)) if err != nil { pmParallelEnd(pconf) @@ -608,6 +625,7 @@ func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error { Sshkeys: d.Get("sshkeys").(string), Ipconfig0: d.Get("ipconfig0").(string), Ipconfig1: d.Get("ipconfig1").(string), + Ipconfig2: d.Get("ipconfig2").(string), // Deprecated single disk config. Storage: d.Get("storage").(string), DiskSize: d.Get("disk_gb").(float64), @@ -700,6 +718,7 @@ func resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error { d.Set("sshkeys", config.Sshkeys) d.Set("ipconfig0", config.Ipconfig0) d.Set("ipconfig1", config.Ipconfig1) + d.Set("ipconfig2", config.Ipconfig2) // Disks. configDisksSet := d.Get("disk").(*schema.Set) activeDisksSet := UpdateDevicesSet(configDisksSet, config.QemuDisks)