graph

package
v1.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2015 License: Apache-2.0 Imports: 53 Imported by: 0

Documentation

Index

Constants

View Source
const DEFAULTTAG = "latest"
View Source
const MaxImageDepth = 127

Set the max depth to the aufs default that most kernels are compiled with For more information see: http://sourceforge.net/p/aufs/aufs3-standalone/ci/aufs3.12/tree/config.mk

Variables

View Source
var (
	// ErrDigestNotSet is used when request the digest for a layer
	// but the layer has no digest value or content to compute the
	// the digest.
	ErrDigestNotSet = errors.New("digest is not set for layer")
)

Functions

func NewV2Repository added in v1.8.0

func NewV2Repository(repoInfo *registry.RepositoryInfo, endpoint registry.APIEndpoint, metaHeaders http.Header, authConfig *cliconfig.AuthConfig) (distribution.Repository, error)

v2 only

func SetupInitLayer

func SetupInitLayer(initLayer string) error

setupInitLayer populates a directory with mountpoints suitable for bind-mounting dockerinit into the container. The mountpoint is simply an empty file at /.dockerinit

This extra layer is used by all containers as the top-most ro layer. It protects the container from unwanted side-effects on the rw layer.

func WriteStatus added in v1.3.0

func WriteStatus(requestedTag string, out io.Writer, sf *streamformatter.StreamFormatter, layersDownloaded bool)

Types

type ByCreated added in v1.7.0

type ByCreated []*types.Image

func (ByCreated) Len added in v1.7.0

func (r ByCreated) Len() int

func (ByCreated) Less added in v1.7.0

func (r ByCreated) Less(i, j int) bool

func (ByCreated) Swap added in v1.7.0

func (r ByCreated) Swap(i, j int)

type Graph

type Graph struct {
	// contains filtered or unexported fields
}

A Graph is a store for versioned filesystem images and the relationship between them.

func NewGraph

func NewGraph(root string, driver graphdriver.Driver) (*Graph, error)

NewGraph instantiates a new graph at the given root path in the filesystem. `root` will be created if it doesn't exist.

func (*Graph) ByParent

func (graph *Graph) ByParent() map[string][]*image.Image

ByParent returns a lookup table of images by their parent. If an image of id ID has 3 children images, then the value for key ID will be a list of 3 images. If an image has no children, it will not have an entry in the table.

func (*Graph) CheckDepth added in v1.8.0

func (graph *Graph) CheckDepth(img *image.Image) error

CheckDepth returns an error if the depth of an image, as returned by ImageDepth, is too large to support creating a container from it on this daemon.

func (*Graph) Create

func (graph *Graph) Create(layerData archive.ArchiveReader, containerID, containerImage, comment, author string, containerConfig, config *runconfig.Config) (*image.Image, error)

Create creates a new image and registers it in the graph.

func (*Graph) Delete

func (graph *Graph) Delete(name string) error

Delete atomically removes an image from the graph.

func (*Graph) Exists

func (graph *Graph) Exists(id string) bool

Exists returns true if an image is registered at the given id. If the image doesn't exist or if an error is encountered, false is returned.

func (*Graph) Get

func (graph *Graph) Get(name string) (*image.Image, error)

Get returns the image with the given id, or an error if the image doesn't exist.

func (*Graph) GetDigest added in v1.8.0

func (graph *Graph) GetDigest(id string) (digest.Digest, error)

GetDigest gets the digest for the provide image layer id.

func (*Graph) GetParent added in v1.8.0

func (graph *Graph) GetParent(img *image.Image) (*image.Image, error)

func (*Graph) GetParentsSize added in v1.8.0

func (graph *Graph) GetParentsSize(img *image.Image, size int64) int64

func (*Graph) Heads

func (graph *Graph) Heads() map[string]*image.Image

Heads returns all heads in the graph, keyed by id. A head is an image which is not the parent of another image in the graph.

func (*Graph) IsHeld added in v1.8.0

func (graph *Graph) IsHeld(layerID string) bool

IsHeld returns whether the given layerID is being used by an ongoing pull or build.

func (*Graph) IsNotExist

func (graph *Graph) IsNotExist(err error, id string) bool

FIXME: Implement error subclass instead of looking at the error text Note: This is the way golang implements os.IsNotExists on Plan9

func (*Graph) Map

func (graph *Graph) Map() map[string]*image.Image

Map returns a list of all images in the graph, addressable by ID.

func (*Graph) RawJSON added in v1.8.0

func (graph *Graph) RawJSON(id string) ([]byte, error)

RawJSON returns the JSON representation for an image as a byte array.

func (*Graph) Register

func (graph *Graph) Register(img *image.Image, layerData archive.ArchiveReader) (err error)

Register imports a pre-existing image into the graph.

func (*Graph) Release added in v1.8.0

func (graph *Graph) Release(sessionID string, layerIDs ...string)

Release removes the referenced image id from the provided set of layers.

func (*Graph) Retain added in v1.8.0

func (graph *Graph) Retain(sessionID string, layerIDs ...string)

If the images and layers are in pulling chain, retain them. If not, they may be deleted by rmi with dangling condition.

func (*Graph) SetDigest added in v1.8.0

func (graph *Graph) SetDigest(id string, dgst digest.Digest) error

SetDigest sets the digest for the image layer to the provided value.

func (*Graph) TarLayer added in v1.8.0

func (graph *Graph) TarLayer(img *image.Image) (arch archive.Archive, err error)

TarLayer returns a tar archive of the image's filesystem layer.

func (*Graph) TempLayerArchive

func (graph *Graph) TempLayerArchive(id string, sf *streamformatter.StreamFormatter, output io.Writer) (*archive.TempArchive, error)

TempLayerArchive creates a temporary archive of the given image's filesystem layer.

The archive is stored on disk and will be automatically deleted as soon as has been read.
If output is not nil, a human-readable progress bar will be written to it.

func (*Graph) WalkHistory added in v1.8.0

func (graph *Graph) WalkHistory(img *image.Image, handler func(image.Image) error) (err error)

WalkHistory calls the handler function for each image in the provided images lineage starting from immediate parent.

type ImageExportConfig added in v1.7.0

type ImageExportConfig struct {
	Names     []string
	Outstream io.Writer
}

CmdImageExport exports all images with the given tag. All versions containing the same tag are exported. The resulting output is an uncompressed tar ball. name is the set of tags to export. out is the writer where the images are written to.

type ImageImportConfig added in v1.7.0

type ImageImportConfig struct {
	Changes         []string
	InConfig        io.ReadCloser
	OutStream       io.Writer
	ContainerConfig *runconfig.Config
}

type ImagePullConfig added in v1.7.0

type ImagePullConfig struct {
	MetaHeaders map[string][]string
	AuthConfig  *cliconfig.AuthConfig
	OutStream   io.Writer
}

type ImagePushConfig added in v1.7.0

type ImagePushConfig struct {
	MetaHeaders map[string][]string
	AuthConfig  *cliconfig.AuthConfig
	Tag         string
	OutStream   io.Writer
}

type ImagesConfig added in v1.7.0

type ImagesConfig struct {
	Filters string
	Filter  string
	All     bool
}

type Puller added in v1.8.0

type Puller interface {
	// Pull tries to pull the image referenced by `tag`
	// Pull returns an error if any, as well as a boolean that determines whether to retry Pull on the next configured endpoint.
	//
	// TODO(tiborvass): have Pull() take a reference to repository + tag, so that the puller itself is repository-agnostic.
	Pull(tag string) (fallback bool, err error)
}

func NewPuller added in v1.8.0

func NewPuller(s *TagStore, endpoint registry.APIEndpoint, repoInfo *registry.RepositoryInfo, imagePullConfig *ImagePullConfig, sf *streamformatter.StreamFormatter) (Puller, error)

type Pusher added in v1.8.0

type Pusher interface {
	// Push tries to push the image configured at the creation of Pusher.
	// Push returns an error if any, as well as a boolean that determines whether to retry Push on the next configured endpoint.
	//
	// TODO(tiborvass): have Push() take a reference to repository + tag, so that the pusher itself is repository-agnostic.
	Push() (fallback bool, err error)
}

type Repository

type Repository map[string]string

func (Repository) Contains added in v1.3.0

func (r Repository) Contains(u Repository) bool

return true if the contents of u Repository, are wholly contained in r Repository

func (Repository) Update added in v1.3.0

func (r Repository) Update(u Repository)

update Repository mapping with content of u

type TagStore

type TagStore struct {
	Repositories map[string]Repository

	sync.Mutex
	// contains filtered or unexported fields
}

func NewTagStore

func NewTagStore(path string, cfg *TagStoreConfig) (*TagStore, error)

func (*TagStore) ByID

func (store *TagStore) ByID() map[string][]string

Return a reverse-lookup table of all the names which refer to each image Eg. {"43b5f19b10584": {"base:latest", "base:v1"}}

func (*TagStore) Delete

func (store *TagStore) Delete(repoName, ref string) (bool, error)

func (*TagStore) DeleteAll

func (store *TagStore) DeleteAll(id string) error

func (*TagStore) Get

func (store *TagStore) Get(repoName string) (Repository, error)

func (*TagStore) GetImage

func (store *TagStore) GetImage(repoName, refOrID string) (*image.Image, error)

func (*TagStore) GetRepoRefs added in v0.12.0

func (store *TagStore) GetRepoRefs() map[string][]string

func (*TagStore) History added in v1.7.0

func (s *TagStore) History(name string) ([]*types.ImageHistory, error)

func (*TagStore) ImageExport added in v1.7.0

func (s *TagStore) ImageExport(imageExportConfig *ImageExportConfig) error

func (*TagStore) ImageName

func (store *TagStore) ImageName(id string) string

func (*TagStore) ImageTarLayer added in v1.7.0

func (s *TagStore) ImageTarLayer(name string, dest io.Writer) error

ImageTarLayer return the tarLayer of the image

func (*TagStore) Images added in v1.7.0

func (s *TagStore) Images(config *ImagesConfig) ([]*types.Image, error)

func (*TagStore) Import added in v1.7.0

func (s *TagStore) Import(src string, repo string, tag string, imageImportConfig *ImageImportConfig) error

func (*TagStore) Load added in v1.7.0

func (s *TagStore) Load(inTar io.ReadCloser, outStream io.Writer) error

Loads a set of images into the repository. This is the complementary of ImageExport. The input stream is an uncompressed tar ball containing images and metadata.

func (*TagStore) Lookup added in v1.7.0

func (s *TagStore) Lookup(name string) (*types.ImageInspect, error)

Lookup return an image encoded in JSON

func (*TagStore) LookupImage

func (store *TagStore) LookupImage(name string) (*image.Image, error)

func (*TagStore) LookupRaw added in v1.7.0

func (s *TagStore) LookupRaw(name string) ([]byte, error)

func (*TagStore) NewPusher added in v1.8.0

func (s *TagStore) NewPusher(endpoint registry.APIEndpoint, localRepo Repository, repoInfo *registry.RepositoryInfo, imagePushConfig *ImagePushConfig, sf *streamformatter.StreamFormatter) (Pusher, error)

func (*TagStore) Pull added in v1.7.0

func (s *TagStore) Pull(image string, tag string, imagePullConfig *ImagePullConfig) error

func (*TagStore) Push added in v1.7.0

func (s *TagStore) Push(localName string, imagePushConfig *ImagePushConfig) error

FIXME: Allow to interrupt current push when new push of same image is done.

func (*TagStore) SetDigest added in v1.6.0

func (store *TagStore) SetDigest(repoName, digest, imageName string) error

SetDigest creates a digest reference to an image ID.

func (*TagStore) SetLoad added in v1.7.0

func (store *TagStore) SetLoad(repoName, tag, imageName string, force bool, out io.Writer) error

func (*TagStore) Tag added in v1.7.0

func (store *TagStore) Tag(repoName, tag, imageName string, force bool) error

type TagStoreConfig added in v1.7.0

type TagStoreConfig struct {
	Graph    *Graph
	Key      libtrust.PrivateKey
	Registry *registry.Service
	Events   *events.Events
	Trust    *trust.TrustStore
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL