@@ -216,7 +216,7 @@ func (s *saveSession) save(outStream io.Writer) error {
216216 return nil
217217}
218218
219- func (s * saveSession ) saveImage (id image.ID ) (map [layer.DiffID ]* distribution.Descriptor , error ) {
219+ func (s * saveSession ) saveImage (id image.ID ) (map [layer.DiffID ]distribution.Descriptor , error ) {
220220 img , err := s .is .Get (id )
221221 if err != nil {
222222 return nil , err
@@ -228,7 +228,7 @@ func (s *saveSession) saveImage(id image.ID) (map[layer.DiffID]*distribution.Des
228228
229229 var parent digest.Digest
230230 var layers []string
231- var foreignSrcs map [layer.DiffID ]* distribution.Descriptor
231+ var foreignSrcs map [layer.DiffID ]distribution.Descriptor
232232 for i := range img .RootFS .DiffIDs {
233233 v1Img := image.V1Image {}
234234 if i == len (img .RootFS .DiffIDs )- 1 {
@@ -252,9 +252,9 @@ func (s *saveSession) saveImage(id image.ID) (map[layer.DiffID]*distribution.Des
252252 }
253253 layers = append (layers , v1Img .ID )
254254 parent = v1ID
255- if src != nil {
255+ if src . Digest != "" {
256256 if foreignSrcs == nil {
257- foreignSrcs = make (map [layer.DiffID ]* distribution.Descriptor )
257+ foreignSrcs = make (map [layer.DiffID ]distribution.Descriptor )
258258 }
259259 foreignSrcs [img .RootFS .DiffIDs [i ]] = src
260260 }
@@ -272,65 +272,65 @@ func (s *saveSession) saveImage(id image.ID) (map[layer.DiffID]*distribution.Des
272272 return foreignSrcs , nil
273273}
274274
275- func (s * saveSession ) saveLayer (id layer.ChainID , legacyImg image.V1Image , createdTime time.Time ) (* distribution.Descriptor , error ) {
275+ func (s * saveSession ) saveLayer (id layer.ChainID , legacyImg image.V1Image , createdTime time.Time ) (distribution.Descriptor , error ) {
276276 if _ , exists := s .savedLayers [legacyImg .ID ]; exists {
277- return nil , nil
277+ return distribution. Descriptor {} , nil
278278 }
279279
280280 outDir := filepath .Join (s .outDir , legacyImg .ID )
281281 if err := os .Mkdir (outDir , 0755 ); err != nil {
282- return nil , err
282+ return distribution. Descriptor {} , err
283283 }
284284
285285 // todo: why is this version file here?
286286 if err := ioutil .WriteFile (filepath .Join (outDir , legacyVersionFileName ), []byte ("1.0" ), 0644 ); err != nil {
287- return nil , err
287+ return distribution. Descriptor {} , err
288288 }
289289
290290 imageConfig , err := json .Marshal (legacyImg )
291291 if err != nil {
292- return nil , err
292+ return distribution. Descriptor {} , err
293293 }
294294
295295 if err := ioutil .WriteFile (filepath .Join (outDir , legacyConfigFileName ), imageConfig , 0644 ); err != nil {
296- return nil , err
296+ return distribution. Descriptor {} , err
297297 }
298298
299299 // serialize filesystem
300300 tarFile , err := os .Create (filepath .Join (outDir , legacyLayerFileName ))
301301 if err != nil {
302- return nil , err
302+ return distribution. Descriptor {} , err
303303 }
304304 defer tarFile .Close ()
305305
306306 l , err := s .ls .Get (id )
307307 if err != nil {
308- return nil , err
308+ return distribution. Descriptor {} , err
309309 }
310310 defer layer .ReleaseAndLog (s .ls , l )
311311
312312 arch , err := l .TarStream ()
313313 if err != nil {
314- return nil , err
314+ return distribution. Descriptor {} , err
315315 }
316316 defer arch .Close ()
317317
318318 if _ , err := io .Copy (tarFile , arch ); err != nil {
319- return nil , err
319+ return distribution. Descriptor {} , err
320320 }
321321
322322 for _ , fname := range []string {"" , legacyVersionFileName , legacyConfigFileName , legacyLayerFileName } {
323323 // todo: maybe save layer created timestamp?
324324 if err := system .Chtimes (filepath .Join (outDir , fname ), createdTime , createdTime ); err != nil {
325- return nil , err
325+ return distribution. Descriptor {} , err
326326 }
327327 }
328328
329329 s .savedLayers [legacyImg .ID ] = struct {}{}
330330
331- var src * distribution.Descriptor
332- if fs , ok := l .(layer. ForeignSourcer ); ok {
333- src = fs .ForeignSource ()
331+ var src distribution.Descriptor
332+ if fs , ok := l .(distribution. Describable ); ok {
333+ src = fs .Descriptor ()
334334 }
335335 return src , nil
336336}
0 commit comments