88 "time"
99
1010 eventtypes "github.com/containerd/containerd/api/events"
11+ "github.com/containerd/containerd/errdefs"
1112 "github.com/containerd/containerd/v2/core/events"
1213 "github.com/containerd/typeurl/v2"
1314 "github.com/go-logr/logr"
@@ -261,14 +262,14 @@ func TestImagePullerGetImageStatusStates(t *testing.T) {
261262 puller .NewNodeImageSetStatus (testNodeImageSetName )
262263
263264 // Test WaitingForImageDownload state (initial state)
264- status , message , err := puller .GetImageStatus (ctx , testNodeImageSetName , testImageName )
265+ status , message , err := puller .GetImageStatus (ctx , testNodeImageSetName , testImageName , ofenv1 . RegistryPolicyDefault )
265266 assert .NoError (t , err )
266267 assert .Equal (t , ofenv1 .WaitingForImageDownload , status )
267268 assert .Empty (t , message )
268269
269270 // Test ImageDownloaded state
270271 fakeClient .SetImageExists (testImageName , true )
271- status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName )
272+ status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName , ofenv1 . RegistryPolicyDefault )
272273 assert .NoError (t , err )
273274 assert .Equal (t , ofenv1 .ImageDownloaded , status )
274275 assert .Empty (t , message )
@@ -281,7 +282,7 @@ func TestImagePullerGetImageStatusStates(t *testing.T) {
281282 imageStatus := nodeStatus .GetOrCreateImageStatus (testImageName )
282283 imageStatus .SetImagePulling (true )
283284
284- status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName )
285+ status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName , ofenv1 . RegistryPolicyDefault )
285286 assert .NoError (t , err )
286287 assert .Equal (t , ofenv1 .ImageDownloadInProgress , status )
287288 assert .Empty (t , message )
@@ -291,10 +292,28 @@ func TestImagePullerGetImageStatusStates(t *testing.T) {
291292 testErr := fmt .Errorf ("pull failed" )
292293 imageStatus .SetError (testErr )
293294
294- status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName )
295+ status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName , ofenv1 . RegistryPolicyDefault )
295296 assert .NoError (t , err )
296297 assert .Equal (t , ofenv1 .ImageDownloadFailed , status )
297298 assert .Equal (t , "pull failed" , message )
299+
300+ // Test ImageDownloadFailed state with a temporary error
301+ imageStatus .ClearError ()
302+ imageStatus .SetImagePulling (false )
303+ imageStatus .SetError (errdefs .ErrNotFound )
304+ status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName , ofenv1 .RegistryPolicyDefault )
305+ assert .NoError (t , err )
306+ assert .Equal (t , ofenv1 .ImageDownloadFailed , status )
307+ assert .Equal (t , "not found" , message )
308+
309+ // Test ImageDownloadTemporarilyFailed state
310+ imageStatus .ClearError ()
311+ imageStatus .SetImagePulling (false )
312+ imageStatus .SetError (errdefs .ErrNotFound )
313+ status , message , err = puller .GetImageStatus (ctx , testNodeImageSetName , testImageName , ofenv1 .RegistryPolicyMirrorOnly )
314+ assert .NoError (t , err )
315+ assert .Equal (t , ofenv1 .ImageDownloadTemporarilyFailed , status )
316+ assert .Equal (t , "not found" , message )
298317}
299318
300319func TestImagePullerGetImageStatusNonexistentNodeImageSet (t * testing.T ) {
@@ -306,7 +325,7 @@ func TestImagePullerGetImageStatusNonexistentNodeImageSet(t *testing.T) {
306325
307326 ctx := context .Background ()
308327
309- status , message , err := puller .GetImageStatus (ctx , "nonexistent" , testImageName )
328+ status , message , err := puller .GetImageStatus (ctx , "nonexistent" , testImageName , ofenv1 . RegistryPolicyDefault )
310329 assert .NoError (t , err )
311330 assert .Empty (t , status )
312331 assert .Empty (t , message )
0 commit comments