mirror of
https://github.com/containers/podman.git
synced 2025-06-22 18:08:11 +08:00
Bump github.com/containers/storage from 1.19.2 to 1.20.1
Bumps [github.com/containers/storage](https://github.com/containers/storage) from 1.19.2 to 1.20.1. - [Release notes](https://github.com/containers/storage/releases) - [Changelog](https://github.com/containers/storage/blob/master/docs/containers-storage-changes.md) - [Commits](https://github.com/containers/storage/compare/v1.19.2...v1.20.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
4
go.mod
4
go.mod
@ -15,7 +15,7 @@ require (
|
|||||||
github.com/containers/conmon v2.0.16+incompatible
|
github.com/containers/conmon v2.0.16+incompatible
|
||||||
github.com/containers/image/v5 v5.4.4
|
github.com/containers/image/v5 v5.4.4
|
||||||
github.com/containers/psgo v1.5.0
|
github.com/containers/psgo v1.5.0
|
||||||
github.com/containers/storage v1.19.2
|
github.com/containers/storage v1.20.1
|
||||||
github.com/coreos/go-systemd/v22 v22.0.0
|
github.com/coreos/go-systemd/v22 v22.0.0
|
||||||
github.com/cri-o/ocicni v0.2.0
|
github.com/cri-o/ocicni v0.2.0
|
||||||
github.com/cyphar/filepath-securejoin v0.2.2
|
github.com/cyphar/filepath-securejoin v0.2.2
|
||||||
@ -37,7 +37,7 @@ require (
|
|||||||
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618
|
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618
|
||||||
github.com/onsi/ginkgo v1.12.1
|
github.com/onsi/ginkgo v1.12.1
|
||||||
github.com/onsi/gomega v1.10.1
|
github.com/onsi/gomega v1.10.1
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1
|
github.com/opencontainers/go-digest v1.0.0
|
||||||
github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6
|
github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6
|
||||||
github.com/opencontainers/runc v1.0.0-rc9
|
github.com/opencontainers/runc v1.0.0-rc9
|
||||||
github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7
|
github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7
|
||||||
|
8
go.sum
8
go.sum
@ -98,8 +98,8 @@ github.com/containers/storage v1.19.0 h1:bVIF5EglbT5PQnqcN7sE6VWqoQzlToqzjXdz+eN
|
|||||||
github.com/containers/storage v1.19.0/go.mod h1:9Xc4rrTubn5hmtBfL+PSJH1XlfTQwR4VAG1NDUIpCts=
|
github.com/containers/storage v1.19.0/go.mod h1:9Xc4rrTubn5hmtBfL+PSJH1XlfTQwR4VAG1NDUIpCts=
|
||||||
github.com/containers/storage v1.19.1 h1:YKIzOO12iaD5Ra0PKFS6emcygbHLmwmQOCQRU/19YAQ=
|
github.com/containers/storage v1.19.1 h1:YKIzOO12iaD5Ra0PKFS6emcygbHLmwmQOCQRU/19YAQ=
|
||||||
github.com/containers/storage v1.19.1/go.mod h1:KbXjSwKnx17ejOsjFcCXSf78mCgZkQSLPBNTMRc3XrQ=
|
github.com/containers/storage v1.19.1/go.mod h1:KbXjSwKnx17ejOsjFcCXSf78mCgZkQSLPBNTMRc3XrQ=
|
||||||
github.com/containers/storage v1.19.2 h1:vhcUwEjDZiPJxaLPFsjvyavnEjFw6qQi9HAkVz1amfI=
|
github.com/containers/storage v1.20.1 h1:2XE4eRIqSa6YjhAZjNwIkIKE6+Miy+5WV8l1KzY2ZKk=
|
||||||
github.com/containers/storage v1.19.2/go.mod h1:gYCp3jzgXkvubO0rI14QAjz5Mxm/qKJgLmHFyqayDnw=
|
github.com/containers/storage v1.20.1/go.mod h1:RoKzO8KSDogCT6c06rEbanZTcKYxshorB33JikEGc3A=
|
||||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
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.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||||
github.com/coreos/go-iptables v0.4.5 h1:DpHb9vJrZQEFMcVLFKAAGMUVX0XoRC0ptCthinRYm38=
|
github.com/coreos/go-iptables v0.4.5 h1:DpHb9vJrZQEFMcVLFKAAGMUVX0XoRC0ptCthinRYm38=
|
||||||
@ -287,6 +287,8 @@ github.com/klauspost/compress v1.10.5 h1:7q6vHIqubShURwQz8cQK6yIe/xC3IF0Vm7TGfqj
|
|||||||
github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||||
github.com/klauspost/pgzip v1.2.3 h1:Ce2to9wvs/cuJ2b86/CKQoTYr9VHfpanYosZ0UBJqdw=
|
github.com/klauspost/pgzip v1.2.3 h1:Ce2to9wvs/cuJ2b86/CKQoTYr9VHfpanYosZ0UBJqdw=
|
||||||
github.com/klauspost/pgzip v1.2.3/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
github.com/klauspost/pgzip v1.2.3/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||||
|
github.com/klauspost/pgzip v1.2.4 h1:TQ7CNpYKovDOmqzRHKxJh0BeaBI7UdQZYc6p7pMQh1A=
|
||||||
|
github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
@ -360,6 +362,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
|
|||||||
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||||
|
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||||
|
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||||
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
||||||
github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6 h1:yN8BPXVwMBAm3Cuvh1L5XE8XpvYRMdsVLd82ILprhUU=
|
github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6 h1:yN8BPXVwMBAm3Cuvh1L5XE8XpvYRMdsVLd82ILprhUU=
|
||||||
github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
||||||
|
2
vendor/github.com/containers/storage/VERSION
generated
vendored
2
vendor/github.com/containers/storage/VERSION
generated
vendored
@ -1 +1 @@
|
|||||||
1.19.2
|
1.20.1
|
||||||
|
6
vendor/github.com/containers/storage/drivers/devmapper/deviceset.go
generated
vendored
6
vendor/github.com/containers/storage/drivers/devmapper/deviceset.go
generated
vendored
@ -272,7 +272,7 @@ func (devices *DeviceSet) ensureImage(name string, size int64) (string, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if err := idtools.MkdirAllAs(dirname, 0700, uid, gid); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAllAs(dirname, 0700, uid, gid); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1701,10 +1701,10 @@ func (devices *DeviceSet) initDevmapper(doInit bool) (retErr error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := idtools.MkdirAs(devices.root, 0700, uid, gid); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAs(devices.root, 0700, uid, gid); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(devices.metadataDir(), 0700); err != nil && !os.IsExist(err) {
|
if err := os.MkdirAll(devices.metadataDir(), 0700); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
vendor/github.com/containers/storage/drivers/devmapper/driver.go
generated
vendored
4
vendor/github.com/containers/storage/drivers/devmapper/driver.go
generated
vendored
@ -183,7 +183,7 @@ func (d *Driver) Get(id string, options graphdriver.MountOpts) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create the target directories if they don't exist
|
// Create the target directories if they don't exist
|
||||||
if err := idtools.MkdirAllAs(path.Join(d.home, "mnt"), 0755, uid, gid); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAllAs(path.Join(d.home, "mnt"), 0755, uid, gid); err != nil {
|
||||||
d.ctr.Decrement(mp)
|
d.ctr.Decrement(mp)
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@ -198,7 +198,7 @@ func (d *Driver) Get(id string, options graphdriver.MountOpts) (string, error) {
|
|||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := idtools.MkdirAllAs(rootFs, 0755, uid, gid); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAllAs(rootFs, 0755, uid, gid); err != nil {
|
||||||
d.ctr.Decrement(mp)
|
d.ctr.Decrement(mp)
|
||||||
d.DeviceSet.UnmountDevice(id, mp)
|
d.DeviceSet.UnmountDevice(id, mp)
|
||||||
return "", err
|
return "", err
|
||||||
|
2
vendor/github.com/containers/storage/drivers/overlay/check.go
generated
vendored
2
vendor/github.com/containers/storage/drivers/overlay/check.go
generated
vendored
@ -145,7 +145,7 @@ func doesMetacopy(d, mountOpts string) (bool, error) {
|
|||||||
opts = fmt.Sprintf("%s,%s", opts, data)
|
opts = fmt.Sprintf("%s,%s", opts, data)
|
||||||
}
|
}
|
||||||
if err := unix.Mount("overlay", filepath.Join(td, "merged"), "overlay", uintptr(flags), opts); err != nil {
|
if err := unix.Mount("overlay", filepath.Join(td, "merged"), "overlay", uintptr(flags), opts); err != nil {
|
||||||
return false, errors.Wrap(err, "failed to mount overlay for metacopy check")
|
return false, errors.Wrapf(err, "failed to mount overlay for metacopy check with %q options", mountOpts)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := unix.Unmount(filepath.Join(td, "merged"), 0); err != nil {
|
if err := unix.Unmount(filepath.Join(td, "merged"), 0); err != nil {
|
||||||
|
41
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
41
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
@ -33,6 +33,7 @@ import (
|
|||||||
"github.com/opencontainers/selinux/go-selinux/label"
|
"github.com/opencontainers/selinux/go-selinux/label"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/vbatts/tar-split/tar/storage"
|
||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -152,11 +153,11 @@ func Init(home string, options graphdriver.Options) (graphdriver.Driver, error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create the driver home dir
|
// Create the driver home dir
|
||||||
if err := idtools.MkdirAllAs(path.Join(home, linkDir), 0700, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAllAs(path.Join(home, linkDir), 0700, rootUID, rootGID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
runhome := filepath.Join(options.RunRoot, filepath.Base(home))
|
runhome := filepath.Join(options.RunRoot, filepath.Base(home))
|
||||||
if err := idtools.MkdirAllAs(runhome, 0700, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAllAs(runhome, 0700, rootUID, rootGID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -555,7 +556,7 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) (retErr
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// Make the link directory if it does not exist
|
// Make the link directory if it does not exist
|
||||||
if err := idtools.MkdirAllAs(path.Join(d.home, linkDir), 0700, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAllAs(path.Join(d.home, linkDir), 0700, rootUID, rootGID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := idtools.MkdirAllAs(path.Dir(dir), 0700, rootUID, rootGID); err != nil {
|
if err := idtools.MkdirAllAs(path.Dir(dir), 0700, rootUID, rootGID); err != nil {
|
||||||
@ -767,7 +768,7 @@ func (d *Driver) recreateSymlinks() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := idtools.MkdirAllAs(path.Join(d.home, linkDir), 0700, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
if err := idtools.MkdirAllAs(path.Join(d.home, linkDir), 0700, rootUID, rootGID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, dir := range dirs {
|
for _, dir := range dirs {
|
||||||
@ -809,6 +810,13 @@ func (d *Driver) get(id string, disableShifting bool, options graphdriver.MountO
|
|||||||
}
|
}
|
||||||
readWrite := true
|
readWrite := true
|
||||||
|
|
||||||
|
for _, o := range options.Options {
|
||||||
|
if o == "ro" {
|
||||||
|
readWrite = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
lowers, err := ioutil.ReadFile(path.Join(dir, lowerFile))
|
lowers, err := ioutil.ReadFile(path.Join(dir, lowerFile))
|
||||||
if err != nil && !os.IsNotExist(err) {
|
if err != nil && !os.IsNotExist(err) {
|
||||||
return "", err
|
return "", err
|
||||||
@ -886,7 +894,7 @@ func (d *Driver) get(id string, disableShifting bool, options graphdriver.MountO
|
|||||||
|
|
||||||
// if we are doing a readOnly mount, and there is only one lower
|
// if we are doing a readOnly mount, and there is only one lower
|
||||||
// We should just return the lower directory, no reason to mount.
|
// We should just return the lower directory, no reason to mount.
|
||||||
if !readWrite {
|
if !readWrite && d.options.mountProgram == "" {
|
||||||
if len(absLowers) == 0 {
|
if len(absLowers) == 0 {
|
||||||
return path.Join(dir, "empty"), nil
|
return path.Join(dir, "empty"), nil
|
||||||
}
|
}
|
||||||
@ -904,11 +912,9 @@ func (d *Driver) get(id string, disableShifting bool, options graphdriver.MountO
|
|||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
diffDir := path.Join(dir, "diff")
|
diffDir := path.Join(dir, "diff")
|
||||||
if readWrite {
|
if err := idtools.MkdirAllAs(diffDir, 0755, rootUID, rootGID); err != nil {
|
||||||
if err := idtools.MkdirAllAs(diffDir, 0755, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
mergedDir := path.Join(dir, "merged")
|
mergedDir := path.Join(dir, "merged")
|
||||||
// Create the driver merged dir
|
// Create the driver merged dir
|
||||||
@ -932,7 +938,7 @@ func (d *Driver) get(id string, disableShifting bool, options graphdriver.MountO
|
|||||||
if readWrite {
|
if readWrite {
|
||||||
opts = fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", strings.Join(absLowers, ":"), diffDir, path.Join(dir, "work"))
|
opts = fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", strings.Join(absLowers, ":"), diffDir, path.Join(dir, "work"))
|
||||||
} else {
|
} else {
|
||||||
opts = fmt.Sprintf("lowerdir=%s", strings.Join(absLowers, ":"))
|
opts = fmt.Sprintf("lowerdir=%s:%s", diffDir, strings.Join(absLowers, ":"))
|
||||||
}
|
}
|
||||||
if len(options.Options) > 0 {
|
if len(options.Options) > 0 {
|
||||||
opts = fmt.Sprintf("%s,%s", strings.Join(options.Options, ","), opts)
|
opts = fmt.Sprintf("%s,%s", strings.Join(options.Options, ","), opts)
|
||||||
@ -1018,7 +1024,7 @@ func (d *Driver) Put(id string) error {
|
|||||||
// If they fail, fallback to unix.Unmount
|
// If they fail, fallback to unix.Unmount
|
||||||
for _, v := range []string{"fusermount3", "fusermount"} {
|
for _, v := range []string{"fusermount3", "fusermount"} {
|
||||||
err := exec.Command(v, "-u", mountpoint).Run()
|
err := exec.Command(v, "-u", mountpoint).Run()
|
||||||
if err != nil && !os.IsNotExist(err) {
|
if err != nil && errors.Cause(err) != exec.ErrNotFound {
|
||||||
logrus.Debugf("Error unmounting %s with %s - %v", mountpoint, v, err)
|
logrus.Debugf("Error unmounting %s with %s - %v", mountpoint, v, err)
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@ -1090,6 +1096,21 @@ func (d *Driver) getWhiteoutFormat() archive.WhiteoutFormat {
|
|||||||
return whiteoutFormat
|
return whiteoutFormat
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type fileGetNilCloser struct {
|
||||||
|
storage.FileGetter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f fileGetNilCloser) Close() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DiffGetter returns a FileGetCloser that can read files from the directory that
|
||||||
|
// contains files for the layer differences. Used for direct access for tar-split.
|
||||||
|
func (d *Driver) DiffGetter(id string) (graphdriver.FileGetCloser, error) {
|
||||||
|
p := d.getDiffPath(id)
|
||||||
|
return fileGetNilCloser{storage.NewPathFileGetter(p)}, nil
|
||||||
|
}
|
||||||
|
|
||||||
// ApplyDiff applies the new layer into a root
|
// ApplyDiff applies the new layer into a root
|
||||||
func (d *Driver) ApplyDiff(id, parent string, options graphdriver.ApplyDiffOpts) (size int64, err error) {
|
func (d *Driver) ApplyDiff(id, parent string, options graphdriver.ApplyDiffOpts) (size int64, err error) {
|
||||||
|
|
||||||
|
16
vendor/github.com/containers/storage/drivers/vfs/driver.go
generated
vendored
16
vendor/github.com/containers/storage/drivers/vfs/driver.go
generated
vendored
@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/containers/storage/pkg/system"
|
"github.com/containers/storage/pkg/system"
|
||||||
"github.com/opencontainers/selinux/go-selinux/label"
|
"github.com/opencontainers/selinux/go-selinux/label"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/vbatts/tar-split/tar/storage"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -101,6 +102,21 @@ func (d *Driver) Cleanup() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type fileGetNilCloser struct {
|
||||||
|
storage.FileGetter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f fileGetNilCloser) Close() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DiffGetter returns a FileGetCloser that can read files from the directory that
|
||||||
|
// contains files for the layer differences. Used for direct access for tar-split.
|
||||||
|
func (d *Driver) DiffGetter(id string) (graphdriver.FileGetCloser, error) {
|
||||||
|
p := d.dir(id)
|
||||||
|
return fileGetNilCloser{storage.NewPathFileGetter(p)}, nil
|
||||||
|
}
|
||||||
|
|
||||||
// CreateFromTemplate creates a layer with the same contents and parent as another layer.
|
// 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 {
|
func (d *Driver) CreateFromTemplate(id, template string, templateIDMappings *idtools.IDMappings, parent string, parentIDMappings *idtools.IDMappings, opts *graphdriver.CreateOpts, readWrite bool) error {
|
||||||
if readWrite {
|
if readWrite {
|
||||||
|
4
vendor/github.com/containers/storage/go.mod
generated
vendored
4
vendor/github.com/containers/storage/go.mod
generated
vendored
@ -7,10 +7,10 @@ require (
|
|||||||
github.com/docker/go-units v0.4.0
|
github.com/docker/go-units v0.4.0
|
||||||
github.com/hashicorp/go-multierror v1.0.0
|
github.com/hashicorp/go-multierror v1.0.0
|
||||||
github.com/klauspost/compress v1.10.5
|
github.com/klauspost/compress v1.10.5
|
||||||
github.com/klauspost/pgzip v1.2.3
|
github.com/klauspost/pgzip v1.2.4
|
||||||
github.com/mattn/go-shellwords v1.0.10
|
github.com/mattn/go-shellwords v1.0.10
|
||||||
github.com/mistifyio/go-zfs v2.1.1+incompatible
|
github.com/mistifyio/go-zfs v2.1.1+incompatible
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1
|
github.com/opencontainers/go-digest v1.0.0
|
||||||
github.com/opencontainers/runc v1.0.0-rc9
|
github.com/opencontainers/runc v1.0.0-rc9
|
||||||
github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700
|
github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700
|
||||||
github.com/opencontainers/selinux v1.5.1
|
github.com/opencontainers/selinux v1.5.1
|
||||||
|
8
vendor/github.com/containers/storage/go.sum
generated
vendored
8
vendor/github.com/containers/storage/go.sum
generated
vendored
@ -44,8 +44,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL
|
|||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/klauspost/compress v1.10.5 h1:7q6vHIqubShURwQz8cQK6yIe/xC3IF0Vm7TGfqjewrc=
|
github.com/klauspost/compress v1.10.5 h1:7q6vHIqubShURwQz8cQK6yIe/xC3IF0Vm7TGfqjewrc=
|
||||||
github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||||
github.com/klauspost/pgzip v1.2.3 h1:Ce2to9wvs/cuJ2b86/CKQoTYr9VHfpanYosZ0UBJqdw=
|
github.com/klauspost/pgzip v1.2.4 h1:TQ7CNpYKovDOmqzRHKxJh0BeaBI7UdQZYc6p7pMQh1A=
|
||||||
github.com/klauspost/pgzip v1.2.3/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
@ -59,8 +59,8 @@ github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL
|
|||||||
github.com/mistifyio/go-zfs v2.1.1+incompatible h1:gAMO1HM9xBRONLHHYnu5iFsOJUiJdNZo6oqSENd4eW8=
|
github.com/mistifyio/go-zfs v2.1.1+incompatible h1:gAMO1HM9xBRONLHHYnu5iFsOJUiJdNZo6oqSENd4eW8=
|
||||||
github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
|
github.com/mistifyio/go-zfs v2.1.1+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4=
|
||||||
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||||
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
github.com/opencontainers/runc v1.0.0-rc9 h1:/k06BMULKF5hidyoZymkoDCzdJzltZpz/UU4LguQVtc=
|
github.com/opencontainers/runc v1.0.0-rc9 h1:/k06BMULKF5hidyoZymkoDCzdJzltZpz/UU4LguQVtc=
|
||||||
github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
|
28
vendor/github.com/containers/storage/pkg/fileutils/fileutils.go
generated
vendored
28
vendor/github.com/containers/storage/pkg/fileutils/fileutils.go
generated
vendored
@ -63,8 +63,6 @@ func NewPatternMatcher(patterns []string) (*PatternMatcher, error) {
|
|||||||
func (pm *PatternMatcher) Matches(file string) (bool, error) {
|
func (pm *PatternMatcher) Matches(file string) (bool, error) {
|
||||||
matched := false
|
matched := false
|
||||||
file = filepath.FromSlash(file)
|
file = filepath.FromSlash(file)
|
||||||
parentPath := filepath.Dir(file)
|
|
||||||
parentPathDirs := strings.Split(parentPath, string(os.PathSeparator))
|
|
||||||
|
|
||||||
for _, pattern := range pm.patterns {
|
for _, pattern := range pm.patterns {
|
||||||
negative := false
|
negative := false
|
||||||
@ -78,13 +76,6 @@ func (pm *PatternMatcher) Matches(file string) (bool, error) {
|
|||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !match && parentPath != "." {
|
|
||||||
// Check to see if the pattern matches one of our parent dirs.
|
|
||||||
if len(pattern.dirs) <= len(parentPathDirs) {
|
|
||||||
match, _ = pattern.match(strings.Join(parentPathDirs[:len(pattern.dirs)], string(os.PathSeparator)))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if match {
|
if match {
|
||||||
matched = !negative
|
matched = !negative
|
||||||
}
|
}
|
||||||
@ -122,8 +113,6 @@ func (m *MatchResult) Excludes() uint {
|
|||||||
// an error. This method is not safe to be called concurrently.
|
// an error. This method is not safe to be called concurrently.
|
||||||
func (pm *PatternMatcher) MatchesResult(file string) (res *MatchResult, err error) {
|
func (pm *PatternMatcher) MatchesResult(file string) (res *MatchResult, err error) {
|
||||||
file = filepath.FromSlash(file)
|
file = filepath.FromSlash(file)
|
||||||
parentPath := filepath.Dir(file)
|
|
||||||
parentPathDirs := strings.Split(parentPath, string(os.PathSeparator))
|
|
||||||
res = &MatchResult{false, 0, 0}
|
res = &MatchResult{false, 0, 0}
|
||||||
|
|
||||||
for _, pattern := range pm.patterns {
|
for _, pattern := range pm.patterns {
|
||||||
@ -138,16 +127,6 @@ func (pm *PatternMatcher) MatchesResult(file string) (res *MatchResult, err erro
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !match && parentPath != "." {
|
|
||||||
// Check to see if the pattern matches one of our parent dirs.
|
|
||||||
if len(pattern.dirs) <= len(parentPathDirs) {
|
|
||||||
match, _ = pattern.match(strings.Join(
|
|
||||||
parentPathDirs[:len(pattern.dirs)],
|
|
||||||
string(os.PathSeparator)),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if match {
|
if match {
|
||||||
res.isMatched = !negative
|
res.isMatched = !negative
|
||||||
if negative {
|
if negative {
|
||||||
@ -265,8 +244,7 @@ func (p *Pattern) compile() error {
|
|||||||
// in golang's filepath.Match
|
// in golang's filepath.Match
|
||||||
regStr += bs + string(ch)
|
regStr += bs + string(ch)
|
||||||
} else if ch == '\\' {
|
} else if ch == '\\' {
|
||||||
// escape next char. Note that a trailing \ in the pattern
|
// escape next char.
|
||||||
// will be left alone (but need to escape it)
|
|
||||||
if sl == bs {
|
if sl == bs {
|
||||||
// On windows map "\" to "\\", meaning an escaped backslash,
|
// On windows map "\" to "\\", meaning an escaped backslash,
|
||||||
// and then just continue because filepath.Match on
|
// and then just continue because filepath.Match on
|
||||||
@ -277,14 +255,14 @@ func (p *Pattern) compile() error {
|
|||||||
if scan.Peek() != scanner.EOF {
|
if scan.Peek() != scanner.EOF {
|
||||||
regStr += bs + string(scan.Next())
|
regStr += bs + string(scan.Next())
|
||||||
} else {
|
} else {
|
||||||
regStr += bs
|
return filepath.ErrBadPattern
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
regStr += string(ch)
|
regStr += string(ch)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
regStr += "$"
|
regStr += "(/.*)?$"
|
||||||
|
|
||||||
re, err := regexp.Compile(regStr)
|
re, err := regexp.Compile(regStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
16
vendor/github.com/containers/storage/pkg/idtools/idtools_unix.go
generated
vendored
16
vendor/github.com/containers/storage/pkg/idtools/idtools_unix.go
generated
vendored
@ -10,6 +10,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
"syscall"
|
||||||
|
|
||||||
"github.com/containers/storage/pkg/system"
|
"github.com/containers/storage/pkg/system"
|
||||||
"github.com/opencontainers/runc/libcontainer/user"
|
"github.com/opencontainers/runc/libcontainer/user"
|
||||||
@ -26,13 +27,18 @@ func mkdirAs(path string, mode os.FileMode, ownerUID, ownerGID int, mkAll, chown
|
|||||||
// so that we can chown all of them properly at the end. If chownExisting is false, we won't
|
// so that we can chown all of them properly at the end. If chownExisting is false, we won't
|
||||||
// chown the full directory path if it exists
|
// chown the full directory path if it exists
|
||||||
var paths []string
|
var paths []string
|
||||||
if _, err := os.Stat(path); err != nil && os.IsNotExist(err) {
|
st, err := os.Stat(path)
|
||||||
|
if err != nil && os.IsNotExist(err) {
|
||||||
paths = []string{path}
|
paths = []string{path}
|
||||||
} else if err == nil && chownExisting {
|
} else if err == nil {
|
||||||
|
if !st.IsDir() {
|
||||||
|
return &os.PathError{Op: "mkdir", Path: path, Err: syscall.ENOTDIR}
|
||||||
|
}
|
||||||
|
if chownExisting {
|
||||||
// short-circuit--we were called with an existing directory and chown was requested
|
// short-circuit--we were called with an existing directory and chown was requested
|
||||||
return SafeChown(path, ownerUID, ownerGID)
|
return SafeChown(path, ownerUID, ownerGID)
|
||||||
} else if err == nil {
|
}
|
||||||
// nothing to do; directory path fully exists already and chown was NOT requested
|
// nothing to do; directory exists and chown was NOT requested
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +55,7 @@ func mkdirAs(path string, mode os.FileMode, ownerUID, ownerGID int, mkAll, chown
|
|||||||
paths = append(paths, dirPath)
|
paths = append(paths, dirPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(path, mode); err != nil && !os.IsExist(err) {
|
if err := os.MkdirAll(path, mode); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
2
vendor/github.com/containers/storage/pkg/idtools/idtools_windows.go
generated
vendored
2
vendor/github.com/containers/storage/pkg/idtools/idtools_windows.go
generated
vendored
@ -9,7 +9,7 @@ import (
|
|||||||
// Platforms such as Windows do not support the UID/GID concept. So make this
|
// Platforms such as Windows do not support the UID/GID concept. So make this
|
||||||
// just a wrapper around system.MkdirAll.
|
// just a wrapper around system.MkdirAll.
|
||||||
func mkdirAs(path string, mode os.FileMode, ownerUID, ownerGID int, mkAll, chownExisting bool) error {
|
func mkdirAs(path string, mode os.FileMode, ownerUID, ownerGID int, mkAll, chownExisting bool) error {
|
||||||
if err := os.MkdirAll(path, mode); err != nil && !os.IsExist(err) {
|
if err := os.MkdirAll(path, mode); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
6
vendor/github.com/containers/storage/store.go
generated
vendored
6
vendor/github.com/containers/storage/store.go
generated
vendored
@ -629,14 +629,14 @@ func GetStore(options StoreOptions) (Store, error) {
|
|||||||
return nil, errors.Wrap(ErrIncompleteOptions, "no storage runroot specified")
|
return nil, errors.Wrap(ErrIncompleteOptions, "no storage runroot specified")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.MkdirAll(options.RunRoot, 0700); err != nil && !os.IsExist(err) {
|
if err := os.MkdirAll(options.RunRoot, 0700); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(options.GraphRoot, 0700); err != nil && !os.IsExist(err) {
|
if err := os.MkdirAll(options.GraphRoot, 0700); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, subdir := range []string{"mounts", "tmp", options.GraphDriverName} {
|
for _, subdir := range []string{"mounts", "tmp", options.GraphDriverName} {
|
||||||
if err := os.MkdirAll(filepath.Join(options.GraphRoot, subdir), 0700); err != nil && !os.IsExist(err) {
|
if err := os.MkdirAll(filepath.Join(options.GraphRoot, subdir), 0700); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
vendor/github.com/containers/storage/userns.go
generated
vendored
2
vendor/github.com/containers/storage/userns.go
generated
vendored
@ -113,7 +113,7 @@ func parseMountedFiles(containerMount, passwdFile, groupFile string) uint32 {
|
|||||||
size = u.Uid
|
size = u.Uid
|
||||||
}
|
}
|
||||||
if u.Gid > size {
|
if u.Gid > size {
|
||||||
size = u.Uid
|
size = u.Gid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3
vendor/github.com/klauspost/pgzip/LICENSE
generated
vendored
3
vendor/github.com/klauspost/pgzip/LICENSE
generated
vendored
@ -1,4 +1,4 @@
|
|||||||
The MIT License (MIT)
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2014 Klaus Post
|
Copyright (c) 2014 Klaus Post
|
||||||
|
|
||||||
@ -19,4 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
2
vendor/github.com/klauspost/pgzip/gzip.go
generated
vendored
2
vendor/github.com/klauspost/pgzip/gzip.go
generated
vendored
@ -405,7 +405,7 @@ func (z *Writer) Write(p []byte) (int, error) {
|
|||||||
if len(z.currentBuffer) == z.blockSize {
|
if len(z.currentBuffer) == z.blockSize {
|
||||||
z.compressCurrent(false)
|
z.compressCurrent(false)
|
||||||
if err := z.checkError(); err != nil {
|
if err := z.checkError(); err != nil {
|
||||||
return len(p) - len(q) - length, err
|
return len(p) - len(q), err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
z.size += length
|
z.size += length
|
||||||
|
3
vendor/github.com/opencontainers/go-digest/.mailmap
generated
vendored
3
vendor/github.com/opencontainers/go-digest/.mailmap
generated
vendored
@ -1 +1,4 @@
|
|||||||
|
Aaron Lehmann <aaronl@vitelus.com> <aaron.lehmann@docker.com>
|
||||||
|
Derek McGowan <derek@mcg.dev> <derek@mcgstyle.net>
|
||||||
Stephen J Day <stephen.day@docker.com> <stevvooe@users.noreply.github.com>
|
Stephen J Day <stephen.day@docker.com> <stevvooe@users.noreply.github.com>
|
||||||
|
Haibing Zhou <zhouhaibing089@gmail.com>
|
||||||
|
32
vendor/github.com/opencontainers/go-digest/.pullapprove.yml
generated
vendored
32
vendor/github.com/opencontainers/go-digest/.pullapprove.yml
generated
vendored
@ -1,12 +1,28 @@
|
|||||||
approve_by_comment: true
|
version: 2
|
||||||
approve_regex: '^(Approved|lgtm|LGTM|:shipit:|:star:|:\+1:|:ship:)'
|
|
||||||
reject_regex: ^Rejected
|
requirements:
|
||||||
reset_on_push: true
|
|
||||||
author_approval: ignored
|
|
||||||
signed_off_by:
|
signed_off_by:
|
||||||
required: true
|
required: true
|
||||||
reviewers:
|
|
||||||
|
always_pending:
|
||||||
|
title_regex: '^WIP'
|
||||||
|
explanation: 'Work in progress...'
|
||||||
|
|
||||||
|
group_defaults:
|
||||||
|
required: 2
|
||||||
|
approve_by_comment:
|
||||||
|
enabled: true
|
||||||
|
approve_regex: '^LGTM'
|
||||||
|
reject_regex: '^Rejected'
|
||||||
|
reset_on_push:
|
||||||
|
enabled: true
|
||||||
|
author_approval:
|
||||||
|
ignored: true
|
||||||
|
conditions:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
groups:
|
||||||
|
go-digest:
|
||||||
teams:
|
teams:
|
||||||
- go-digest-maintainers
|
- go-digest-maintainers
|
||||||
name: default
|
|
||||||
required: 2
|
|
||||||
|
3
vendor/github.com/opencontainers/go-digest/.travis.yml
generated
vendored
3
vendor/github.com/opencontainers/go-digest/.travis.yml
generated
vendored
@ -1,4 +1,5 @@
|
|||||||
language: go
|
language: go
|
||||||
go:
|
go:
|
||||||
- 1.7
|
- 1.12.x
|
||||||
|
- 1.13.x
|
||||||
- master
|
- master
|
||||||
|
@ -176,6 +176,7 @@
|
|||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
Copyright 2019, 2020 OCI Contributors
|
||||||
Copyright 2016 Docker, Inc.
|
Copyright 2016 Docker, Inc.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
12
vendor/github.com/opencontainers/go-digest/MAINTAINERS
generated
vendored
12
vendor/github.com/opencontainers/go-digest/MAINTAINERS
generated
vendored
@ -1,9 +1,5 @@
|
|||||||
Aaron Lehmann <aaron.lehmann@docker.com> (@aaronlehmann)
|
|
||||||
Brandon Philips <brandon.philips@coreos.com> (@philips)
|
|
||||||
Brendan Burns <bburns@microsoft.com> (@brendandburns)
|
|
||||||
Derek McGowan <derek@mcgstyle.net> (@dmcgowan)
|
Derek McGowan <derek@mcgstyle.net> (@dmcgowan)
|
||||||
Jason Bouzane <jbouzane@google.com> (@jbouzane)
|
Stephen Day <stevvooe@gmail.com> (@stevvooe)
|
||||||
John Starks <jostarks@microsoft.com> (@jstarks)
|
Vincent Batts <vbatts@hashbangbash.com> (@vbatts)
|
||||||
Jonathan Boulle <jon.boulle@coreos.com> (@jonboulle)
|
Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp> (@AkihiroSuda)
|
||||||
Stephen Day <stephen.day@docker.com> (@stevvooe)
|
Sebastiaan van Stijn <github@gone.nl> (@thaJeztah)
|
||||||
Vincent Batts <vbatts@redhat.com> (@vbatts)
|
|
||||||
|
68
vendor/github.com/opencontainers/go-digest/README.md
generated
vendored
68
vendor/github.com/opencontainers/go-digest/README.md
generated
vendored
@ -8,20 +8,16 @@ Please see the [godoc](https://godoc.org/github.com/opencontainers/go-digest) fo
|
|||||||
|
|
||||||
# What is a digest?
|
# What is a digest?
|
||||||
|
|
||||||
A digest is just a hash.
|
A digest is just a [hash](https://en.wikipedia.org/wiki/Hash_function).
|
||||||
|
|
||||||
The most common use case for a digest is to create a content
|
The most common use case for a digest is to create a content identifier for use in [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) systems:
|
||||||
identifier for use in [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage)
|
|
||||||
systems:
|
|
||||||
|
|
||||||
```go
|
```go
|
||||||
id := digest.FromBytes([]byte("my content"))
|
id := digest.FromBytes([]byte("my content"))
|
||||||
```
|
```
|
||||||
|
|
||||||
In the example above, the id can be used to uniquely identify
|
In the example above, the id can be used to uniquely identify the byte slice "my content".
|
||||||
the byte slice "my content". This allows two disparate applications
|
This allows two disparate applications to agree on a verifiable identifier without having to trust one another.
|
||||||
to agree on a verifiable identifier without having to trust one
|
|
||||||
another.
|
|
||||||
|
|
||||||
An identifying digest can be verified, as follows:
|
An identifying digest can be verified, as follows:
|
||||||
|
|
||||||
@ -31,8 +27,7 @@ if id != digest.FromBytes([]byte("my content")) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
A `Verifier` type can be used to handle cases where an `io.Reader`
|
A `Verifier` type can be used to handle cases where an `io.Reader` makes more sense:
|
||||||
makes more sense:
|
|
||||||
|
|
||||||
```go
|
```go
|
||||||
rd := getContent()
|
rd := getContent()
|
||||||
@ -44,18 +39,14 @@ if !verifier.Verified() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Using [Merkle DAGs](https://en.wikipedia.org/wiki/Merkle_tree), this
|
Using [Merkle DAGs](https://en.wikipedia.org/wiki/Merkle_tree), this can power a rich, safe, content distribution system.
|
||||||
can power a rich, safe, content distribution system.
|
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
While the [godoc](https://godoc.org/github.com/opencontainers/go-digest) is
|
While the [godoc](https://godoc.org/github.com/opencontainers/go-digest) is considered the best resource, a few important items need to be called out when using this package.
|
||||||
considered the best resource, a few important items need to be called
|
|
||||||
out when using this package.
|
|
||||||
|
|
||||||
1. Make sure to import the hash implementations into your application
|
1. Make sure to import the hash implementations into your application or the package will panic.
|
||||||
or the package will panic. You should have something like the
|
You should have something like the following in the main (or other entrypoint) of your application:
|
||||||
following in the main (or other entrypoint) of your application:
|
|
||||||
|
|
||||||
```go
|
```go
|
||||||
import (
|
import (
|
||||||
@ -66,11 +57,10 @@ out when using this package.
|
|||||||
This may seem inconvenient but it allows you replace the hash
|
This may seem inconvenient but it allows you replace the hash
|
||||||
implementations with others, such as https://github.com/stevvooe/resumable.
|
implementations with others, such as https://github.com/stevvooe/resumable.
|
||||||
|
|
||||||
2. Even though `digest.Digest` may be assemable as a string, _always_
|
2. Even though `digest.Digest` may be assemblable as a string, _always_ verify your input with `digest.Parse` or use `Digest.Validate` when accepting untrusted input.
|
||||||
verify your input with `digest.Parse` or use `Digest.Validate`
|
While there are measures to avoid common problems, this will ensure you have valid digests in the rest of your application.
|
||||||
when accepting untrusted input. While there are measures to
|
|
||||||
avoid common problems, this will ensure you have valid digests
|
3. While alternative encodings of hash values (digests) are possible (for example, base64), this package deals exclusively with hex-encoded digests.
|
||||||
in the rest of your application.
|
|
||||||
|
|
||||||
# Stability
|
# Stability
|
||||||
|
|
||||||
@ -80,25 +70,27 @@ As always, before using a package export, read the [godoc](https://godoc.org/git
|
|||||||
|
|
||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
This package is considered fairly complete. It has been in production
|
This package is considered fairly complete.
|
||||||
in thousands (millions?) of deployments and is fairly battle-hardened.
|
It has been in production in thousands (millions?) of deployments and is fairly battle-hardened.
|
||||||
New additions will be met with skepticism. If you think there is a
|
New additions will be met with skepticism.
|
||||||
missing feature, please file a bug clearly describing the problem and
|
If you think there is a missing feature, please file a bug clearly describing the problem and the alternatives you tried before submitting a PR.
|
||||||
the alternatives you tried before submitting a PR.
|
|
||||||
|
|
||||||
# Reporting security issues
|
## Code of Conduct
|
||||||
|
|
||||||
Please DO NOT file a public issue, instead send your report privately to
|
Participation in the OpenContainers community is governed by [OpenContainer's Code of Conduct][code-of-conduct].
|
||||||
security@opencontainers.org.
|
|
||||||
|
|
||||||
The maintainers take security seriously. If you discover a security issue,
|
## Security
|
||||||
please bring it to their attention right away!
|
|
||||||
|
|
||||||
If you are reporting a security issue, do not create an issue or file a pull
|
If you find an issue, please follow the [security][security] protocol to report it.
|
||||||
request on GitHub. Instead, disclose the issue responsibly by sending an email
|
|
||||||
to security@opencontainers.org (which is inhabited only by the maintainers of
|
|
||||||
the various OCI projects).
|
|
||||||
|
|
||||||
# Copyright and license
|
# Copyright and license
|
||||||
|
|
||||||
Copyright © 2016 Docker, Inc. All rights reserved, except as follows. Code is released under the [Apache 2.0 license](LICENSE.code). This `README.md` file and the [`CONTRIBUTING.md`](CONTRIBUTING.md) file are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file [`LICENSE.docs`](LICENSE.docs). You may obtain a duplicate copy of the same license, titled CC BY-SA 4.0, at http://creativecommons.org/licenses/by-sa/4.0/.
|
Copyright © 2019, 2020 OCI Contributors
|
||||||
|
Copyright © 2016 Docker, Inc.
|
||||||
|
All rights reserved, except as follows.
|
||||||
|
Code is released under the [Apache 2.0 license](LICENSE).
|
||||||
|
This `README.md` file and the [`CONTRIBUTING.md`](CONTRIBUTING.md) file are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file [`LICENSE.docs`](LICENSE.docs).
|
||||||
|
You may obtain a duplicate copy of the same license, titled CC BY-SA 4.0, at http://creativecommons.org/licenses/by-sa/4.0/.
|
||||||
|
|
||||||
|
[security]: https://github.com/opencontainers/org/blob/master/security
|
||||||
|
[code-of-conduct]: https://github.com/opencontainers/org/blob/master/CODE_OF_CONDUCT.md
|
||||||
|
1
vendor/github.com/opencontainers/go-digest/algorithm.go
generated
vendored
1
vendor/github.com/opencontainers/go-digest/algorithm.go
generated
vendored
@ -1,3 +1,4 @@
|
|||||||
|
// Copyright 2019, 2020 OCI Contributors
|
||||||
// Copyright 2017 Docker, Inc.
|
// Copyright 2017 Docker, Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
1
vendor/github.com/opencontainers/go-digest/digest.go
generated
vendored
1
vendor/github.com/opencontainers/go-digest/digest.go
generated
vendored
@ -1,3 +1,4 @@
|
|||||||
|
// Copyright 2019, 2020 OCI Contributors
|
||||||
// Copyright 2017 Docker, Inc.
|
// Copyright 2017 Docker, Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
1
vendor/github.com/opencontainers/go-digest/digester.go
generated
vendored
1
vendor/github.com/opencontainers/go-digest/digester.go
generated
vendored
@ -1,3 +1,4 @@
|
|||||||
|
// Copyright 2019, 2020 OCI Contributors
|
||||||
// Copyright 2017 Docker, Inc.
|
// Copyright 2017 Docker, Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
10
vendor/github.com/opencontainers/go-digest/doc.go
generated
vendored
10
vendor/github.com/opencontainers/go-digest/doc.go
generated
vendored
@ -1,3 +1,4 @@
|
|||||||
|
// Copyright 2019, 2020 OCI Contributors
|
||||||
// Copyright 2017 Docker, Inc.
|
// Copyright 2017 Docker, Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -29,8 +30,13 @@
|
|||||||
//
|
//
|
||||||
// sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc
|
// sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc
|
||||||
//
|
//
|
||||||
// In this case, the string "sha256" is the algorithm and the hex bytes are
|
// The "algorithm" portion defines both the hashing algorithm used to calculate
|
||||||
// the "digest".
|
// the digest and the encoding of the resulting digest, which defaults to "hex"
|
||||||
|
// if not otherwise specified. Currently, all supported algorithms have their
|
||||||
|
// digests encoded in hex strings.
|
||||||
|
//
|
||||||
|
// In the example above, the string "sha256" is the algorithm and the hex bytes
|
||||||
|
// are the "digest".
|
||||||
//
|
//
|
||||||
// Because the Digest type is simply a string, once a valid Digest is
|
// Because the Digest type is simply a string, once a valid Digest is
|
||||||
// obtained, comparisons are cheap, quick and simple to express with the
|
// obtained, comparisons are cheap, quick and simple to express with the
|
||||||
|
3
vendor/github.com/opencontainers/go-digest/go.mod
generated
vendored
Normal file
3
vendor/github.com/opencontainers/go-digest/go.mod
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module github.com/opencontainers/go-digest
|
||||||
|
|
||||||
|
go 1.13
|
1
vendor/github.com/opencontainers/go-digest/verifiers.go
generated
vendored
1
vendor/github.com/opencontainers/go-digest/verifiers.go
generated
vendored
@ -1,3 +1,4 @@
|
|||||||
|
// Copyright 2019, 2020 OCI Contributors
|
||||||
// Copyright 2017 Docker, Inc.
|
// Copyright 2017 Docker, Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
6
vendor/modules.txt
vendored
6
vendor/modules.txt
vendored
@ -154,7 +154,7 @@ github.com/containers/psgo/internal/dev
|
|||||||
github.com/containers/psgo/internal/host
|
github.com/containers/psgo/internal/host
|
||||||
github.com/containers/psgo/internal/proc
|
github.com/containers/psgo/internal/proc
|
||||||
github.com/containers/psgo/internal/process
|
github.com/containers/psgo/internal/process
|
||||||
# github.com/containers/storage v1.19.2
|
# github.com/containers/storage v1.20.1
|
||||||
github.com/containers/storage
|
github.com/containers/storage
|
||||||
github.com/containers/storage/drivers
|
github.com/containers/storage/drivers
|
||||||
github.com/containers/storage/drivers/aufs
|
github.com/containers/storage/drivers/aufs
|
||||||
@ -331,7 +331,7 @@ github.com/klauspost/compress/huff0
|
|||||||
github.com/klauspost/compress/snappy
|
github.com/klauspost/compress/snappy
|
||||||
github.com/klauspost/compress/zstd
|
github.com/klauspost/compress/zstd
|
||||||
github.com/klauspost/compress/zstd/internal/xxhash
|
github.com/klauspost/compress/zstd/internal/xxhash
|
||||||
# github.com/klauspost/pgzip v1.2.3
|
# github.com/klauspost/pgzip v1.2.4
|
||||||
github.com/klauspost/pgzip
|
github.com/klauspost/pgzip
|
||||||
# github.com/konsorten/go-windows-terminal-sequences v1.0.3
|
# github.com/konsorten/go-windows-terminal-sequences v1.0.3
|
||||||
github.com/konsorten/go-windows-terminal-sequences
|
github.com/konsorten/go-windows-terminal-sequences
|
||||||
@ -399,7 +399,7 @@ github.com/onsi/gomega/matchers/support/goraph/edge
|
|||||||
github.com/onsi/gomega/matchers/support/goraph/node
|
github.com/onsi/gomega/matchers/support/goraph/node
|
||||||
github.com/onsi/gomega/matchers/support/goraph/util
|
github.com/onsi/gomega/matchers/support/goraph/util
|
||||||
github.com/onsi/gomega/types
|
github.com/onsi/gomega/types
|
||||||
# github.com/opencontainers/go-digest v1.0.0-rc1
|
# github.com/opencontainers/go-digest v1.0.0
|
||||||
github.com/opencontainers/go-digest
|
github.com/opencontainers/go-digest
|
||||||
# github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6
|
# github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6
|
||||||
github.com/opencontainers/image-spec/specs-go
|
github.com/opencontainers/image-spec/specs-go
|
||||||
|
Reference in New Issue
Block a user