mirror of
https://github.com/letic/terraform-provider-proxmox.git
synced 2024-09-27 21:46:01 +00:00
Merge pull request #130 from V-Paranoiaque/feature/display
Add support to configure the display
This commit is contained in:
commit
7af54b3649
@ -136,6 +136,14 @@ resource "proxmox_vm_qemu" "prepprovision-test" {
|
||||
bootdisk = "virtio0"
|
||||
# HA, you need to use a shared disk for this feature (ex: rbd)
|
||||
hastate = ""
|
||||
|
||||
#Display
|
||||
vga {
|
||||
type = "std"
|
||||
#Between 4 and 512, ignored if type is defined to serial
|
||||
memory = 4
|
||||
}
|
||||
|
||||
network {
|
||||
id = 0
|
||||
model = "virtio"
|
||||
|
2
go.mod
2
go.mod
@ -3,6 +3,6 @@ module github.com/Telmate/terraform-provider-proxmox
|
||||
go 1.13
|
||||
|
||||
require (
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191211195942-8274aed79394
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191217000250-7338ae30b9b0
|
||||
github.com/hashicorp/terraform v0.12.10
|
||||
)
|
||||
|
12
go.sum
12
go.sum
@ -15,16 +15,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022 h1:y8Gs8CzNfDF5AZvjr+5UyGQvQEBL7pwo+v+wX6q9JI8=
|
||||
github.com/ChrisTrenkamp/goxpath v0.0.0-20170922090931-c385f95c6022/go.mod h1:nuWgzSkT5PnyOd+272uUmV0dnAnAn42Mk7PiQC5VzN4=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191014161547-75a2e0ff0773 h1:DZbCgi+04kVDvo72U+Zazf00VQXt8J2bBn6iuQ1mYUU=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191014161547-75a2e0ff0773/go.mod h1:OGWyIMJ87/k/GCz8CGiWB2HOXsOVDM6Lpe/nFPkC4IQ=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191104165655-ab21e7f8ad14 h1:5YRnEl50jAmeO/kZ/LJN/q3oPoXYcCD/IUGZfog5yN8=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191104165655-ab21e7f8ad14/go.mod h1:OGWyIMJ87/k/GCz8CGiWB2HOXsOVDM6Lpe/nFPkC4IQ=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191202165429-ba1b7dd050aa h1:Ypr/7Agl67RX/6iQ3fW+tHJPul14xFwttXC0d5xNdxg=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191202165429-ba1b7dd050aa/go.mod h1:OGWyIMJ87/k/GCz8CGiWB2HOXsOVDM6Lpe/nFPkC4IQ=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191206171242-991c5ce7826d h1:OPRNmtQcU2EvGndXfW+G/rg3DYAxSoyHbWGCdG48Vg0=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191206171242-991c5ce7826d/go.mod h1:OGWyIMJ87/k/GCz8CGiWB2HOXsOVDM6Lpe/nFPkC4IQ=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191211195942-8274aed79394 h1:Alx7LVwIL9AyOLsxPmseNDlWNS8wlfUF4bgv6mAcUD0=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191211195942-8274aed79394/go.mod h1:OGWyIMJ87/k/GCz8CGiWB2HOXsOVDM6Lpe/nFPkC4IQ=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191217000250-7338ae30b9b0 h1:nESOoKXlWq5ontBddqvZVUsEtFusVUYMUUtdwRZ1QwI=
|
||||
github.com/Telmate/proxmox-api-go v0.0.0-20191217000250-7338ae30b9b0/go.mod h1:OGWyIMJ87/k/GCz8CGiWB2HOXsOVDM6Lpe/nFPkC4IQ=
|
||||
github.com/Unknwon/com v0.0.0-20151008135407-28b053d5a292/go.mod h1:KYCjqMOeHpNuTOiFQU6WEcTG7poCJrUs0YgyHNtn1no=
|
||||
github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw=
|
||||
github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||
|
@ -136,6 +136,23 @@ func resourceVmQemu() *schema.Resource {
|
||||
Optional: true,
|
||||
Default: "",
|
||||
},
|
||||
"vga": &schema.Schema{
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Resource{
|
||||
Schema: map[string]*schema.Schema{
|
||||
"type": {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
Default: "std",
|
||||
},
|
||||
"memory": {
|
||||
Type: schema.TypeInt,
|
||||
Optional: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
"network": &schema.Schema{
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
@ -468,6 +485,8 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {
|
||||
pmParallelBegin(pconf)
|
||||
client := pconf.Client
|
||||
vmName := d.Get("name").(string)
|
||||
vga := d.Get("vga").(*schema.Set)
|
||||
qemuVgaList := vga.List()
|
||||
networks := d.Get("network").(*schema.Set)
|
||||
qemuNetworks := DevicesSetToMap(networks)
|
||||
disks := d.Get("disk").(*schema.Set)
|
||||
@ -515,6 +534,9 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {
|
||||
QemuVlanTag: d.Get("vlan").(int),
|
||||
QemuMacAddr: d.Get("mac").(string),
|
||||
}
|
||||
if len(qemuVgaList) > 0 {
|
||||
config.QemuVga = qemuVgaList[0].(map[string]interface{})
|
||||
}
|
||||
log.Print("[DEBUG] checking for duplicate name")
|
||||
dupVmr, _ := client.GetVmRefByName(vmName)
|
||||
|
||||
@ -650,6 +672,8 @@ func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error {
|
||||
}
|
||||
configDisksSet := d.Get("disk").(*schema.Set)
|
||||
qemuDisks := DevicesSetToMap(configDisksSet)
|
||||
vga := d.Get("vga").(*schema.Set)
|
||||
qemuVgaList := vga.List()
|
||||
configNetworksSet := d.Get("network").(*schema.Set)
|
||||
qemuNetworks := DevicesSetToMap(configNetworksSet)
|
||||
serials := d.Get("serial").(*schema.Set)
|
||||
@ -707,6 +731,9 @@ func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error {
|
||||
QemuVlanTag: d.Get("vlan").(int),
|
||||
QemuMacAddr: d.Get("mac").(string),
|
||||
}
|
||||
if len(qemuVgaList) > 0 {
|
||||
config.QemuVga = qemuVgaList[0].(map[string]interface{})
|
||||
}
|
||||
|
||||
err = config.UpdateConfig(vmr, client)
|
||||
if err != nil {
|
||||
@ -799,6 +826,11 @@ func resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error {
|
||||
configDisksSet := d.Get("disk").(*schema.Set)
|
||||
activeDisksSet := UpdateDevicesSet(configDisksSet, config.QemuDisks)
|
||||
d.Set("disk", activeDisksSet)
|
||||
// Display.
|
||||
activeVgaSet := d.Get("vga").(*schema.Set)
|
||||
if len(activeVgaSet.List()) > 0 {
|
||||
d.Set("features", UpdateDeviceConfDefaults(config.QemuVga, activeVgaSet))
|
||||
}
|
||||
// Networks.
|
||||
configNetworksSet := d.Get("network").(*schema.Set)
|
||||
activeNetworksSet := UpdateDevicesSet(configNetworksSet, config.QemuNetworks)
|
||||
|
Loading…
Reference in New Issue
Block a user