mirror of
https://github.com/letic/terraform-provider-proxmox.git
synced 2024-07-01 07:02:40 +00:00
Merge pull request #73 from V-Paranoiaque/feature/serial
Add support for serial devices
This commit is contained in:
commit
68c41fc4a9
|
@ -144,6 +144,12 @@ resource "proxmox_vm_qemu" "prepprovision-test" {
|
|||
size = 4G
|
||||
backup = true
|
||||
}
|
||||
# Serial interface of type socket is used by xterm.js
|
||||
# You will need to configure your guest system before being able to use it
|
||||
serial {
|
||||
id = 0
|
||||
type = "socket"
|
||||
}
|
||||
preprovision = true
|
||||
ssh_forward_ip = "10.0.0.1"
|
||||
ssh_user = "terraform"
|
||||
|
|
|
@ -274,6 +274,22 @@ func resourceVmQemu() *schema.Resource {
|
|||
return strings.TrimSpace(old) == strings.TrimSpace(new)
|
||||
},
|
||||
},
|
||||
"serial": &schema.Schema{
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
Elem: &schema.Resource{
|
||||
Schema: map[string]*schema.Schema{
|
||||
"id": &schema.Schema{
|
||||
Type: schema.TypeInt,
|
||||
Required: true,
|
||||
},
|
||||
"type": &schema.Schema{
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
"os_type": {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
|
@ -375,6 +391,8 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {
|
|||
qemuNetworks := DevicesSetToMap(networks)
|
||||
disks := d.Get("disk").(*schema.Set)
|
||||
qemuDisks := DevicesSetToMap(disks)
|
||||
serials := d.Get("serial").(*schema.Set)
|
||||
qemuSerials := DevicesSetToMap(serials)
|
||||
|
||||
config := pxapi.ConfigQemu{
|
||||
Name: vmName,
|
||||
|
@ -390,6 +408,7 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {
|
|||
QemuOs: d.Get("qemu_os").(string),
|
||||
QemuNetworks: qemuNetworks,
|
||||
QemuDisks: qemuDisks,
|
||||
QemuSerials: qemuSerials,
|
||||
// Cloud-init.
|
||||
CIuser: d.Get("ciuser").(string),
|
||||
CIpassword: d.Get("cipassword").(string),
|
||||
|
@ -534,6 +553,8 @@ func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error {
|
|||
qemuDisks := DevicesSetToMap(configDisksSet)
|
||||
configNetworksSet := d.Get("network").(*schema.Set)
|
||||
qemuNetworks := DevicesSetToMap(configNetworksSet)
|
||||
serials := d.Get("serial").(*schema.Set)
|
||||
qemuSerials := DevicesSetToMap(serials)
|
||||
|
||||
config := pxapi.ConfigQemu{
|
||||
Name: d.Get("name").(string),
|
||||
|
@ -549,6 +570,7 @@ func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error {
|
|||
QemuOs: d.Get("qemu_os").(string),
|
||||
QemuNetworks: qemuNetworks,
|
||||
QemuDisks: qemuDisks,
|
||||
QemuSerials: qemuSerials,
|
||||
// Cloud-init.
|
||||
CIuser: d.Get("ciuser").(string),
|
||||
CIpassword: d.Get("cipassword").(string),
|
||||
|
@ -664,6 +686,10 @@ func resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error {
|
|||
d.Set("vlan", config.QemuVlanTag)
|
||||
d.Set("mac", config.QemuMacAddr)
|
||||
d.Set("pool", vmr.Pool())
|
||||
//Serials
|
||||
configSerialsSet := d.Get("serial").(*schema.Set)
|
||||
activeSerialSet := UpdateDevicesSet(configSerialsSet, config.QemuSerials)
|
||||
d.Set("serial", activeSerialSet)
|
||||
|
||||
pmParallelEnd(pconf)
|
||||
return nil
|
||||
|
|
Loading…
Reference in New Issue
Block a user