update vendored go-containerregistry
This commit is contained in:
parent
a7c82cf6f6
commit
28f3ec30c2
|
|
@ -275,7 +275,7 @@ func numLayers(image string) (int, error) {
|
|||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
img, err := daemon.Image(ref, &daemon.ReadOptions{})
|
||||
img, err := daemon.Image(ref)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,14 +30,42 @@ import (
|
|||
// image accesses an image from a docker daemon
|
||||
type image struct {
|
||||
v1.Image
|
||||
}
|
||||
|
||||
type ReadOptions struct {
|
||||
Buffer bool
|
||||
opener tarball.Opener
|
||||
ref name.Reference
|
||||
}
|
||||
|
||||
var _ v1.Image = (*image)(nil)
|
||||
|
||||
type imageOpener struct {
|
||||
ref name.Reference
|
||||
buffered bool
|
||||
}
|
||||
|
||||
type ImageOption func(*imageOpener) error
|
||||
|
||||
func (i *imageOpener) Open() (v1.Image, error) {
|
||||
var opener tarball.Opener
|
||||
var err error
|
||||
if i.buffered {
|
||||
opener, err = bufferedOpener(i.ref)
|
||||
} else {
|
||||
opener, err = unbufferedOpener(i.ref)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
tb, err := tarball.Image(opener, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
img := &image{
|
||||
Image: tb,
|
||||
}
|
||||
return img, nil
|
||||
}
|
||||
|
||||
// API interface for testing.
|
||||
type ImageSaver interface {
|
||||
ImageSave(context.Context, []string) (io.ReadCloser, error)
|
||||
|
|
@ -83,25 +111,18 @@ func unbufferedOpener(ref name.Reference) (tarball.Opener, error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
// Image exposes an image reference from within the Docker daemon.
|
||||
func Image(ref name.Reference, ro *ReadOptions) (v1.Image, error) {
|
||||
var opener tarball.Opener
|
||||
var err error
|
||||
if ro.Buffer {
|
||||
opener, err = bufferedOpener(ref)
|
||||
} else {
|
||||
opener, err = unbufferedOpener(ref)
|
||||
// Image provides access to an image reference from the Docker daemon,
|
||||
// applying functional options to the underlying imageOpener before
|
||||
// resolving the reference into a v1.Image.
|
||||
func Image(ref name.Reference, options ...ImageOption) (v1.Image, error) {
|
||||
i := &imageOpener{
|
||||
ref: ref,
|
||||
buffered: true, // buffer by default
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
for _, option := range options {
|
||||
if err := option(i); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
tb, err := tarball.Image(opener, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
img := &image{
|
||||
Image: tb,
|
||||
}
|
||||
return img, nil
|
||||
return i.Open()
|
||||
}
|
||||
|
|
|
|||
32
vendor/github.com/google/go-containerregistry/pkg/v1/daemon/options.go
generated
vendored
Normal file
32
vendor/github.com/google/go-containerregistry/pkg/v1/daemon/options.go
generated
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright 2018 Google LLC All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package daemon
|
||||
|
||||
func WithBufferedOpener() ImageOption {
|
||||
return func(i *imageOpener) error {
|
||||
return i.setBuffered(true)
|
||||
}
|
||||
}
|
||||
|
||||
func WithUnbufferedOpener() ImageOption {
|
||||
return func(i *imageOpener) error {
|
||||
return i.setBuffered(false)
|
||||
}
|
||||
}
|
||||
|
||||
func (i *imageOpener) setBuffered(buffer bool) error {
|
||||
i.buffered = buffer
|
||||
return nil
|
||||
}
|
||||
Loading…
Reference in New Issue