aci

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2015 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package aci contains various functions for working with App Container Images.

Index

Constants

View Source
const (
	TypeGzip    = FileType("gz")
	TypeBzip2   = FileType("bz2")
	TypeXz      = FileType("xz")
	TypeTar     = FileType("tar")
	TypeText    = FileType("text")
	TypeUnknown = FileType("unknown")
)
View Source
const (
	// Path to manifest file inside the layout
	ManifestFile = "manifest"
	// Path to rootfs directory inside the layout
	RootfsDir = "rootfs"
)

Variables

View Source
var (
	ErrNoRootFS   = errors.New("no rootfs found in layout")
	ErrNoManifest = errors.New("no image manifest found in layout")
)

Functions

func BuildWalker

func BuildWalker(root string, aw ArchiveWriter, cb TarHeaderWalkFunc) filepath.WalkFunc

BuildWalker creates a filepath.WalkFunc that walks over the given root (which should represent an ACI layout on disk) and adds the files in the rootfs/ subdirectory to the given ArchiveWriter

func ManifestFromImage

func ManifestFromImage(rs io.ReadSeeker) (*schema.ImageManifest, error)

ManifestFromImage extracts a new schema.ImageManifest from the given ACI image.

func NewCompressedReader

func NewCompressedReader(rs io.ReadSeeker) (io.ReadCloser, error)

NewCompressedReader creates a new io.ReaderCloser from the given ACI image. It is the caller's responsibility to call Close on the Reader when done.

func ValidateArchive

func ValidateArchive(tr *tar.Reader) error

ValidateArchive takes a *tar.Reader and validates that the layout of the filesystem the reader encapsulates matches that expected by the Application Container Image format. If any errors are encountered during the validation, it will abort and return the first one.

func ValidateLayout

func ValidateLayout(dir string) error

ValidateLayout takes a directory and validates that the layout of the directory matches that expected by the Application Container Image format. If any errors are encountered during the validation, it will abort and return the first one.

Types

type ArchiveWriter

type ArchiveWriter interface {
	AddFile(hdr *tar.Header, r io.Reader) error
	Close() error
}

ArchiveWriter writes App Container Images. Users wanting to create an ACI or should create an ArchiveWriter and add files to it; the ACI will be written to the underlying tar.Writer

func NewImageWriter

func NewImageWriter(am schema.ImageManifest, w *tar.Writer) ArchiveWriter

NewImageWriter creates a new ArchiveWriter which will generate an App Container Image based on the given manifest and write it to the given tar.Writer

type ErrOldVersion

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

func (ErrOldVersion) Error

func (e ErrOldVersion) Error() string

type FileType

type FileType string

func DetectFileType

func DetectFileType(r io.Reader) (FileType, error)

DetectFileType attempts to detect the type of file that the given reader represents by comparing it against known file signatures (magic numbers)

type TarHeaderWalkFunc

type TarHeaderWalkFunc func(hdr *tar.Header) bool

TarHeaderWalkFunc is the type of the function which allows setting tar headers or filtering out tar entries when building an ACI. It will be applied to every entry in the tar file.

If true is returned, the entry will be included in the final ACI; if false, the entry will not be included.

type TarReadCloser

type TarReadCloser struct {
	*tar.Reader
	io.Closer
}

TarReadCloser embeds a *tar.Reader and the related io.Closer It is the caller's responsibility to call Close on TarReadCloser when done.

func NewCompressedTarReader

func NewCompressedTarReader(rs io.ReadSeeker) (*TarReadCloser, error)

NewCompressedTarReader creates a new TarReadCloser reading from the given ACI image. It is the caller's responsibility to call Close on the TarReadCloser when done.

func (*TarReadCloser) Close

func (r *TarReadCloser) Close() error

type XzReader

type XzReader struct {
	io.ReadCloser
	// contains filtered or unexported fields
}

XzReader is an io.ReadCloser which decompresses xz compressed data.

func NewXzReader

func NewXzReader(r io.Reader) (*XzReader, error)

NewXzReader shells out to a command line xz executable (if available) to decompress the given io.Reader using the xz compression format and returns an *XzReader. It is the caller's responsibility to call Close on the XzReader when done.

func (*XzReader) Close

func (r *XzReader) Close() error

Jump to

Keyboard shortcuts

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