Merge pull request #388 from ianberinger/master
Update go-containerregistry dependency
This commit is contained in:
		
						commit
						03db09e95f
					
				|  | @ -431,7 +431,7 @@ | ||||||
| 
 | 
 | ||||||
| [[projects]] | [[projects]] | ||||||
|   branch = "master" |   branch = "master" | ||||||
|   digest = "1:edf64d541c12aaf4f279642ea9939f035dcc9fc2edf649aba295e9cbca2c28d4" |   digest = "1:764d0a9bb2c987d9333c5b0a256bc94791db50c0b5be2fa10f2247b1dcbd7a04" | ||||||
|   name = "github.com/google/go-containerregistry" |   name = "github.com/google/go-containerregistry" | ||||||
|   packages = [ |   packages = [ | ||||||
|     "pkg/authn", |     "pkg/authn", | ||||||
|  | @ -450,7 +450,7 @@ | ||||||
|     "pkg/v1/v1util", |     "pkg/v1/v1util", | ||||||
|   ] |   ] | ||||||
|   pruneopts = "NUT" |   pruneopts = "NUT" | ||||||
|   revision = "03167950e20ac82689f50828811e69cdd9e02af2" |   revision = "24bbadfcffb5e05b1578cb2bd5438992ada3b546" | ||||||
| 
 | 
 | ||||||
| [[projects]] | [[projects]] | ||||||
|   digest = "1:f4f203acd8b11b8747bdcd91696a01dbc95ccb9e2ca2db6abf81c3a4f5e950ce" |   digest = "1:f4f203acd8b11b8747bdcd91696a01dbc95ccb9e2ca2db6abf81c3a4f5e950ce" | ||||||
|  |  | ||||||
|  | @ -125,6 +125,11 @@ func (i *compressedImageExtender) Layers() ([]v1.Layer, error) { | ||||||
| 
 | 
 | ||||||
| // LayerByDigest implements v1.Image
 | // LayerByDigest implements v1.Image
 | ||||||
| func (i *compressedImageExtender) LayerByDigest(h v1.Hash) (v1.Layer, error) { | func (i *compressedImageExtender) LayerByDigest(h v1.Hash) (v1.Layer, error) { | ||||||
|  | 	if cfgName, err := i.ConfigName(); err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} else if cfgName == h { | ||||||
|  | 		return ConfigLayer(i) | ||||||
|  | 	} | ||||||
| 	cl, err := i.CompressedImageCore.LayerByDigest(h) | 	cl, err := i.CompressedImageCore.LayerByDigest(h) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
|  |  | ||||||
|  | @ -37,8 +37,12 @@ type UncompressedLayer interface { | ||||||
| // uncompressedLayerExtender implements v1.Image using the uncompressed base properties.
 | // uncompressedLayerExtender implements v1.Image using the uncompressed base properties.
 | ||||||
| type uncompressedLayerExtender struct { | type uncompressedLayerExtender struct { | ||||||
| 	UncompressedLayer | 	UncompressedLayer | ||||||
| 	// TODO(mattmoor): Memoize size/hash so that the methods aren't twice as
 | 	// Memoize size/hash so that the methods aren't twice as
 | ||||||
| 	// expensive as doing this manually.
 | 	// expensive as doing this manually.
 | ||||||
|  | 	hash          v1.Hash | ||||||
|  | 	size          int64 | ||||||
|  | 	hashSizeError error | ||||||
|  | 	once          sync.Once | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Compressed implements v1.Layer
 | // Compressed implements v1.Layer
 | ||||||
|  | @ -52,29 +56,31 @@ func (ule *uncompressedLayerExtender) Compressed() (io.ReadCloser, error) { | ||||||
| 
 | 
 | ||||||
| // Digest implements v1.Layer
 | // Digest implements v1.Layer
 | ||||||
| func (ule *uncompressedLayerExtender) Digest() (v1.Hash, error) { | func (ule *uncompressedLayerExtender) Digest() (v1.Hash, error) { | ||||||
| 	r, err := ule.Compressed() | 	ule.calcSizeHash() | ||||||
| 	if err != nil { | 	return ule.hash, ule.hashSizeError | ||||||
| 		return v1.Hash{}, err |  | ||||||
| 	} |  | ||||||
| 	defer r.Close() |  | ||||||
| 	h, _, err := v1.SHA256(r) |  | ||||||
| 	return h, err |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Size implements v1.Layer
 | // Size implements v1.Layer
 | ||||||
| func (ule *uncompressedLayerExtender) Size() (int64, error) { | func (ule *uncompressedLayerExtender) Size() (int64, error) { | ||||||
| 	r, err := ule.Compressed() | 	ule.calcSizeHash() | ||||||
| 	if err != nil { | 	return ule.size, ule.hashSizeError | ||||||
| 		return -1, err | } | ||||||
|  | 
 | ||||||
|  | func (ule *uncompressedLayerExtender) calcSizeHash() { | ||||||
|  | 	ule.once.Do(func() { | ||||||
|  | 		var r io.ReadCloser | ||||||
|  | 		r, ule.hashSizeError = ule.Compressed() | ||||||
|  | 		if ule.hashSizeError != nil { | ||||||
|  | 			return | ||||||
| 		} | 		} | ||||||
| 		defer r.Close() | 		defer r.Close() | ||||||
| 	_, i, err := v1.SHA256(r) | 		ule.hash, ule.size, ule.hashSizeError = v1.SHA256(r) | ||||||
| 	return i, err | 	}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // UncompressedToLayer fills in the missing methods from an UncompressedLayer so that it implements v1.Layer
 | // UncompressedToLayer fills in the missing methods from an UncompressedLayer so that it implements v1.Layer
 | ||||||
| func UncompressedToLayer(ul UncompressedLayer) (v1.Layer, error) { | func UncompressedToLayer(ul UncompressedLayer) (v1.Layer, error) { | ||||||
| 	return &uncompressedLayerExtender{ul}, nil | 	return &uncompressedLayerExtender{UncompressedLayer: ul}, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // UncompressedImageCore represents the bare minimum interface a natively
 | // UncompressedImageCore represents the bare minimum interface a natively
 | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go
								
								
									generated
								
								
									vendored
								
								
							
							
						
						
									
										19
									
								
								vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go
								
								
									generated
								
								
									vendored
								
								
							|  | @ -46,6 +46,7 @@ var _ http.RoundTripper = (*bearerTransport)(nil) | ||||||
| 
 | 
 | ||||||
| // RoundTrip implements http.RoundTripper
 | // RoundTrip implements http.RoundTripper
 | ||||||
| func (bt *bearerTransport) RoundTrip(in *http.Request) (*http.Response, error) { | func (bt *bearerTransport) RoundTrip(in *http.Request) (*http.Response, error) { | ||||||
|  | 	sendRequest := func() (*http.Response, error) { | ||||||
| 		hdr, err := bt.bearer.Authorization() | 		hdr, err := bt.bearer.Authorization() | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
|  | @ -59,9 +60,23 @@ func (bt *bearerTransport) RoundTrip(in *http.Request) (*http.Response, error) { | ||||||
| 			in.Header.Set("Authorization", hdr) | 			in.Header.Set("Authorization", hdr) | ||||||
| 		} | 		} | ||||||
| 		in.Header.Set("User-Agent", transportName) | 		in.Header.Set("User-Agent", transportName) | ||||||
| 
 |  | ||||||
| 	// TODO(mattmoor): On 401s perform a single refresh() and retry.
 |  | ||||||
| 		return bt.inner.RoundTrip(in) | 		return bt.inner.RoundTrip(in) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	res, err := sendRequest() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// Perform a token refresh() and retry the request in case the token has expired
 | ||||||
|  | 	if res.StatusCode == http.StatusUnauthorized { | ||||||
|  | 		if err = bt.refresh(); err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 		return sendRequest() | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return res, err | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (bt *bearerTransport) refresh() error { | func (bt *bearerTransport) refresh() error { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue