@@ -277,8 +277,15 @@ func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source
277
277
}
278
278
279
279
if ! e .storeAllowIncomplete {
280
+ var refs []cache.ImmutableRef
280
281
if src .Ref != nil {
281
- remotes , err := src .Ref .GetRemotes (ctx , false , e .opts .RefCfg , false , session .NewGroup (sessionID ))
282
+ refs = append (refs , src .Ref )
283
+ }
284
+ for _ , ref := range src .Refs {
285
+ refs = append (refs , ref )
286
+ }
287
+ for _ , ref := range refs {
288
+ remotes , err := ref .GetRemotes (ctx , false , e .opts .RefCfg , false , session .NewGroup (sessionID ))
282
289
if err != nil {
283
290
return nil , nil , err
284
291
}
@@ -289,20 +296,6 @@ func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source
289
296
}
290
297
}
291
298
}
292
- if len (src .Refs ) > 0 {
293
- for _ , r := range src .Refs {
294
- remotes , err := r .GetRemotes (ctx , false , e .opts .RefCfg , false , session .NewGroup (sessionID ))
295
- if err != nil {
296
- return nil , nil , err
297
- }
298
- remote := remotes [0 ]
299
- if unlazier , ok := remote .Provider .(cache.Unlazier ); ok {
300
- if err := unlazier .Unlazy (ctx ); err != nil {
301
- return nil , nil , err
302
- }
303
- }
304
- }
305
- }
306
299
}
307
300
}
308
301
if e .push {
@@ -331,10 +324,18 @@ func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source
331
324
}
332
325
333
326
func (e * imageExporterInstance ) pushImage (ctx context.Context , src * exporter.Source , sessionID string , targetName string , dgst digest.Digest ) error {
327
+ var refs []cache.ImmutableRef
328
+ if src .Ref != nil {
329
+ refs = append (refs , src .Ref )
330
+ }
331
+ for _ , ref := range src .Refs {
332
+ refs = append (refs , ref )
333
+ }
334
+
334
335
annotations := map [digest.Digest ]map [string ]string {}
335
336
mprovider := contentutil .NewMultiProvider (e .opt .ImageWriter .ContentStore ())
336
- if src . Ref != nil {
337
- remotes , err := src . Ref .GetRemotes (ctx , false , e .opts .RefCfg , false , session .NewGroup (sessionID ))
337
+ for _ , ref := range refs {
338
+ remotes , err := ref .GetRemotes (ctx , false , e .opts .RefCfg , false , session .NewGroup (sessionID ))
338
339
if err != nil {
339
340
return err
340
341
}
@@ -344,19 +345,6 @@ func (e *imageExporterInstance) pushImage(ctx context.Context, src *exporter.Sou
344
345
addAnnotations (annotations , desc )
345
346
}
346
347
}
347
- if len (src .Refs ) > 0 {
348
- for _ , r := range src .Refs {
349
- remotes , err := r .GetRemotes (ctx , false , e .opts .RefCfg , false , session .NewGroup (sessionID ))
350
- if err != nil {
351
- return err
352
- }
353
- remote := remotes [0 ]
354
- for _ , desc := range remote .Descriptors {
355
- mprovider .Add (desc .Digest , remote .Provider )
356
- addAnnotations (annotations , desc )
357
- }
358
- }
359
- }
360
348
return push .Push (ctx , e .opt .SessionManager , sessionID , mprovider , e .opt .ImageWriter .ContentStore (), dgst , targetName , e .insecure , e .opt .RegistryHosts , e .pushByDigest , annotations )
361
349
}
362
350
0 commit comments