diff --git a/pkg/cloudprovider/controller/nodecontroller.go b/pkg/cloudprovider/controller/nodecontroller.go index dc94ce65136..b164ddbef73 100644 --- a/pkg/cloudprovider/controller/nodecontroller.go +++ b/pkg/cloudprovider/controller/nodecontroller.go @@ -40,11 +40,6 @@ var ( ErrCloudInstance = errors.New("cloud provider doesn't support instances.") ) -var ( - // aliased to allow mocking in tests - lookupIP = net.LookupIP -) - type NodeController struct { cloud cloudprovider.Interface matchRE string @@ -54,6 +49,7 @@ type NodeController struct { kubeletClient client.KubeletHealthChecker registerRetryCount int podEvictionTimeout time.Duration + lookupIP func(host string) ([]net.IP, error) } // NewNodeController returns a new node controller to sync instances from cloudprovider. @@ -77,6 +73,7 @@ func NewNodeController( kubeletClient: kubeletClient, registerRetryCount: registerRetryCount, podEvictionTimeout: podEvictionTimeout, + lookupIP: net.LookupIP, } } @@ -289,7 +286,7 @@ func (s *NodeController) PopulateAddresses(nodes *api.NodeList) (*api.NodeList, address := api.NodeAddress{Type: api.NodeLegacyHostIP, Address: addr.String()} api.AddToNodeAddresses(&node.Status.Addresses, address) } else { - addrs, err := lookupIP(node.Name) + addrs, err := s.lookupIP(node.Name) if err != nil { glog.Errorf("Can't get ip address of node %s: %v", node.Name, err) } else if len(addrs) == 0 { diff --git a/pkg/cloudprovider/controller/nodecontroller_test.go b/pkg/cloudprovider/controller/nodecontroller_test.go index c62912601b3..24219d9489d 100644 --- a/pkg/cloudprovider/controller/nodecontroller_test.go +++ b/pkg/cloudprovider/controller/nodecontroller_test.go @@ -52,12 +52,6 @@ type FakeNodeHandler struct { RequestCount int } -func init() { - lookupIP = func(host string) ([]net.IP, error) { - return nil, fmt.Errorf("lookup %v: no such host", host) - } -} - func (c *FakeNodeHandler) Nodes() client.NodeInterface { return c } @@ -720,6 +714,9 @@ func TestSyncNodeStatusTransitionTime(t *testing.T) { for _, item := range table { nodeController := NewNodeController(nil, "", []string{"node0"}, nil, item.fakeNodeHandler, item.fakeKubeletClient, 10, time.Minute) + nodeController.lookupIP = func(host string) ([]net.IP, error) { + return nil, fmt.Errorf("lookup %v: no such host", host) + } if err := nodeController.SyncNodeStatus(); err != nil { t.Errorf("unexpected error: %v", err) } @@ -991,6 +988,9 @@ func TestSyncNodeStatusDeletePods(t *testing.T) { for _, item := range table { nodeController := NewNodeController(nil, "", []string{"node0"}, nil, item.fakeNodeHandler, item.fakeKubeletClient, 10, 5*time.Minute) + nodeController.lookupIP = func(host string) ([]net.IP, error) { + return nil, fmt.Errorf("lookup %v: no such host", host) + } if err := nodeController.SyncNodeStatus(); err != nil { t.Errorf("unexpected error: %v", err) }