Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TestReader ¶
func TestReader(t *testing.T, factory ReaderFactory)
TestReader tests Reader returns correct file metadata.
Types ¶
type Attr ¶
type Attr struct { // Size, for regular files, is the logical size of the file. Size int64 // ModTime is the modification time of the node. ModTime time.Time // LinkName, for symlinks, is the link target. LinkName string // Mode is the permission and mode bits. Mode os.FileMode // UID is the user ID of the owner. UID int // GID is the group ID of the owner. GID int // DevMajor is the major device number for device. DevMajor int // DevMinor is the major device number for device. DevMinor int // Xattrs are the extended attribute for the node. Xattrs map[string][]byte // NumLink is the number of names pointing to this node. NumLink int }
Attr reprensents the attributes of a node.
type Decompressor ¶
type Decompressor interface { estargz.Decompressor // DecompressTOC decompresses the passed blob and returns a reader of TOC JSON. DecompressTOC(io.Reader) (tocJSON io.ReadCloser, err error) }
type MeasureLatencyHook ¶
A func which takes start time and records the diff
type Option ¶
Option is an option to configure the behaviour of reader.
func WithDecompressors ¶
func WithDecompressors(decompressors ...Decompressor) Option
WithDecompressors option specifies decompressors to use. Default is gzip-based decompressor.
func WithTOCOffset ¶
WithTOCOffset option specifies the offset of TOC
func WithTelemetry ¶
WithTelemetry option specifies the telemetry hooks
type Options ¶
type Options struct { TOCOffset int64 Telemetry *Telemetry Decompressors []Decompressor }
type Reader ¶
type Reader interface { RootID() uint32 TOCDigest() digest.Digest GetOffset(id uint32) (offset int64, err error) GetAttr(id uint32) (attr Attr, err error) GetChild(pid uint32, base string) (id uint32, attr Attr, err error) ForeachChild(id uint32, f func(name string, id uint32, mode os.FileMode) bool) error OpenFile(id uint32) (File, error) Clone(sr *io.SectionReader) (Reader, error) Close() error }
Reader provides access to file metadata of a blob.
type ReaderFactory ¶
type ReaderFactory func(sr *io.SectionReader, opts ...Option) (r TestableReader, err error)
type Store ¶ added in v0.11.0
type Store func(sr *io.SectionReader, opts ...Option) (Reader, error)
Store reads the provided eStargz blob and creates a metadata reader.
type Telemetry ¶
type Telemetry struct { GetTocLatency MeasureLatencyHook // measure time to GET TOC JSON (in milliseconds) DeserializeTocLatency MeasureLatencyHook // measure time to deserialize TOC JSON (in milliseconds) }
A struct which defines telemetry hooks. By implementing these hooks you should be able to record the latency metrics of the respective steps of estargz open operation.