@@ -28,7 +28,7 @@ func TestNodeController_Run(t *testing.T) {
28
28
client := mocks .NewMockClient (ctrl )
29
29
kubeClient := fake .NewSimpleClientset ()
30
30
informer := informers .NewSharedInformerFactory (kubeClient , 0 ).Core ().V1 ().Nodes ()
31
- mockQueue := workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [any ]{Name : "test" })
31
+ mockQueue := workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [nodeRequest ]{Name : "test" })
32
32
33
33
nodeCtrl := newNodeController (kubeClient , client , informer , newInstances (client ))
34
34
nodeCtrl .queue = mockQueue
@@ -68,7 +68,7 @@ func TestNodeController_processNext(t *testing.T) {
68
68
defer ctrl .Finish ()
69
69
client := mocks .NewMockClient (ctrl )
70
70
kubeClient := fake .NewSimpleClientset ()
71
- queue := workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [any ]{Name : "testQueue" })
71
+ queue := workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [nodeRequest ]{Name : "testQueue" })
72
72
node := & v1.Node {
73
73
ObjectMeta : metav1.ObjectMeta {
74
74
Name : "test" ,
@@ -87,10 +87,11 @@ func TestNodeController_processNext(t *testing.T) {
87
87
queue : queue ,
88
88
metadataLastUpdate : make (map [string ]time.Time ),
89
89
ttl : defaultMetadataTTL ,
90
+ nodeLastAdded : make (map [string ]time.Time ),
90
91
}
91
92
92
93
t .Run ("should return no error on unknown errors" , func (t * testing.T ) {
93
- queue . Add (node )
94
+ controller . addNodeToQueue (node )
94
95
client .EXPECT ().ListInstances (gomock .Any (), nil ).Times (1 ).Return ([]linodego.Instance {}, errors .New ("lookup failed" ))
95
96
result := controller .processNext ()
96
97
assert .True (t , result , "processNext should return true" )
@@ -99,22 +100,23 @@ func TestNodeController_processNext(t *testing.T) {
99
100
}
100
101
})
101
102
102
- t .Run ("should return no error if node exists" , func (t * testing.T ) {
103
- queue .Add (node )
104
- publicIP := net .ParseIP ("172.234.31.123" )
105
- privateIP := net .ParseIP ("192.168.159.135" )
106
- client .EXPECT ().ListInstances (gomock .Any (), nil ).Times (1 ).Return ([]linodego.Instance {
107
- {ID : 111 , Label : "test" , IPv4 : []* net.IP {& publicIP , & privateIP }, HostUUID : "111" },
108
- }, nil )
103
+ t .Run ("should return no error if timestamp for node being processed is older than the most recent request" , func (t * testing.T ) {
104
+ controller .addNodeToQueue (node )
105
+ controller .nodeLastAdded ["test" ] = time .Now ().Add (controller .ttl )
109
106
result := controller .processNext ()
110
107
assert .True (t , result , "processNext should return true" )
111
108
if queue .Len () != 0 {
112
109
t .Errorf ("expected queue to be empty, got %d items" , queue .Len ())
113
110
}
114
111
})
115
112
116
- t .Run ("should return no error if queued object is not of type Node" , func (t * testing.T ) {
117
- queue .Add ("abc" )
113
+ t .Run ("should return no error if node exists" , func (t * testing.T ) {
114
+ controller .addNodeToQueue (node )
115
+ publicIP := net .ParseIP ("172.234.31.123" )
116
+ privateIP := net .ParseIP ("192.168.159.135" )
117
+ client .EXPECT ().ListInstances (gomock .Any (), nil ).Times (1 ).Return ([]linodego.Instance {
118
+ {ID : 111 , Label : "test" , IPv4 : []* net.IP {& publicIP , & privateIP }, HostUUID : "111" },
119
+ }, nil )
118
120
result := controller .processNext ()
119
121
assert .True (t , result , "processNext should return true" )
120
122
if queue .Len () != 0 {
@@ -123,7 +125,7 @@ func TestNodeController_processNext(t *testing.T) {
123
125
})
124
126
125
127
t .Run ("should return no error if node in k8s doesn't exist" , func (t * testing.T ) {
126
- queue . Add (node )
128
+ controller . addNodeToQueue (node )
127
129
controller .kubeclient = fake .NewSimpleClientset ()
128
130
defer func () { controller .kubeclient = kubeClient }()
129
131
result := controller .processNext ()
@@ -134,9 +136,9 @@ func TestNodeController_processNext(t *testing.T) {
134
136
})
135
137
136
138
t .Run ("should return error and requeue when it gets 429 from linode API" , func (t * testing.T ) {
137
- queue = workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [any ]{Name : "testQueue1" })
138
- queue .Add (node )
139
+ queue = workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [nodeRequest ]{Name : "testQueue1" })
139
140
controller .queue = queue
141
+ controller .addNodeToQueue (node )
140
142
client := mocks .NewMockClient (ctrl )
141
143
controller .instances = newInstances (client )
142
144
retryInterval = 1 * time .Nanosecond
@@ -150,9 +152,9 @@ func TestNodeController_processNext(t *testing.T) {
150
152
})
151
153
152
154
t .Run ("should return error and requeue when it gets error >= 500 from linode API" , func (t * testing.T ) {
153
- queue = workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [any ]{Name : "testQueue2" })
154
- queue .Add (node )
155
+ queue = workqueue .NewTypedDelayingQueueWithConfig (workqueue.TypedDelayingQueueConfig [nodeRequest ]{Name : "testQueue2" })
155
156
controller .queue = queue
157
+ controller .addNodeToQueue (node )
156
158
client := mocks .NewMockClient (ctrl )
157
159
controller .instances = newInstances (client )
158
160
retryInterval = 1 * time .Nanosecond
0 commit comments