0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-01 11:02:59 +00:00

Change state comparison and default values

This commit is contained in:
Dan Petersen 2019-12-31 01:40:51 +01:00
parent 38bec29683
commit 60a998cb09
10 changed files with 40 additions and 54 deletions

View File

@ -435,7 +435,7 @@ This resource doesn't expose any additional attributes.
* `started` - (Optional) Whether to start the virtual machine (defaults to `true`)
* `vga` - (Optional) The VGA configuration
* `enabled` - (Optional) Whether to enable the VGA device (defaults to `true`)
* `memory` - (Optional) The VGA memory in megabytes (4-512 MB)
* `memory` - (Optional) The VGA memory in megabytes (defaults to `16`)
* `type` - (Optional) The VGA type (defaults to `std`)
* `cirrus` - Cirrus (deprecated since QEMU 2.2)
* `qxl` - SPICE

View File

@ -89,7 +89,7 @@ func dataSourceVirtualEnvironmentGroupRead(d *schema.ResourceData, m interface{}
d.SetId(groupID)
aclParsed := make([]interface{}, 0)
aclParsed := []interface{}{}
for _, v := range acl {
if v.Type == "group" && v.UserOrGroupID == groupID {

View File

@ -47,7 +47,7 @@ func dataSourceVirtualEnvironmentRoleRead(d *schema.ResourceData, m interface{})
return err
}
privileges := schema.NewSet(schema.HashString, make([]interface{}, 0))
privileges := schema.NewSet(schema.HashString, []interface{}{})
if *accessRole != nil {
for _, v := range *accessRole {

View File

@ -63,7 +63,7 @@ func dataSourceVirtualEnvironmentRolesRead(d *schema.ResourceData, m interface{}
for i, v := range list {
if v.Privileges != nil {
p := schema.NewSet(schema.HashString, make([]interface{}, 0))
p := schema.NewSet(schema.HashString, []interface{}{})
for _, v := range *v.Privileges {
p.Add(v)

View File

@ -127,7 +127,7 @@ func dataSourceVirtualEnvironmentUserRead(d *schema.ResourceData, m interface{})
d.SetId(userID)
aclParsed := make([]interface{}, 0)
aclParsed := []interface{}{}
for _, v := range acl {
if v.Type == "user" && v.UserOrGroupID == userID {

View File

@ -31,7 +31,7 @@ func resourceVirtualEnvironmentGroup() *schema.Resource {
Description: "The access control list",
Optional: true,
DefaultFunc: func() (interface{}, error) {
return make([]interface{}, 0), nil
return []interface{}{}, nil
},
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
@ -158,7 +158,7 @@ func resourceVirtualEnvironmentGroupRead(d *schema.ResourceData, m interface{})
d.SetId(groupID)
aclParsed := make([]interface{}, 0)
aclParsed := []interface{}{}
for _, v := range acl {
if v.Type == "group" && v.UserOrGroupID == groupID {

View File

@ -92,7 +92,7 @@ func resourceVirtualEnvironmentRoleRead(d *schema.ResourceData, m interface{}) e
return err
}
privileges := schema.NewSet(schema.HashString, make([]interface{}, 0))
privileges := schema.NewSet(schema.HashString, []interface{}{})
if *role != nil {
for _, v := range *role {

View File

@ -45,7 +45,7 @@ func resourceVirtualEnvironmentUser() *schema.Resource {
Description: "The access control list",
Optional: true,
DefaultFunc: func() (interface{}, error) {
return make([]interface{}, 0), nil
return []interface{}{}, nil
},
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
@ -243,7 +243,7 @@ func resourceVirtualEnvironmentUserRead(d *schema.ResourceData, m interface{}) e
return err
}
aclParsed := make([]interface{}, 0)
aclParsed := []interface{}{}
for _, v := range acl {
if v.Type == "user" && v.UserOrGroupID == userID {
@ -295,7 +295,7 @@ func resourceVirtualEnvironmentUserRead(d *schema.ResourceData, m interface{}) e
d.Set(mkResourceVirtualEnvironmentUserFirstName, "")
}
groups := schema.NewSet(schema.HashString, make([]interface{}, 0))
groups := schema.NewSet(schema.HashString, []interface{}{})
if user.Groups != nil {
for _, v := range *user.Groups {

View File

@ -52,7 +52,7 @@ const (
dvResourceVirtualEnvironmentVMPoolID = ""
dvResourceVirtualEnvironmentVMStarted = true
dvResourceVirtualEnvironmentVMVGAEnabled = true
dvResourceVirtualEnvironmentVMVGAMemory = 0
dvResourceVirtualEnvironmentVMVGAMemory = 16
dvResourceVirtualEnvironmentVMVGAType = "std"
dvResourceVirtualEnvironmentVMVMID = -1
@ -1353,19 +1353,19 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
if vmConfig.Agent.Enabled != nil {
agent[mkResourceVirtualEnvironmentVMAgentEnabled] = bool(*vmConfig.Agent.Enabled)
} else {
agent[mkResourceVirtualEnvironmentVMAgentEnabled] = dvResourceVirtualEnvironmentVMAgentEnabled
agent[mkResourceVirtualEnvironmentVMAgentEnabled] = false
}
if vmConfig.Agent.TrimClonedDisks != nil {
agent[mkResourceVirtualEnvironmentVMAgentTrim] = bool(*vmConfig.Agent.TrimClonedDisks)
} else {
agent[mkResourceVirtualEnvironmentVMAgentTrim] = dvResourceVirtualEnvironmentVMAgentTrim
agent[mkResourceVirtualEnvironmentVMAgentTrim] = false
}
if vmConfig.Agent.Type != nil {
agent[mkResourceVirtualEnvironmentVMAgentType] = *vmConfig.Agent.Type
} else {
agent[mkResourceVirtualEnvironmentVMAgentType] = dvResourceVirtualEnvironmentVMAgentType
agent[mkResourceVirtualEnvironmentVMAgentType] = ""
}
currentAgent := d.Get(mkResourceVirtualEnvironmentVMAgent).([]interface{})
@ -1377,16 +1377,16 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
d.Set(mkResourceVirtualEnvironmentVMAgent, []interface{}{agent})
}
} else {
d.Set(mkResourceVirtualEnvironmentVMAgent, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMAgent, []interface{}{})
}
// Compare the IDE devices to the CDROM and cloud-init configurations stored in the state.
if vmConfig.IDEDevice2 != nil {
if *vmConfig.IDEDevice2.Media == "cdrom" {
if strings.Contains(vmConfig.IDEDevice2.FileVolume, fmt.Sprintf("vm-%d-cloudinit", vmID)) {
d.Set(mkResourceVirtualEnvironmentVMCDROM, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMCDROM, []interface{}{})
} else {
d.Set(mkResourceVirtualEnvironmentVMCloudInit, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMCloudInit, []interface{}{})
cdrom := make([]interface{}, 1)
cdromBlock := map[string]interface{}{}
@ -1399,12 +1399,12 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
d.Set(mkResourceVirtualEnvironmentVMCDROM, cdrom)
}
} else {
d.Set(mkResourceVirtualEnvironmentVMCDROM, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMCloudInit, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMCDROM, []interface{}{})
d.Set(mkResourceVirtualEnvironmentVMCloudInit, []interface{}{})
}
} else {
d.Set(mkResourceVirtualEnvironmentVMCDROM, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMCloudInit, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMCDROM, []interface{}{})
d.Set(mkResourceVirtualEnvironmentVMCloudInit, []interface{}{})
}
// Compare the cloud-init configuration to the one stored in the state.
@ -1416,13 +1416,13 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
if vmConfig.CloudInitDNSDomain != nil {
cloudInitDNS[mkResourceVirtualEnvironmentVMCloudInitDNSDomain] = *vmConfig.CloudInitDNSDomain
} else {
cloudInitDNS[mkResourceVirtualEnvironmentVMCloudInitDNSDomain] = dvResourceVirtualEnvironmentVMCloudInitDNSDomain
cloudInitDNS[mkResourceVirtualEnvironmentVMCloudInitDNSDomain] = ""
}
if vmConfig.CloudInitDNSServer != nil {
cloudInitDNS[mkResourceVirtualEnvironmentVMCloudInitDNSServer] = *vmConfig.CloudInitDNSServer
} else {
cloudInitDNS[mkResourceVirtualEnvironmentVMCloudInitDNSServer] = dvResourceVirtualEnvironmentVMCloudInitDNSServer
cloudInitDNS[mkResourceVirtualEnvironmentVMCloudInitDNSServer] = ""
}
cloudInit[mkResourceVirtualEnvironmentVMCloudInitDNS] = []interface{}{cloudInitDNS}
@ -1508,7 +1508,7 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
if vmConfig.CloudInitPassword != nil {
cloudInitUserAccount[mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword] = *vmConfig.CloudInitPassword
} else {
cloudInitUserAccount[mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword] = dvResourceVirtualEnvironmentVMCloudInitUserAccountPassword
cloudInitUserAccount[mkResourceVirtualEnvironmentVMCloudInitUserAccountPassword] = ""
}
if vmConfig.CloudInitUsername != nil {
@ -1524,10 +1524,10 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
if vmConfig.CloudInitFiles.UserVolume != nil {
cloudInit[mkResourceVirtualEnvironmentVMCloudInitUserDataFileID] = *vmConfig.CloudInitFiles.UserVolume
} else {
cloudInit[mkResourceVirtualEnvironmentVMCloudInitUserDataFileID] = dvResourceVirtualEnvironmentVMCloudInitUserDataFileID
cloudInit[mkResourceVirtualEnvironmentVMCloudInitUserDataFileID] = ""
}
} else {
cloudInit[mkResourceVirtualEnvironmentVMCloudInitUserDataFileID] = dvResourceVirtualEnvironmentVMCloudInitUserDataFileID
cloudInit[mkResourceVirtualEnvironmentVMCloudInitUserDataFileID] = ""
}
if len(cloudInit) > 0 {
@ -1542,19 +1542,19 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
if vmConfig.CPUCores != nil {
cpu[mkResourceVirtualEnvironmentVMCPUCores] = *vmConfig.CPUCores
} else {
cpu[mkResourceVirtualEnvironmentVMCPUCores] = dvResourceVirtualEnvironmentVMCPUCores
cpu[mkResourceVirtualEnvironmentVMCPUCores] = 0
}
if vmConfig.VirtualCPUCount != nil {
cpu[mkResourceVirtualEnvironmentVMCPUHotplugged] = *vmConfig.VirtualCPUCount
} else {
cpu[mkResourceVirtualEnvironmentVMCPUHotplugged] = dvResourceVirtualEnvironmentVMCPUHotplugged
cpu[mkResourceVirtualEnvironmentVMCPUHotplugged] = 0
}
if vmConfig.CPUSockets != nil {
cpu[mkResourceVirtualEnvironmentVMCPUSockets] = *vmConfig.CPUSockets
} else {
cpu[mkResourceVirtualEnvironmentVMCPUSockets] = dvResourceVirtualEnvironmentVMCPUSockets
cpu[mkResourceVirtualEnvironmentVMCPUSockets] = 0
}
currentCPU := d.Get(mkResourceVirtualEnvironmentVMCPU).([]interface{})
@ -1582,7 +1582,7 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
// Compare the disks to those stored in the state.
currentDiskList := d.Get(mkResourceVirtualEnvironmentVMDisk).([]interface{})
diskList := make([]interface{}, 0)
diskList := []interface{}{}
diskObjects := []*proxmox.CustomStorageDevice{
vmConfig.SCSIDevice0,
vmConfig.SCSIDevice1,
@ -1698,19 +1698,19 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
if vmConfig.DedicatedMemory != nil {
memory[mkResourceVirtualEnvironmentVMMemoryDedicated] = *vmConfig.DedicatedMemory
} else {
memory[mkResourceVirtualEnvironmentVMMemoryDedicated] = dvResourceVirtualEnvironmentVMMemoryDedicated
memory[mkResourceVirtualEnvironmentVMMemoryDedicated] = 0
}
if vmConfig.FloatingMemory != nil {
memory[mkResourceVirtualEnvironmentVMMemoryFloating] = *vmConfig.FloatingMemory
} else {
memory[mkResourceVirtualEnvironmentVMMemoryFloating] = dvResourceVirtualEnvironmentVMMemoryFloating
memory[mkResourceVirtualEnvironmentVMMemoryFloating] = 0
}
if vmConfig.SharedMemory != nil {
memory[mkResourceVirtualEnvironmentVMMemoryShared] = vmConfig.SharedMemory.Size
} else {
memory[mkResourceVirtualEnvironmentVMMemoryShared] = dvResourceVirtualEnvironmentVMMemoryShared
memory[mkResourceVirtualEnvironmentVMMemoryShared] = 0
}
currentMemory := d.Get(mkResourceVirtualEnvironmentVMMemory).([]interface{})
@ -1820,20 +1820,20 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
if vmConfig.VGADevice.Memory != nil {
vga[mkResourceVirtualEnvironmentVMVGAMemory] = *vmConfig.VGADevice.Memory
} else {
vga[mkResourceVirtualEnvironmentVMVGAMemory] = dvResourceVirtualEnvironmentVMVGAMemory
vga[mkResourceVirtualEnvironmentVMVGAMemory] = 0
}
if vgaEnabled {
if vmConfig.VGADevice.Type != nil {
vga[mkResourceVirtualEnvironmentVMVGAType] = *vmConfig.VGADevice.Type
} else {
vga[mkResourceVirtualEnvironmentVMVGAType] = dvResourceVirtualEnvironmentVMVGAType
vga[mkResourceVirtualEnvironmentVMVGAType] = ""
}
}
} else {
vga[mkResourceVirtualEnvironmentVMVGAEnabled] = true
vga[mkResourceVirtualEnvironmentVMVGAMemory] = dvResourceVirtualEnvironmentVMVGAMemory
vga[mkResourceVirtualEnvironmentVMVGAType] = dvResourceVirtualEnvironmentVMVGAType
vga[mkResourceVirtualEnvironmentVMVGAMemory] = 0
vga[mkResourceVirtualEnvironmentVMVGAType] = ""
}
currentVGA := d.Get(mkResourceVirtualEnvironmentVMVGA).([]interface{})
@ -1844,7 +1844,7 @@ func resourceVirtualEnvironmentVMRead(d *schema.ResourceData, m interface{}) err
vga[mkResourceVirtualEnvironmentVMVGAType] != dvResourceVirtualEnvironmentVMVGAType {
d.Set(mkResourceVirtualEnvironmentVMVGA, []interface{}{vga})
} else {
d.Set(mkResourceVirtualEnvironmentVMVGA, make([]interface{}, 0))
d.Set(mkResourceVirtualEnvironmentVMVGA, []interface{}{})
}
// Determine the state of the virtual machine in order to update the "started" argument.

View File

@ -176,21 +176,7 @@ func getSchemaBlock(r *schema.Resource, d *schema.ResourceData, m interface{}, k
}
func getVGAMemoryValidator() schema.SchemaValidateFunc {
return func(i interface{}, k string) ([]string, []error) {
v, ok := i.(int)
if !ok {
return []string{}, []error{fmt.Errorf("expected type of %s to be []interface{}", k)}
}
if v == 0 {
return []string{}, []error{}
}
validator := validation.IntBetween(4, 512)
return validator(i, k)
}
return validation.IntBetween(4, 512)
}
func getVGATypeValidator() schema.SchemaValidateFunc {