graph

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2014 License: Apache-2.0, Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const DEFAULTTAG = "latest"

Variables

This section is empty.

Functions

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 ValidateTagName

func ValidateTagName(name string) error

Validate the name of a tag

Types

type Graph

type Graph struct {
	Root string
	// 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, error)

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) 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) Driver

func (graph *Graph) Driver() graphdriver.Driver

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) Heads

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

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) ImageRoot

func (graph *Graph) ImageRoot(id string) string

func (*Graph) IsNotExist

func (graph *Graph) IsNotExist(err error) 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, error)

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

func (*Graph) Mktemp

func (graph *Graph) Mktemp(id string) (string, error)

Mktemp creates a temporary sub-directory inside the graph's filesystem.

func (*Graph) Register

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

Register imports a pre-existing image into the graph.

func (*Graph) TempLayerArchive

func (graph *Graph) TempLayerArchive(id string, compression archive.Compression, sf *utils.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.
FIXME: does this belong in Graph? How about MktempFile, let the caller use it for archives?

type Repository

type Repository map[string]string

func (Repository) Contains

func (r Repository) Contains(u Repository) bool

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

func (Repository) Update

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, graph *Graph, mirrors []string) (*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, tag 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, tagOrID string) (*image.Image, error)

func (*TagStore) GetRepoRefs

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

func (*TagStore) ImageName

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

func (*TagStore) LookupImage

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

func (*TagStore) Set

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

Jump to

Keyboard shortcuts

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