0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-03 12:02:57 +00:00

chore(vm): fix linter errors (#506)

fix: linter error in ambush

  * This commit fixes a linter error that somehow doesn't manifest
    unless some other, unrelated changes trigger it (see #501 and
    #505).

  * In addition it fixes a similar issue that had so far gone undetected
    by the linter.

  * Refactored the code in question into a function, since it was mostly
    duplicated.

  * Simplified a pair of conditionals that had the same code in both
    branches.
This commit is contained in:
Emmanuel Benoît 2023-08-19 03:07:09 +02:00 committed by GitHub
parent e02c52b8c6
commit 1896ea08f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3433,6 +3433,27 @@ func vmRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Dia
return vmReadCustom(ctx, d, m, vmID, vmConfig, vmStatus)
}
// orderedListFromMap generates a list from a map's values. The values are sorted based on the map's keys.
func orderedListFromMap(inputMap map[string]interface{}) []interface{} {
itemCount := len(inputMap)
keyList := make([]string, itemCount)
i := 0
for key := range inputMap {
keyList[i] = key
i++
}
sort.Strings(keyList)
orderedList := make([]interface{}, itemCount)
for i, k := range keyList {
orderedList[i] = inputMap[k]
}
return orderedList
}
func vmReadCustom(
ctx context.Context,
d *schema.ResourceData,
@ -3705,7 +3726,6 @@ func vmReadCustom(
currentDiskList := d.Get(mkResourceVirtualEnvironmentVMDisk).([]interface{})
diskMap := map[string]interface{}{}
diskObjects := getDiskInfo(vmConfig, d)
var orderedDiskList []interface{}
for di, dd := range diskObjects {
disk := map[string]interface{}{}
@ -3807,24 +3827,8 @@ func vmReadCustom(
diskMap[di] = disk
}
var keyList []string
for key := range diskMap {
keyList = append(keyList, key)
}
sort.Strings(keyList)
for _, k := range keyList {
orderedDiskList = append(orderedDiskList, diskMap[k])
}
if len(clone) > 0 {
if len(currentDiskList) > 0 {
err := d.Set(mkResourceVirtualEnvironmentVMDisk, orderedDiskList)
diags = append(diags, diag.FromErr(err)...)
}
} else if len(currentDiskList) > 0 {
if len(currentDiskList) > 0 {
orderedDiskList := orderedListFromMap(diskMap)
err := d.Set(mkResourceVirtualEnvironmentVMDisk, orderedDiskList)
diags = append(diags, diag.FromErr(err)...)
}
@ -3887,7 +3891,6 @@ func vmReadCustom(
currentPCIList := d.Get(mkResourceVirtualEnvironmentVMHostPCI).([]interface{})
pciMap := map[string]interface{}{}
var orderedPCIList []interface{}
pciDevices := getPCIInfo(vmConfig, d)
for pi, pp := range pciDevices {
@ -3933,23 +3936,9 @@ func vmReadCustom(
pciMap[pi] = pci
}
keyList = []string{}
for key := range pciMap {
keyList = append(keyList, key)
}
sort.Strings(keyList)
for _, k := range keyList {
orderedPCIList = append(orderedPCIList, pciMap[k])
}
if len(clone) > 0 {
if len(currentPCIList) > 0 {
err := d.Set(mkResourceVirtualEnvironmentVMHostPCI, orderedPCIList)
diags = append(diags, diag.FromErr(err)...)
}
} else if len(currentPCIList) > 0 {
if len(currentPCIList) > 0 {
// todo: reordering of devices by PVE may cause an issue here
orderedPCIList := orderedListFromMap(pciMap)
err := d.Set(mkResourceVirtualEnvironmentVMHostPCI, orderedPCIList)
diags = append(diags, diag.FromErr(err)...)
}