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:
parent
1eabc40dfa
commit
623c32cbab
@ -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(
|
||||||
|
@ -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)
|
||||||
|
if initializationDNSDomain != "" {
|
||||||
updateBody.DNSDomain = &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"
|
||||||
|
|
||||||
if started && len(networkInterfaces) > 0 {
|
|
||||||
ifaces, err := containerAPI.WaitForContainerNetworkInterfaces(ctx, 10*time.Second)
|
|
||||||
if err == nil {
|
|
||||||
ipv4Map := make(map[string]interface{})
|
ipv4Map := make(map[string]interface{})
|
||||||
ipv6Map := make(map[string]interface{})
|
ipv6Map := make(map[string]interface{})
|
||||||
|
|
||||||
|
if started && len(networkInterfaces) > 0 {
|
||||||
|
ifaces, err := containerAPI.WaitForContainerNetworkInterfaces(ctx, 10*time.Second)
|
||||||
|
if err == nil {
|
||||||
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)...)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user