Fix issue where missing external IP address breaks SSH Tunnel.

Added unit test to cover missing external IP case.
Justin's feedback.
Lint fix.
Lavalmap's feedback.
This commit is contained in:
Walter Fender
2018-12-07 11:31:19 -08:00
parent 05183bffe5
commit d92ee41e44
3 changed files with 39 additions and 1 deletions

View File

@@ -444,15 +444,26 @@ func (n nodeAddressProvider) externalAddresses() ([]string, error) {
if err != nil {
return nil, err
}
var matchErr error
addrs := []string{}
for ix := range nodes.Items {
node := &nodes.Items[ix]
addr, err := nodeutil.GetPreferredNodeAddress(node, preferredAddressTypes)
if err != nil {
if _, ok := err.(*nodeutil.NoMatchError); ok {
matchErr = err
continue
}
return nil, err
}
addrs = append(addrs, addr)
}
if len(addrs) == 0 && matchErr != nil {
// We only return an error if we have items.
// Currently we return empty list/no error if Items is empty.
// We do this for backward compatibility reasons.
return nil, matchErr
}
return addrs, nil
}