0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-08-22 19:38:35 +00:00

fix(lxc): avoid setting domain to " " when null during clone (#2033)

Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
This commit is contained in:
Pavel Boldyrev 2025-07-11 16:48:03 -04:00 committed by GitHub
parent 1eabc40dfa
commit 623c32cbab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 11 deletions

View File

@ -341,6 +341,9 @@ func TestAccResourceContainer(t *testing.T) {
initialization { initialization {
hostname = "test-clone" hostname = "test-clone"
dns {
servers = ["1.1.1.1"]
}
} }
}`, WithRootUser()), }`, WithRootUser()),
Check: resource.ComposeTestCheckFunc( Check: resource.ComposeTestCheckFunc(

View File

@ -1181,8 +1181,11 @@ func containerCreateClone(ctx context.Context, d *schema.ResourceData, m interfa
if len(initializationDNS) > 0 && initializationDNS[0] != nil { if len(initializationDNS) > 0 && initializationDNS[0] != nil {
initializationDNSBlock := initializationDNS[0].(map[string]interface{}) initializationDNSBlock := initializationDNS[0].(map[string]interface{})
initializationDNSDomain := initializationDNSBlock[mkInitializationDNSDomain].(string) initializationDNSDomain := initializationDNSBlock[mkInitializationDNSDomain].(string)
updateBody.DNSDomain = &initializationDNSDomain if initializationDNSDomain != "" {
updateBody.DNSDomain = &initializationDNSDomain
}
servers := initializationDNSBlock[mkInitializationDNSServers].([]interface{}) servers := initializationDNSBlock[mkInitializationDNSServers].([]interface{})
deprecatedServer := initializationDNSBlock[mkInitializationDNSServer].(string) deprecatedServer := initializationDNSBlock[mkInitializationDNSServer].(string)
@ -1191,12 +1194,12 @@ func containerCreateClone(ctx context.Context, d *schema.ResourceData, m interfa
nameserver := strings.Join(utils.ConvertToStringSlice(servers), " ") nameserver := strings.Join(utils.ConvertToStringSlice(servers), " ")
updateBody.DNSServer = &nameserver updateBody.DNSServer = &nameserver
} else { } else if deprecatedServer != "" {
updateBody.DNSServer = &deprecatedServer updateBody.DNSServer = &deprecatedServer
} }
} }
initializationHostname := initializationBlock[mkInitializationHostname].(string) initializationHostname = initializationBlock[mkInitializationHostname].(string)
if initializationHostname != dvInitializationHostname { if initializationHostname != dvInitializationHostname {
updateBody.Hostname = &initializationHostname updateBody.Hostname = &initializationHostname
@ -2779,12 +2782,12 @@ func containerRead(ctx context.Context, d *schema.ResourceData, m interface{}) d
started := status.Status == "running" started := status.Status == "running"
ipv4Map := make(map[string]interface{})
ipv6Map := make(map[string]interface{})
if started && len(networkInterfaces) > 0 { if started && len(networkInterfaces) > 0 {
ifaces, err := containerAPI.WaitForContainerNetworkInterfaces(ctx, 10*time.Second) ifaces, err := containerAPI.WaitForContainerNetworkInterfaces(ctx, 10*time.Second)
if err == nil { if err == nil {
ipv4Map := make(map[string]interface{})
ipv6Map := make(map[string]interface{})
for _, iface := range ifaces { for _, iface := range ifaces {
if iface.IPAddresses != nil && iface.Name != "lo" { if iface.IPAddresses != nil && iface.Name != "lo" {
for _, ip := range *iface.IPAddresses { for _, ip := range *iface.IPAddresses {
@ -2805,11 +2808,6 @@ func containerRead(ctx context.Context, d *schema.ResourceData, m interface{}) d
} }
} }
} }
e = d.Set(mkIPv4, ipv4Map)
diags = append(diags, diag.FromErr(e)...)
e = d.Set(mkIPv6, ipv6Map)
diags = append(diags, diag.FromErr(e)...)
} else { } else {
tflog.Warn(ctx, "error waiting for container network interfaces", map[string]interface{}{ tflog.Warn(ctx, "error waiting for container network interfaces", map[string]interface{}{
"error": err.Error(), "error": err.Error(),
@ -2817,6 +2815,11 @@ func containerRead(ctx context.Context, d *schema.ResourceData, m interface{}) d
} }
} }
e = d.Set(mkIPv4, ipv4Map)
diags = append(diags, diag.FromErr(e)...)
e = d.Set(mkIPv6, ipv6Map)
diags = append(diags, diag.FromErr(e)...)
e = d.Set(mkStarted, started) e = d.Set(mkStarted, started)
diags = append(diags, diag.FromErr(e)...) diags = append(diags, diag.FromErr(e)...)