Add missing node.address != "" condition in tests

It turns out to be a frequent bug that is revealed when nodes don't have
external IP addresses. In the test we assume that in such case there
won't be any addresses of type 'NodeExternalIp', which is invalid. In
such case there will be an address of type 'NodeExternalIP', but with
the empty 'Address' field.

Ref. https://github.com/kubernetes/kubernetes/issues/76374
This commit is contained in:
Matt Matejczyk 2019-04-08 17:42:57 +02:00
parent 701e36bd5b
commit 618d6771f8
3 changed files with 5 additions and 5 deletions

View File

@ -320,7 +320,7 @@ func (j *ServiceTestJig) CreateLoadBalancerService(namespace, serviceName string
func GetNodeAddresses(node *v1.Node, addressType v1.NodeAddressType) (ips []string) { func GetNodeAddresses(node *v1.Node, addressType v1.NodeAddressType) (ips []string) {
for j := range node.Status.Addresses { for j := range node.Status.Addresses {
nodeAddress := &node.Status.Addresses[j] nodeAddress := &node.Status.Addresses[j]
if nodeAddress.Type == addressType { if nodeAddress.Type == addressType && nodeAddress.Address != "" {
ips = append(ips, nodeAddress.Address) ips = append(ips, nodeAddress.Address)
} }
} }

View File

@ -245,7 +245,7 @@ func IssueSSHCommandWithResult(cmd, provider string, node *v1.Node) (*SSHResult,
Logf("Getting external IP address for %s", node.Name) Logf("Getting external IP address for %s", node.Name)
host := "" host := ""
for _, a := range node.Status.Addresses { for _, a := range node.Status.Addresses {
if a.Type == v1.NodeExternalIP { if a.Type == v1.NodeExternalIP && a.Address != "" {
host = net.JoinHostPort(a.Address, sshPort) host = net.JoinHostPort(a.Address, sshPort)
break break
} }
@ -254,7 +254,7 @@ func IssueSSHCommandWithResult(cmd, provider string, node *v1.Node) (*SSHResult,
if host == "" { if host == "" {
// No external IPs were found, let's try to use internal as plan B // No external IPs were found, let's try to use internal as plan B
for _, a := range node.Status.Addresses { for _, a := range node.Status.Addresses {
if a.Type == v1.NodeInternalIP { if a.Type == v1.NodeInternalIP && a.Address != "" {
host = net.JoinHostPort(a.Address, sshPort) host = net.JoinHostPort(a.Address, sshPort)
break break
} }

View File

@ -3424,7 +3424,7 @@ func NodeAddresses(nodelist *v1.NodeList, addrType v1.NodeAddressType) []string
hosts := []string{} hosts := []string{}
for _, n := range nodelist.Items { for _, n := range nodelist.Items {
for _, addr := range n.Status.Addresses { for _, addr := range n.Status.Addresses {
if addr.Type == addrType { if addr.Type == addrType && addr.Address != "" {
hosts = append(hosts, addr.Address) hosts = append(hosts, addr.Address)
break break
} }
@ -4942,7 +4942,7 @@ func GetNodeExternalIP(node *v1.Node) (string, error) {
Logf("Getting external IP address for %s", node.Name) Logf("Getting external IP address for %s", node.Name)
host := "" host := ""
for _, a := range node.Status.Addresses { for _, a := range node.Status.Addresses {
if a.Type == v1.NodeExternalIP { if a.Type == v1.NodeExternalIP && a.Address != "" {
host = net.JoinHostPort(a.Address, sshPort) host = net.JoinHostPort(a.Address, sshPort)
break break
} }