mirror of
https://github.com/containers/skopeo.git
synced 2025-04-27 19:05:32 +00:00
Move docker.genericImage to a separate skopeo/image subpackage
... making image.FromSource a public, stable, API.
This commit is contained in:
parent
e15276232e
commit
96d6a58052
@ -7,6 +7,7 @@ import (
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/projectatomic/skopeo/directory"
|
||||
"github.com/projectatomic/skopeo/docker"
|
||||
"github.com/projectatomic/skopeo/image"
|
||||
"github.com/projectatomic/skopeo/openshift"
|
||||
"github.com/projectatomic/skopeo/types"
|
||||
)
|
||||
@ -34,7 +35,7 @@ func parseImage(c *cli.Context) (types.Image, error) {
|
||||
//
|
||||
case strings.HasPrefix(imgName, directoryPrefix):
|
||||
src := directory.NewDirImageSource(strings.TrimPrefix(imgName, directoryPrefix))
|
||||
return docker.GenericImageFromSource(src), nil
|
||||
return image.FromSource(src), nil
|
||||
}
|
||||
return nil, fmt.Errorf("no valid prefix provided")
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/projectatomic/skopeo/image"
|
||||
"github.com/projectatomic/skopeo/types"
|
||||
)
|
||||
|
||||
@ -22,7 +23,7 @@ func NewDockerImage(img, certPath string, tlsVerify bool) (types.Image, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Image{Image: GenericImageFromSource(s), src: s}, nil
|
||||
return &Image{Image: image.FromSource(s), src: s}, nil
|
||||
}
|
||||
|
||||
// SourceRefFullName returns a fully expanded name for the repository this image is in.
|
||||
|
@ -1,4 +1,7 @@
|
||||
package docker
|
||||
// Package image consolidates knowledge about various container image formats
|
||||
// (as opposed to image storage mechanisms, which are handled by types.ImageSource)
|
||||
// and exposes all of them using an unified interface.
|
||||
package image
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@ -20,17 +23,17 @@ var (
|
||||
|
||||
// genericImage is a general set of utilities for working with container images,
|
||||
// whatever is their underlying location (i.e. dockerImageSource-independent).
|
||||
// Note the existence of skopeo/docker.Image: some instances of a `types.Image`
|
||||
// may not be a `genericImage` directly. However, most users of `types.Image`
|
||||
// do not care, and those who care about `skopeo/docker.Image` know they do.
|
||||
type genericImage struct {
|
||||
src types.ImageSource
|
||||
cachedManifest []byte // Private cache for Manifest(); nil if not yet known.
|
||||
cachedSignatures [][]byte // Private cache for Signatures(); nil if not yet known.
|
||||
}
|
||||
|
||||
// GenericImageFromSource returns a types.Image implementation for source.
|
||||
// NOTE: This is currently an internal testing helper, do not rely on this as
|
||||
// a stable API. There might be an ImageFromSource eventually, but it would not be
|
||||
// in the skopeo/docker package.
|
||||
func GenericImageFromSource(src types.ImageSource) types.Image {
|
||||
// FromSource returns a types.Image implementation for source.
|
||||
func FromSource(src types.ImageSource) types.Image {
|
||||
return &genericImage{src: src}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/projectatomic/skopeo/directory"
|
||||
"github.com/projectatomic/skopeo/docker"
|
||||
"github.com/projectatomic/skopeo/image"
|
||||
"github.com/projectatomic/skopeo/types"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
@ -15,7 +15,7 @@ import (
|
||||
|
||||
// dirImageMock returns a types.Image for a directory, claiming a specified intendedDockerReference.
|
||||
func dirImageMock(dir, intendedDockerReference string) types.Image {
|
||||
return docker.GenericImageFromSource(&dirImageSourceMock{
|
||||
return image.FromSource(&dirImageSourceMock{
|
||||
ImageSource: directory.NewDirImageSource(dir),
|
||||
intendedDockerReference: intendedDockerReference,
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user