github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/worker/image/load_metadata.go (about)

     1  package image
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"io"
     7  
     8  	"github.com/pf-qiu/concourse/v6/atc/worker"
     9  )
    10  
    11  type MalformedMetadataError struct {
    12  	UnmarshalError error
    13  }
    14  
    15  func (err MalformedMetadataError) Error() string {
    16  	return fmt.Sprintf("malformed image metadata: %s", err.UnmarshalError)
    17  }
    18  
    19  func loadMetadata(tarReader io.ReadCloser) (worker.ImageMetadata, error) {
    20  	defer tarReader.Close()
    21  
    22  	var imageMetadata worker.ImageMetadata
    23  	if err := json.NewDecoder(tarReader).Decode(&imageMetadata); err != nil {
    24  		return worker.ImageMetadata{}, MalformedMetadataError{
    25  			UnmarshalError: err,
    26  		}
    27  	}
    28  
    29  	return imageMetadata, nil
    30  }