mirror of
https://github.com/containers/skopeo.git
synced 2025-08-01 06:55:43 +00:00
Merge pull request #1297 from containers/dependabot/go_modules/github.com/containers/common-0.39.0
Bump github.com/containers/common from 0.38.4 to 0.39.0
This commit is contained in:
commit
714ffe1b60
4
go.mod
4
go.mod
@ -3,10 +3,10 @@ module github.com/containers/skopeo
|
||||
go 1.12
|
||||
|
||||
require (
|
||||
github.com/containers/common v0.38.4
|
||||
github.com/containers/common v0.39.0
|
||||
github.com/containers/image/v5 v5.12.0
|
||||
github.com/containers/ocicrypt v1.1.1
|
||||
github.com/containers/storage v1.31.2
|
||||
github.com/containers/storage v1.32.0
|
||||
github.com/docker/docker v20.10.6+incompatible
|
||||
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect
|
||||
github.com/go-check/check v0.0.0-20180628173108-788fd7840127
|
||||
|
10
go.sum
10
go.sum
@ -196,8 +196,8 @@ github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ
|
||||
github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
|
||||
github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM=
|
||||
github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8=
|
||||
github.com/containers/common v0.38.4 h1:WYv4R6Sw1qiOPZtBNbKglrmisXdPcq3fZ3bGy4prrjo=
|
||||
github.com/containers/common v0.38.4/go.mod h1:egfpX/Y3+19Dz4Wa1eRZDdgzoEOeneieF9CQppKzLBg=
|
||||
github.com/containers/common v0.39.0 h1:MrvpFa/bM4UmUILACv2IhOif4oLmWAiD4C+CpOc/MUo=
|
||||
github.com/containers/common v0.39.0/go.mod h1:vPUHCg/dHoiyqIyLN+EdbjUaGrVEhs/hAvsqsxuYepk=
|
||||
github.com/containers/image/v5 v5.12.0 h1:1hNS2QkzFQ4lH3GYQLyAXB0acRMhS1Ubm6oV++8vw4w=
|
||||
github.com/containers/image/v5 v5.12.0/go.mod h1:VasTuHmOw+uD0oHCfApQcMO2+36SfyncoSahU7513Xs=
|
||||
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE=
|
||||
@ -207,9 +207,8 @@ github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgU
|
||||
github.com/containers/ocicrypt v1.1.1 h1:prL8l9w3ntVqXvNH1CiNn5ENjcCnr38JqpSyvKKB4GI=
|
||||
github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY=
|
||||
github.com/containers/storage v1.30.1/go.mod h1:NDJkiwxnSHD1Is+4DGcyR3SIEYSDOa0xnAW+uGQFx9E=
|
||||
github.com/containers/storage v1.31.1/go.mod h1:IFEf+yRTS0pvCGQt2tBv1Kzz2XUSPvED6uFBmWG7V/E=
|
||||
github.com/containers/storage v1.31.2 h1:wWi7OsNtHUydGdK0EpQiK94MfQNj5qK2GtxNLoj4tU4=
|
||||
github.com/containers/storage v1.31.2/go.mod h1:J3q772EVbN9vgqoN/dkvInKnp4xK9ZXm7wHNfuiIDgE=
|
||||
github.com/containers/storage v1.32.0 h1:l2O+EybfGVkisqDkRysKG1VAO6jPPIYOV5Q4/sau86c=
|
||||
github.com/containers/storage v1.32.0/go.mod h1:J3q772EVbN9vgqoN/dkvInKnp4xK9ZXm7wHNfuiIDgE=
|
||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||
@ -574,7 +573,6 @@ github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59P
|
||||
github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||
github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||
github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
|
||||
github.com/opencontainers/runc v1.0.0-rc94/go.mod h1:z+bZxa/+Tz/FmYVWkhUajJdzFeOqjc5vrqskhVyHGUM=
|
||||
github.com/opencontainers/runc v1.0.0-rc95 h1:RMuWVfY3E1ILlVsC3RhIq38n4sJtlOFwU9gfFZSqrd0=
|
||||
github.com/opencontainers/runc v1.0.0-rc95/go.mod h1:z+bZxa/+Tz/FmYVWkhUajJdzFeOqjc5vrqskhVyHGUM=
|
||||
github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
|
2
vendor/github.com/containers/storage/VERSION
generated
vendored
2
vendor/github.com/containers/storage/VERSION
generated
vendored
@ -1 +1 @@
|
||||
1.31.2
|
||||
1.32.0
|
||||
|
4
vendor/github.com/containers/storage/drivers/devmapper/deviceset.go
generated
vendored
4
vendor/github.com/containers/storage/drivers/devmapper/deviceset.go
generated
vendored
@ -2446,7 +2446,9 @@ func (devices *DeviceSet) UnmountDevice(hash, mountPath string) error {
|
||||
|
||||
logrus.Debugf("devmapper: Unmount(%s)", mountPath)
|
||||
if err := mount.Unmount(mountPath); err != nil {
|
||||
return err
|
||||
if ok, _ := Mounted(mountPath); ok {
|
||||
return err
|
||||
}
|
||||
}
|
||||
logrus.Debug("devmapper: Unmount done")
|
||||
|
||||
|
7
vendor/github.com/containers/storage/drivers/driver.go
generated
vendored
7
vendor/github.com/containers/storage/drivers/driver.go
generated
vendored
@ -230,6 +230,9 @@ type AdditionalLayer interface {
|
||||
// Info returns arbitrary information stored along with this layer (i.e. `info` file)
|
||||
Info() (io.ReadCloser, error)
|
||||
|
||||
// Blob returns a reader of the raw contents of this layer.
|
||||
Blob() (io.ReadCloser, error)
|
||||
|
||||
// Release tells the additional layer store that we don't use this handler.
|
||||
Release()
|
||||
}
|
||||
@ -243,6 +246,10 @@ type AdditionalLayerStoreDriver interface {
|
||||
// LookupAdditionalLayer looks up additional layer store by the specified
|
||||
// digest and ref and returns an object representing that layer.
|
||||
LookupAdditionalLayer(d digest.Digest, ref string) (AdditionalLayer, error)
|
||||
|
||||
// LookupAdditionalLayer looks up additional layer store by the specified
|
||||
// ID and returns an object representing that layer.
|
||||
LookupAdditionalLayerByID(id string) (AdditionalLayer, error)
|
||||
}
|
||||
|
||||
// DiffGetterDriver is the interface for layered file system drivers that
|
||||
|
46
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
46
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
@ -721,6 +721,7 @@ func (d *Driver) Cleanup() error {
|
||||
// LookupAdditionalLayer looks up additional layer store by the specified
|
||||
// digest and ref and returns an object representing that layer.
|
||||
// This API is experimental and can be changed without bumping the major version number.
|
||||
// TODO: to remove the comment once it's no longer experimental.
|
||||
func (d *Driver) LookupAdditionalLayer(dgst digest.Digest, ref string) (graphdriver.AdditionalLayer, error) {
|
||||
l, err := d.getAdditionalLayerPath(dgst, ref)
|
||||
if err != nil {
|
||||
@ -736,6 +737,25 @@ func (d *Driver) LookupAdditionalLayer(dgst digest.Digest, ref string) (graphdri
|
||||
}, nil
|
||||
}
|
||||
|
||||
// LookupAdditionalLayerByID looks up additional layer store by the specified
|
||||
// ID and returns an object representing that layer.
|
||||
// This API is experimental and can be changed without bumping the major version number.
|
||||
// TODO: to remove the comment once it's no longer experimental.
|
||||
func (d *Driver) LookupAdditionalLayerByID(id string) (graphdriver.AdditionalLayer, error) {
|
||||
l, err := d.getAdditionalLayerPathByID(id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// Tell the additional layer store that we use this layer.
|
||||
// This will increase reference counter on the store's side.
|
||||
// This will be decreased on Release() method.
|
||||
notifyUseAdditionalLayer(l)
|
||||
return &additionalLayer{
|
||||
path: l,
|
||||
d: d,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// CreateFromTemplate creates a layer with the same contents and parent as another layer.
|
||||
func (d *Driver) CreateFromTemplate(id, template string, templateIDMappings *idtools.IDMappings, parent string, parentIDMappings *idtools.IDMappings, opts *graphdriver.CreateOpts, readWrite bool) error {
|
||||
if readWrite {
|
||||
@ -1655,7 +1675,7 @@ func (d *Driver) getLowerDiffPaths(id string) ([]string, error) {
|
||||
// and its parent and returns the size in bytes of the changes
|
||||
// relative to its base filesystem directory.
|
||||
func (d *Driver) DiffSize(id string, idMappings *idtools.IDMappings, parent string, parentMappings *idtools.IDMappings, mountLabel string) (size int64, err error) {
|
||||
if d.useNaiveDiff() || !d.isParent(id, parent) {
|
||||
if d.options.mountProgram == "" && (d.useNaiveDiff() || !d.isParent(id, parent)) {
|
||||
return d.naiveDiff.DiffSize(id, idMappings, parent, parentMappings, mountLabel)
|
||||
}
|
||||
|
||||
@ -1833,9 +1853,7 @@ func (d *Driver) getAdditionalLayerPath(dgst digest.Digest, ref string) (string,
|
||||
for _, p := range []string{
|
||||
filepath.Join(target, "diff"),
|
||||
filepath.Join(target, "info"),
|
||||
// TODO(ktock): We should have an API to expose the stream data of this layer
|
||||
// to enable the client to retrieve the entire contents of this
|
||||
// layer when it exports this layer.
|
||||
filepath.Join(target, "blob"),
|
||||
} {
|
||||
if _, err := os.Stat(p); err != nil {
|
||||
return "", errors.Wrapf(graphdriver.ErrLayerUnknown,
|
||||
@ -1850,8 +1868,8 @@ func (d *Driver) getAdditionalLayerPath(dgst digest.Digest, ref string) (string,
|
||||
}
|
||||
|
||||
func (d *Driver) releaseAdditionalLayerByID(id string) {
|
||||
if al, err := ioutil.ReadFile(path.Join(d.dir(id), "additionallayer")); err == nil {
|
||||
notifyReleaseAdditionalLayer(string(al))
|
||||
if al, err := d.getAdditionalLayerPathByID(id); err == nil {
|
||||
notifyReleaseAdditionalLayer(al)
|
||||
} else if !os.IsNotExist(err) {
|
||||
logrus.Warnf("unexpected error on reading Additional Layer Store pointer %v", err)
|
||||
}
|
||||
@ -1866,12 +1884,19 @@ type additionalLayer struct {
|
||||
|
||||
// Info returns arbitrary information stored along with this layer (i.e. `info` file).
|
||||
// This API is experimental and can be changed without bumping the major version number.
|
||||
// TODO: to remove the comment once it's no longer experimental.
|
||||
func (al *additionalLayer) Info() (io.ReadCloser, error) {
|
||||
return os.Open(filepath.Join(al.path, "info"))
|
||||
}
|
||||
|
||||
// Blob returns a reader of the raw contents of this leyer.
|
||||
func (al *additionalLayer) Blob() (io.ReadCloser, error) {
|
||||
return os.Open(filepath.Join(al.path, "blob"))
|
||||
}
|
||||
|
||||
// CreateAs creates a new layer from this additional layer.
|
||||
// This API is experimental and can be changed without bumping the major version number.
|
||||
// TODO: to remove the comment once it's no longer experimental.
|
||||
func (al *additionalLayer) CreateAs(id, parent string) error {
|
||||
// TODO: support opts
|
||||
if err := al.d.Create(id, parent, nil); err != nil {
|
||||
@ -1891,8 +1916,17 @@ func (al *additionalLayer) CreateAs(id, parent string) error {
|
||||
return os.Symlink(filepath.Join(al.path, "diff"), diffDir)
|
||||
}
|
||||
|
||||
func (d *Driver) getAdditionalLayerPathByID(id string) (string, error) {
|
||||
al, err := ioutil.ReadFile(path.Join(d.dir(id), "additionallayer"))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(al), nil
|
||||
}
|
||||
|
||||
// Release tells the additional layer store that we don't use this handler.
|
||||
// This API is experimental and can be changed without bumping the major version number.
|
||||
// TODO: to remove the comment once it's no longer experimental.
|
||||
func (al *additionalLayer) Release() {
|
||||
// Tell the additional layer store that we don't use this layer handler.
|
||||
// This will decrease the reference counter on the store's side, which was
|
||||
|
59
vendor/github.com/containers/storage/layers.go
generated
vendored
59
vendor/github.com/containers/storage/layers.go
generated
vendored
@ -1401,6 +1401,52 @@ func (r *layerStore) Diff(from, to string, options *DiffOptions) (io.ReadCloser,
|
||||
return maybeCompressReadCloser(diff)
|
||||
}
|
||||
|
||||
if ad, ok := r.driver.(drivers.AdditionalLayerStoreDriver); ok {
|
||||
if aLayer, err := ad.LookupAdditionalLayerByID(to); err == nil {
|
||||
// This is an additional layer. We leverage blob API for aquiring the reproduced raw blob.
|
||||
info, err := aLayer.Info()
|
||||
if err != nil {
|
||||
aLayer.Release()
|
||||
return nil, err
|
||||
}
|
||||
defer info.Close()
|
||||
layer := &Layer{}
|
||||
if err := json.NewDecoder(info).Decode(layer); err != nil {
|
||||
aLayer.Release()
|
||||
return nil, err
|
||||
}
|
||||
blob, err := aLayer.Blob()
|
||||
if err != nil {
|
||||
aLayer.Release()
|
||||
return nil, err
|
||||
}
|
||||
// If layer compression type is different from the expected one, decompress and convert it.
|
||||
if compression != layer.CompressionType {
|
||||
diff, err := archive.DecompressStream(blob)
|
||||
if err != nil {
|
||||
if err2 := blob.Close(); err2 != nil {
|
||||
err = errors.Wrapf(err, "failed to close blob file: %v", err2)
|
||||
}
|
||||
aLayer.Release()
|
||||
return nil, err
|
||||
}
|
||||
rc, err := maybeCompressReadCloser(diff)
|
||||
if err != nil {
|
||||
if err2 := closeAll(blob.Close, diff.Close); err2 != nil {
|
||||
err = errors.Wrapf(err, "failed to cleanup: %v", err2)
|
||||
}
|
||||
aLayer.Release()
|
||||
return nil, err
|
||||
}
|
||||
return ioutils.NewReadCloserWrapper(rc, func() error {
|
||||
defer aLayer.Release()
|
||||
return closeAll(blob.Close, rc.Close)
|
||||
}), nil
|
||||
}
|
||||
return ioutils.NewReadCloserWrapper(blob, func() error { defer aLayer.Release(); return blob.Close() }), nil
|
||||
}
|
||||
}
|
||||
|
||||
tsfile, err := os.Open(r.tspath(to))
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
@ -1733,3 +1779,16 @@ func (r *layerStore) ReloadIfChanged() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func closeAll(closes ...func() error) (rErr error) {
|
||||
for _, f := range closes {
|
||||
if err := f(); err != nil {
|
||||
if rErr == nil {
|
||||
rErr = errors.Wrapf(err, "close error")
|
||||
continue
|
||||
}
|
||||
rErr = errors.Wrapf(rErr, "%v", err)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
4
vendor/modules.txt
vendored
4
vendor/modules.txt
vendored
@ -41,7 +41,7 @@ github.com/containerd/cgroups/stats/v1
|
||||
github.com/containerd/containerd/errdefs
|
||||
github.com/containerd/containerd/log
|
||||
github.com/containerd/containerd/platforms
|
||||
# github.com/containers/common v0.38.4
|
||||
# github.com/containers/common v0.39.0
|
||||
github.com/containers/common/pkg/auth
|
||||
github.com/containers/common/pkg/capabilities
|
||||
github.com/containers/common/pkg/completion
|
||||
@ -111,7 +111,7 @@ github.com/containers/ocicrypt/keywrap/pkcs7
|
||||
github.com/containers/ocicrypt/spec
|
||||
github.com/containers/ocicrypt/utils
|
||||
github.com/containers/ocicrypt/utils/keyprovider
|
||||
# github.com/containers/storage v1.31.2
|
||||
# github.com/containers/storage v1.32.0
|
||||
github.com/containers/storage
|
||||
github.com/containers/storage/drivers
|
||||
github.com/containers/storage/drivers/aufs
|
||||
|
Loading…
Reference in New Issue
Block a user