@@ -135,9 +135,9 @@ func TestIpv4PrefixProvider_updatePoolAndReconcileIfRequired_NoFurtherReconcile(
135135
136136 job := & worker.WarmPoolJob {Operations : worker .OperationCreate }
137137
138- mockPool .EXPECT ().UpdatePool (job , true ).Return (false )
138+ mockPool .EXPECT ().UpdatePool (job , true , true ).Return (false )
139139
140- provider .updatePoolAndReconcileIfRequired (mockPool , job , true )
140+ provider .updatePoolAndReconcileIfRequired (mockPool , job , true , true )
141141}
142142
143143// TestIpv4Provider_updatePoolAndReconcileIfRequired_ReconcileRequired tests pool is updated and reconciliation is
@@ -152,11 +152,11 @@ func TestIpv4Provider_updatePoolAndReconcileIfRequired_ReconcileRequired(t *test
152152
153153 job := & worker.WarmPoolJob {Operations : worker .OperationCreate }
154154
155- mockPool .EXPECT ().UpdatePool (job , true ).Return (true )
155+ mockPool .EXPECT ().UpdatePool (job , true , true ).Return (true )
156156 mockPool .EXPECT ().ReconcilePool ().Return (job )
157157 mockWorker .EXPECT ().SubmitJob (job )
158158
159- provider .updatePoolAndReconcileIfRequired (mockPool , job , true )
159+ provider .updatePoolAndReconcileIfRequired (mockPool , job , true , true )
160160}
161161
162162// TestIpv4PrefixProvider_DeleteIPv4PrefixAndUpdatePool tests job with empty resources is passed back if some resource
@@ -184,7 +184,7 @@ func TestIpv4PrefixProvider_DeleteIPv4PrefixAndUpdatePool(t *testing.T) {
184184 Resources : []string {},
185185 ResourceCount : 2 ,
186186 NodeName : nodeName ,
187- }, true ).Return (false )
187+ }, true , true ).Return (false )
188188
189189 provider .DeleteIPv4PrefixAndUpdatePool (deleteJob )
190190}
@@ -215,7 +215,7 @@ func TestIpv4PrefixProvider_DeletePrivateIPv4AndUpdatePool_SomeResourceFail(t *t
215215 Resources : failedResources ,
216216 ResourceCount : 2 ,
217217 NodeName : nodeName ,
218- }, true ).Return (false )
218+ }, true , true ).Return (false )
219219
220220 prefixProvider .DeleteIPv4PrefixAndUpdatePool (& deleteJob )
221221}
@@ -245,7 +245,7 @@ func TestIPv4PrefixProvider_CreateIPv4PrefixAndUpdatePool(t *testing.T) {
245245 Resources : createdResources ,
246246 ResourceCount : 2 ,
247247 NodeName : nodeName ,
248- }, true ).Return (false )
248+ }, true , true ).Return (false )
249249
250250 prefixProvider .CreateIPv4PrefixAndUpdatePool (createJob )
251251}
@@ -256,7 +256,9 @@ func TestIPv4PrefixProvider_CreateIPv4PrefixAndUpdatePool_Fail(t *testing.T) {
256256 ctrl := gomock .NewController (t )
257257 defer ctrl .Finish ()
258258
259- prefixProvider := getMockIPv4PrefixProvider ()
259+ mockWorker := mock_worker .NewMockWorker (ctrl )
260+ prefixProvider := ipv4PrefixProvider {instanceProviderAndPool : map [string ]* ResourceProviderAndPool {}, workerPool : mockWorker ,
261+ log : zap .New (zap .UseDevMode (true )).WithName ("prefix provider" )}
260262 mockPool := mock_pool .NewMockPool (ctrl )
261263 mockManager := mock_eni .NewMockENIManager (ctrl )
262264 prefixProvider .putInstanceProviderAndPool (nodeName , mockPool , mockManager , nodeCapacity , true )
@@ -276,7 +278,11 @@ func TestIPv4PrefixProvider_CreateIPv4PrefixAndUpdatePool_Fail(t *testing.T) {
276278 Resources : createdResources ,
277279 ResourceCount : 3 ,
278280 NodeName : nodeName ,
279- }, false ).Return (false )
281+ }, false , true ).Return (true )
282+
283+ job := & worker.WarmPoolJob {Operations : worker .OperationCreate }
284+ mockPool .EXPECT ().ReconcilePool ().Return (job )
285+ mockWorker .EXPECT ().SubmitJob (job )
280286
281287 prefixProvider .CreateIPv4PrefixAndUpdatePool (createJob )
282288}
@@ -307,12 +313,15 @@ func TestIPv4PrefixProvider_CreateIPv4PrefixAndUpdatePool_Fail_InsufficientCidrB
307313
308314 mockManager .EXPECT ().CreateIPV4Resource (3 , config .ResourceTypeIPv4Prefix , nil , gomock .Any ()).Return (createdResources ,
309315 fmt .Errorf ("InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the request. Status" ))
316+
317+ // Since InsufficientCidrBlocks error is not retryable, didSucceed was not set as false to not re-sync or reconcile the pool.
318+ // Also set prefixAvailable as false to notify pool
310319 mockPool .EXPECT ().UpdatePool (& worker.WarmPoolJob {
311320 Operations : worker .OperationCreate ,
312321 Resources : createdResources ,
313322 ResourceCount : 3 ,
314323 NodeName : nodeName ,
315- }, false ).Return (false )
324+ }, true , false ).Return (false )
316325
317326 mockK8sWrapper .EXPECT ().GetNode (nodeName ).Return (node , nil ).Times (1 )
318327 mockK8sWrapper .EXPECT ().BroadcastEvent (node , utils .InsufficientCidrBlocksReason , utils .ErrInsufficientCidrBlocks .Error (), v1 .EventTypeWarning ).Times (1 )
0 commit comments