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

Wait for 'net.IsGlobalUnicast' IP address (#115)

VM can get IPv6 link-local address faster than a DHCP server response,
that results in 'ipv4_addresses' output being an empty list.
It is then impossible to provision the VM using 'connection.host' field
derived from 'self.ipv4_addresses'.

Change the waiting for IP address to ignore IPv4 link-local addresses
and IPv6 link-local addresses.
This commit is contained in:
Oto Petřík 2022-08-15 03:23:41 +02:00 committed by GitHub
parent f72e911230
commit 029dc1fb0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -9,6 +9,7 @@ import (
"errors"
"fmt"
"github.com/hashicorp/terraform-plugin-log/tflog"
"net"
"net/url"
"strings"
"sync"
@ -406,6 +407,18 @@ func (c *VirtualEnvironmentClient) WaitForNetworkInterfacesFromVMAgent(ctx conte
missingIP = true
break
}
hasGlobalUnicast := false
for _, addr := range *nic.IPAddresses {
if ip := net.ParseIP(addr.Address); ip != nil && ip.IsGlobalUnicast() {
hasGlobalUnicast = true
}
}
if !hasGlobalUnicast {
missingIP = true
break
}
}
}