Skip to content

Commit 78d8d58

Browse files
authored
Merge pull request #1313 from Tinyblargon/#1311
fix: `nameserver` reports diff when delimiter changes
2 parents f3191a9 + 2dc8e79 commit 78d8d58

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package cloudinit
2+
3+
import "strings"
4+
5+
func trimNameServers(nameServers string) string {
6+
return strings.ReplaceAll(strings.ReplaceAll(nameServers, " ", ""), ",", "")
7+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package cloudinit
2+
3+
import (
4+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
5+
)
6+
7+
const (
8+
RootNameServers = "nameserver"
9+
)
10+
11+
func SchemaNameServers() *schema.Schema {
12+
return &schema.Schema{
13+
Type: schema.TypeString,
14+
Optional: true,
15+
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
16+
return trimNameServers(old) == trimNameServers(new)
17+
}}
18+
}

proxmox/resource_vm_qemu.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/Telmate/terraform-provider-proxmox/v2/proxmox/Internal/pve/guest/tags"
2929
"github.com/Telmate/terraform-provider-proxmox/v2/proxmox/Internal/resource/guest/node"
3030
"github.com/Telmate/terraform-provider-proxmox/v2/proxmox/Internal/resource/guest/pool"
31+
"github.com/Telmate/terraform-provider-proxmox/v2/proxmox/Internal/resource/guest/qemu/cloudinit"
3132
"github.com/Telmate/terraform-provider-proxmox/v2/proxmox/Internal/resource/guest/qemu/cpu"
3233
"github.com/Telmate/terraform-provider-proxmox/v2/proxmox/Internal/resource/guest/qemu/disk"
3334
"github.com/Telmate/terraform-provider-proxmox/v2/proxmox/Internal/resource/guest/qemu/network"
@@ -502,11 +503,8 @@ func resourceVmQemu() *schema.Resource {
502503
Type: schema.TypeString,
503504
Optional: true,
504505
},
505-
"nameserver": {
506-
Type: schema.TypeString,
507-
Optional: true,
508-
},
509-
sshkeys.Root: sshkeys.Schema(),
506+
cloudinit.RootNameServers: cloudinit.SchemaNameServers(),
507+
sshkeys.Root: sshkeys.Schema(),
510508
"ipconfig0": {
511509
Type: schema.TypeString,
512510
Optional: true,
@@ -1003,7 +1001,7 @@ func resourceVmQemuUpdate(ctx context.Context, d *schema.ResourceData, meta inte
10031001
"cipassword",
10041002
"cicustom",
10051003
"searchdomain",
1006-
"nameserver",
1004+
cloudinit.RootNameServers,
10071005
"sshkeys",
10081006
"ipconfig0",
10091007
"ipconfig1",
@@ -1692,7 +1690,7 @@ func mapToTerraform_CloudInit(config *pveSDK.CloudInit, d *schema.ResourceData)
16921690
}
16931691
if config.DNS != nil {
16941692
d.Set("searchdomain", config.DNS.SearchDomain)
1695-
d.Set("nameserver", nameservers.String(config.DNS.NameServers))
1693+
d.Set(cloudinit.RootNameServers, nameservers.String(config.DNS.NameServers))
16961694
}
16971695
for i := pveSDK.QemuNetworkInterfaceID(0); i < 16; i++ {
16981696
if v, isSet := config.NetworkInterfaces[i]; isSet {
@@ -1764,7 +1762,7 @@ func mapToSDK_CloudInit(d *schema.ResourceData) *pveSDK.CloudInit {
17641762
},
17651763
DNS: &pveSDK.GuestDNS{
17661764
SearchDomain: util.Pointer(d.Get("searchdomain").(string)),
1767-
NameServers: nameservers.Split(d.Get("nameserver").(string)),
1765+
NameServers: nameservers.Split(d.Get(cloudinit.RootNameServers).(string)),
17681766
},
17691767
NetworkInterfaces: pveSDK.CloudInitNetworkInterfaces{},
17701768
PublicSSHkeys: sshkeys.SDK(d),

0 commit comments

Comments
 (0)