mirror of
https://github.com/containers/skopeo.git
synced 2025-09-19 17:15:32 +00:00
WIP - update storage & image
TEST PR for: https://github.com/containers/image/pull/603 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
10
vendor/github.com/containers/storage/containers.go
generated
vendored
10
vendor/github.com/containers/storage/containers.go
generated
vendored
@@ -71,7 +71,7 @@ type Container struct {
|
||||
type ContainerStore interface {
|
||||
FileBasedStore
|
||||
MetadataStore
|
||||
BigDataStore
|
||||
ContainerBigDataStore
|
||||
FlaggableStore
|
||||
|
||||
// Create creates a container that has a specified ID (or generates a
|
||||
@@ -456,7 +456,7 @@ func (r *containerStore) BigDataSize(id, key string) (int64, error) {
|
||||
return size, nil
|
||||
}
|
||||
if data, err := r.BigData(id, key); err == nil && data != nil {
|
||||
if r.SetBigData(id, key, data) == nil {
|
||||
if err = r.SetBigData(id, key, data); err == nil {
|
||||
c, ok := r.lookup(id)
|
||||
if !ok {
|
||||
return -1, ErrContainerUnknown
|
||||
@@ -464,6 +464,8 @@ func (r *containerStore) BigDataSize(id, key string) (int64, error) {
|
||||
if size, ok := c.BigDataSizes[key]; ok {
|
||||
return size, nil
|
||||
}
|
||||
} else {
|
||||
return -1, err
|
||||
}
|
||||
}
|
||||
return -1, ErrSizeUnknown
|
||||
@@ -484,7 +486,7 @@ func (r *containerStore) BigDataDigest(id, key string) (digest.Digest, error) {
|
||||
return d, nil
|
||||
}
|
||||
if data, err := r.BigData(id, key); err == nil && data != nil {
|
||||
if r.SetBigData(id, key, data) == nil {
|
||||
if err = r.SetBigData(id, key, data); err == nil {
|
||||
c, ok := r.lookup(id)
|
||||
if !ok {
|
||||
return "", ErrContainerUnknown
|
||||
@@ -492,6 +494,8 @@ func (r *containerStore) BigDataDigest(id, key string) (digest.Digest, error) {
|
||||
if d, ok := c.BigDataDigests[key]; ok {
|
||||
return d, nil
|
||||
}
|
||||
} else {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
return "", ErrDigestUnknown
|
||||
|
2
vendor/github.com/containers/storage/containers_ffjson.go
generated
vendored
2
vendor/github.com/containers/storage/containers_ffjson.go
generated
vendored
@@ -1,5 +1,5 @@
|
||||
// Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT.
|
||||
// source: containers.go
|
||||
// source: ./containers.go
|
||||
|
||||
package storage
|
||||
|
||||
|
31
vendor/github.com/containers/storage/images.go
generated
vendored
31
vendor/github.com/containers/storage/images.go
generated
vendored
@@ -8,7 +8,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/containers/image/manifest"
|
||||
"github.com/containers/storage/pkg/ioutils"
|
||||
"github.com/containers/storage/pkg/stringid"
|
||||
"github.com/containers/storage/pkg/truncindex"
|
||||
@@ -117,7 +116,7 @@ type ImageStore interface {
|
||||
ROImageStore
|
||||
RWFileBasedStore
|
||||
RWMetadataStore
|
||||
RWBigDataStore
|
||||
RWImageBigDataStore
|
||||
FlaggableStore
|
||||
|
||||
// Create creates an image that has a specified ID (or a random one) and
|
||||
@@ -595,15 +594,7 @@ func (r *imageStore) BigDataSize(id, key string) (int64, error) {
|
||||
return size, nil
|
||||
}
|
||||
if data, err := r.BigData(id, key); err == nil && data != nil {
|
||||
if r.SetBigData(id, key, data) == nil {
|
||||
image, ok := r.lookup(id)
|
||||
if !ok {
|
||||
return -1, ErrImageUnknown
|
||||
}
|
||||
if size, ok := image.BigDataSizes[key]; ok {
|
||||
return size, nil
|
||||
}
|
||||
}
|
||||
return int64(len(data)), nil
|
||||
}
|
||||
return -1, ErrSizeUnknown
|
||||
}
|
||||
@@ -622,17 +613,6 @@ func (r *imageStore) BigDataDigest(id, key string) (digest.Digest, error) {
|
||||
if d, ok := image.BigDataDigests[key]; ok {
|
||||
return d, nil
|
||||
}
|
||||
if data, err := r.BigData(id, key); err == nil && data != nil {
|
||||
if r.SetBigData(id, key, data) == nil {
|
||||
image, ok := r.lookup(id)
|
||||
if !ok {
|
||||
return "", ErrImageUnknown
|
||||
}
|
||||
if d, ok := image.BigDataDigests[key]; ok {
|
||||
return d, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
return "", ErrDigestUnknown
|
||||
}
|
||||
|
||||
@@ -655,7 +635,7 @@ func imageSliceWithoutValue(slice []*Image, value *Image) []*Image {
|
||||
return modified
|
||||
}
|
||||
|
||||
func (r *imageStore) SetBigData(id, key string, data []byte) error {
|
||||
func (r *imageStore) SetBigData(id, key string, data []byte, digestManifest func([]byte) (digest.Digest, error)) error {
|
||||
if key == "" {
|
||||
return errors.Wrapf(ErrInvalidBigDataName, "can't set empty name for image big data item")
|
||||
}
|
||||
@@ -672,7 +652,10 @@ func (r *imageStore) SetBigData(id, key string, data []byte) error {
|
||||
}
|
||||
var newDigest digest.Digest
|
||||
if bigDataNameIsManifest(key) {
|
||||
if newDigest, err = manifest.Digest(data); err != nil {
|
||||
if digestManifest == nil {
|
||||
return errors.Wrapf(ErrDigestUnknown, "error digesting manifest: no manifest digest callback provided")
|
||||
}
|
||||
if newDigest, err = digestManifest(data); err != nil {
|
||||
return errors.Wrapf(err, "error digesting manifest")
|
||||
}
|
||||
} else {
|
||||
|
2
vendor/github.com/containers/storage/images_ffjson.go
generated
vendored
2
vendor/github.com/containers/storage/images_ffjson.go
generated
vendored
@@ -1,5 +1,5 @@
|
||||
// Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT.
|
||||
// source: images.go
|
||||
// source: ./images.go
|
||||
|
||||
package storage
|
||||
|
||||
|
2
vendor/github.com/containers/storage/lockfile_unix.go
generated
vendored
2
vendor/github.com/containers/storage/lockfile_unix.go
generated
vendored
@@ -194,7 +194,7 @@ func (l *lockfile) Modified() (bool, error) {
|
||||
return true, err
|
||||
}
|
||||
if n != len(id) {
|
||||
return true, unix.ENOSPC
|
||||
return true, nil
|
||||
}
|
||||
lw := l.lw
|
||||
l.lw = string(id)
|
||||
|
25
vendor/github.com/containers/storage/pkg/reexec/command_linux.go
generated
vendored
25
vendor/github.com/containers/storage/pkg/reexec/command_linux.go
generated
vendored
@@ -3,6 +3,7 @@
|
||||
package reexec
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os/exec"
|
||||
"syscall"
|
||||
|
||||
@@ -20,11 +21,23 @@ func Self() string {
|
||||
// This will use the in-memory version (/proc/self/exe) of the current binary,
|
||||
// it is thus safe to delete or replace the on-disk binary (os.Args[0]).
|
||||
func Command(args ...string) *exec.Cmd {
|
||||
return &exec.Cmd{
|
||||
Path: Self(),
|
||||
Args: args,
|
||||
SysProcAttr: &syscall.SysProcAttr{
|
||||
Pdeathsig: unix.SIGTERM,
|
||||
},
|
||||
cmd := exec.Command(Self())
|
||||
cmd.Args = args
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{
|
||||
Pdeathsig: unix.SIGTERM,
|
||||
}
|
||||
return cmd
|
||||
}
|
||||
|
||||
// CommandContext returns *exec.Cmd which has Path as current binary, and also
|
||||
// sets SysProcAttr.Pdeathsig to SIGTERM.
|
||||
// This will use the in-memory version (/proc/self/exe) of the current binary,
|
||||
// it is thus safe to delete or replace the on-disk binary (os.Args[0]).
|
||||
func CommandContext(ctx context.Context, args ...string) *exec.Cmd {
|
||||
cmd := exec.CommandContext(ctx, Self())
|
||||
cmd.Args = args
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{
|
||||
Pdeathsig: unix.SIGTERM,
|
||||
}
|
||||
return cmd
|
||||
}
|
||||
|
15
vendor/github.com/containers/storage/pkg/reexec/command_unix.go
generated
vendored
15
vendor/github.com/containers/storage/pkg/reexec/command_unix.go
generated
vendored
@@ -3,6 +3,7 @@
|
||||
package reexec
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
@@ -16,8 +17,14 @@ func Self() string {
|
||||
// For example if current binary is "docker" at "/usr/bin/", then cmd.Path will
|
||||
// be set to "/usr/bin/docker".
|
||||
func Command(args ...string) *exec.Cmd {
|
||||
return &exec.Cmd{
|
||||
Path: Self(),
|
||||
Args: args,
|
||||
}
|
||||
cmd := exec.Command(Self())
|
||||
cmd.Args = args
|
||||
return cmd
|
||||
}
|
||||
|
||||
// CommandContext returns *exec.Cmd which has Path as current binary.
|
||||
func CommandContext(ctx context.Context, args ...string) *exec.Cmd {
|
||||
cmd := exec.CommandContext(ctx, Self())
|
||||
cmd.Args = args
|
||||
return cmd
|
||||
}
|
||||
|
6
vendor/github.com/containers/storage/pkg/reexec/command_unsupported.go
generated
vendored
6
vendor/github.com/containers/storage/pkg/reexec/command_unsupported.go
generated
vendored
@@ -3,6 +3,7 @@
|
||||
package reexec
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
@@ -10,3 +11,8 @@ import (
|
||||
func Command(args ...string) *exec.Cmd {
|
||||
return nil
|
||||
}
|
||||
|
||||
// CommandContext is unsupported on operating systems apart from Linux, Windows, Solaris and Darwin.
|
||||
func CommandContext(ctx context.Context, args ...string) *exec.Cmd {
|
||||
return nil
|
||||
}
|
||||
|
17
vendor/github.com/containers/storage/pkg/reexec/command_windows.go
generated
vendored
17
vendor/github.com/containers/storage/pkg/reexec/command_windows.go
generated
vendored
@@ -3,6 +3,7 @@
|
||||
package reexec
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
@@ -16,8 +17,16 @@ func Self() string {
|
||||
// For example if current binary is "docker.exe" at "C:\", then cmd.Path will
|
||||
// be set to "C:\docker.exe".
|
||||
func Command(args ...string) *exec.Cmd {
|
||||
return &exec.Cmd{
|
||||
Path: Self(),
|
||||
Args: args,
|
||||
}
|
||||
cmd := exec.Command(Self())
|
||||
cmd.Args = args
|
||||
return cmd
|
||||
}
|
||||
|
||||
// Command returns *exec.Cmd which has Path as current binary.
|
||||
// For example if current binary is "docker.exe" at "C:\", then cmd.Path will
|
||||
// be set to "C:\docker.exe".
|
||||
func CommandContext(ctx context.Context, args ...string) *exec.Cmd {
|
||||
cmd := exec.CommandContext(ctx, Self())
|
||||
cmd.Args = args
|
||||
return cmd
|
||||
}
|
||||
|
34
vendor/github.com/containers/storage/store.go
generated
vendored
34
vendor/github.com/containers/storage/store.go
generated
vendored
@@ -102,19 +102,21 @@ type ROBigDataStore interface {
|
||||
BigDataNames(id string) ([]string, error)
|
||||
}
|
||||
|
||||
// A RWBigDataStore wraps up the read-write big-data related methods of the
|
||||
// various types of file-based lookaside stores that we implement.
|
||||
type RWBigDataStore interface {
|
||||
// SetBigData stores a (potentially large) piece of data associated with this
|
||||
// ID.
|
||||
SetBigData(id, key string, data []byte) error
|
||||
// A RWImageBigDataStore wraps up how we store big-data associated with images.
|
||||
type RWImageBigDataStore interface {
|
||||
// SetBigData stores a (potentially large) piece of data associated
|
||||
// with this ID.
|
||||
// Pass github.com/containers/image/manifest.Digest as digestManifest
|
||||
// to allow ByDigest to find images by their correct digests.
|
||||
SetBigData(id, key string, data []byte, digestManifest func([]byte) (digest.Digest, error)) error
|
||||
}
|
||||
|
||||
// A BigDataStore wraps up the most common big-data related methods of the
|
||||
// various types of file-based lookaside stores that we implement.
|
||||
type BigDataStore interface {
|
||||
// A ContainerBigDataStore wraps up how we store big-data associated with containers.
|
||||
type ContainerBigDataStore interface {
|
||||
ROBigDataStore
|
||||
RWBigDataStore
|
||||
// SetBigData stores a (potentially large) piece of data associated
|
||||
// with this ID.
|
||||
SetBigData(id, key string, data []byte) error
|
||||
}
|
||||
|
||||
// A FlaggableStore can have flags set and cleared on items which it manages.
|
||||
@@ -352,9 +354,11 @@ type Store interface {
|
||||
// of named data associated with an image.
|
||||
ImageBigDataDigest(id, key string) (digest.Digest, error)
|
||||
|
||||
// SetImageBigData stores a (possibly large) chunk of named data associated
|
||||
// with an image.
|
||||
SetImageBigData(id, key string, data []byte) error
|
||||
// SetImageBigData stores a (possibly large) chunk of named data
|
||||
// associated with an image. Pass
|
||||
// github.com/containers/image/manifest.Digest as digestManifest to
|
||||
// allow ImagesByDigest to find images by their correct digests.
|
||||
SetImageBigData(id, key string, data []byte, digestManifest func([]byte) (digest.Digest, error)) error
|
||||
|
||||
// ImageSize computes the size of the image's layers and ancillary data.
|
||||
ImageSize(id string) (int64, error)
|
||||
@@ -1485,7 +1489,7 @@ func (s *store) ImageBigData(id, key string) ([]byte, error) {
|
||||
return nil, ErrImageUnknown
|
||||
}
|
||||
|
||||
func (s *store) SetImageBigData(id, key string, data []byte) error {
|
||||
func (s *store) SetImageBigData(id, key string, data []byte, digestManifest func([]byte) (digest.Digest, error)) error {
|
||||
ristore, err := s.ImageStore()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -1499,7 +1503,7 @@ func (s *store) SetImageBigData(id, key string, data []byte) error {
|
||||
}
|
||||
}
|
||||
|
||||
return ristore.SetBigData(id, key, data)
|
||||
return ristore.SetBigData(id, key, data, digestManifest)
|
||||
}
|
||||
|
||||
func (s *store) ImageSize(id string) (int64, error) {
|
||||
|
3
vendor/github.com/containers/storage/vendor.conf
generated
vendored
3
vendor/github.com/containers/storage/vendor.conf
generated
vendored
@@ -1,18 +1,15 @@
|
||||
github.com/BurntSushi/toml master
|
||||
github.com/Microsoft/go-winio 307e919c663683a9000576fdc855acaf9534c165
|
||||
github.com/Microsoft/hcsshim a8d9cc56cbce765a7eebdf4792e6ceceeff3edb8
|
||||
github.com/containers/image master
|
||||
github.com/davecgh/go-spew 346938d642f2ec3594ed81d874461961cd0faa76
|
||||
github.com/docker/docker 86f080cff0914e9694068ed78d503701667c4c00
|
||||
github.com/docker/go-units 0dadbb0345b35ec7ef35e228dabb8de89a65bf52
|
||||
github.com/docker/libtrust master
|
||||
github.com/klauspost/compress v1.4.1
|
||||
github.com/klauspost/cpuid v1.2.0
|
||||
github.com/klauspost/pgzip v1.2.1
|
||||
github.com/mattn/go-shellwords 753a2322a99f87c0eff284980e77f53041555bc6
|
||||
github.com/mistifyio/go-zfs c0224de804d438efd11ea6e52ada8014537d6062
|
||||
github.com/opencontainers/go-digest master
|
||||
github.com/opencontainers/image-spec master
|
||||
github.com/opencontainers/runc 6c22e77604689db8725fa866f0f2ec0b3e8c3a07
|
||||
github.com/opencontainers/selinux v1.1
|
||||
github.com/ostreedev/ostree-go master
|
||||
|
Reference in New Issue
Block a user