Documentation
¶
Index ¶
- Constants
- Variables
- type HasherPool
- type Lock
- type Repository
- func Inexistent(ctx *kcontext.KContext, storeConfig map[string]string) (*Repository, error)
- func New(ctx *kcontext.KContext, secret []byte, store storage.Store, config []byte) (*Repository, error)
- func NewNoRebuild(ctx *kcontext.KContext, secret []byte, store storage.Store, config []byte) (*Repository, error)
- func (r *Repository) AppContext() *kcontext.KContext
- func (r *Repository) BlobExists(Type resources.Type, mac objects.MAC) bool
- func (r *Repository) Chunker(rd io.Reader) (*chunkers.Chunker, error)
- func (r *Repository) Close() error
- func (r *Repository) ComputeMAC(data []byte) objects.MAC
- func (r *Repository) Configuration() storage.Configuration
- func (r *Repository) DeleteLock(lockID objects.MAC) error
- func (r *Repository) DeletePackfile(mac objects.MAC) error
- func (r *Repository) DeleteSnapshot(snapshotID objects.MAC) error
- func (r *Repository) DeleteState(mac objects.MAC) error
- func (r *Repository) GetBlob(Type resources.Type, mac objects.MAC) (io.ReadSeeker, error)
- func (r *Repository) GetBlobBytes(Type resources.Type, mac objects.MAC) ([]byte, error)
- func (r *Repository) GetLock(lockID objects.MAC) (io.ReadCloser, error)
- func (r *Repository) GetLocks() ([]objects.MAC, error)
- func (r *Repository) GetMACHasher() hash.Hash
- func (r *Repository) GetObjectContent(obj *objects.Object, start int, maxSize uint32) iter.Seq2[[]byte, error]
- func (r *Repository) GetPackfile(mac objects.MAC) (*packfile.PackfileInMemory, error)
- func (r *Repository) GetPackfileBlob(loc state.Location) (io.ReadSeeker, error)
- func (r *Repository) GetPackfileForBlob(Type resources.Type, mac objects.MAC) (objects.MAC, bool, error)
- func (r *Repository) GetPackfileRange(loc state.Location) ([]byte, error)
- func (r *Repository) GetPackfiles() ([]objects.MAC, error)
- func (r *Repository) GetPooledMACHasher() (hash.Hash, func())
- func (r *Repository) GetSnapshots() ([]objects.MAC, error)
- func (r *Repository) GetState(mac objects.MAC) (io.ReadCloser, error)
- func (r *Repository) GetStates() ([]objects.MAC, error)
- func (r *Repository) HasDeletedPackfile(mac objects.MAC) (bool, error)
- func (r *Repository) ListDeletedPackfiles() iter.Seq2[objects.MAC, time.Time]
- func (r *Repository) ListDeletedSnapShots() iter.Seq2[objects.MAC, time.Time]
- func (r *Repository) ListOrphanBlobs() iter.Seq2[state.DeltaEntry, error]
- func (r *Repository) ListPackfileEntries() iter.Seq2[state.PackfileEntry, error]
- func (r *Repository) ListPackfiles() iter.Seq[objects.MAC]
- func (r *Repository) ListSnapshots() iter.Seq[objects.MAC]
- func (r *Repository) Location() (string, error)
- func (r *Repository) Logger() *logging.Logger
- func (r *Repository) NewRepositoryWriter(cache *caching.ScanCache, id objects.MAC, typ RepositoryType, ...) *RepositoryWriter
- func (r *Repository) PutCurrentState() error
- func (r *Repository) PutLock(lockID objects.MAC, rd io.Reader) (int64, error)
- func (r *Repository) PutState(mac objects.MAC, rd io.Reader) error
- func (r *Repository) RBytes() int64
- func (r *Repository) RebuildState() error
- func (r *Repository) RebuildStateWithCache(cacheInstance caching.StateCache) error
- func (r *Repository) RemoveBlob(Type resources.Type, mac, packfileMAC objects.MAC) error
- func (r *Repository) RemoveDeletedPackfile(packfileMAC objects.MAC) error
- func (r *Repository) RemovePackfile(packfileMAC objects.MAC) error
- func (r *Repository) StorageSize() (int64, error)
- func (r *Repository) Store() storage.Store
- func (r *Repository) WBytes() int64
- type RepositoryStore
- func (rs *RepositoryStore[K, V]) Close() error
- func (rs *RepositoryStore[K, V]) Get(sum objects.MAC) (*btree.Node[K, objects.MAC, V], error)
- func (rs *RepositoryStore[K, V]) Put(node *btree.Node[K, objects.MAC, V]) (csum objects.MAC, err error)
- func (rs *RepositoryStore[K, V]) Update(sum objects.MAC, node *btree.Node[K, objects.MAC, V]) error
- type RepositoryType
- type RepositoryWriter
- func (r *RepositoryWriter) BlobExists(Type resources.Type, mac objects.MAC) bool
- func (r *RepositoryWriter) CommitTransaction(oldStateID objects.MAC) error
- func (r *RepositoryWriter) DeleteStateResource(Type resources.Type, mac objects.MAC) error
- func (r *RepositoryWriter) MergeLocalStateWith(stateID objects.MAC, oldCache *caching.ScanCache) error
- func (r *RepositoryWriter) PutBlob(Type resources.Type, mac objects.MAC, data []byte) error
- func (r *RepositoryWriter) PutBlobIfNotExists(Type resources.Type, mac objects.MAC, data []byte) error
- func (r *RepositoryWriter) PutBlobIfNotExistsWithHint(hint int, Type resources.Type, mac objects.MAC, data []byte) error
- func (r *RepositoryWriter) PutBlobWithHint(hint int, Type resources.Type, mac objects.MAC, data []byte) error
- func (r *RepositoryWriter) PutPackfile(pfile packfile.Packfile) error
- func (r *RepositoryWriter) PutPtarPackfile(packfile *packer.PackWriter) error
- func (r *RepositoryWriter) RemoveTransaction(stateID objects.MAC)
- func (r *RepositoryWriter) RotateTransaction(newCache *caching.ScanCache, oldStateID, newStateID objects.MAC) error
Constants ¶
View Source
const LOCK_REFRESH_RATE = 5 * time.Minute
View Source
const LOCK_TTL = 2 * LOCK_REFRESH_RATE
View Source
const LOCK_VERSION = "1.0.0"
Variables ¶
View Source
var ( ErrPackfileNotFound = errors.New("packfile not found") ErrBlobNotFound = errors.New("blob not found") ErrNotReadable = errors.New("repository is not readable") )
View Source
var ErrStoreReadOnly = errors.New("read only store")
Functions ¶
This section is empty.
Types ¶
type HasherPool ¶
type HasherPool struct {
// contains filtered or unexported fields
}
HasherPool pools hash.Hash instances
func NewHasherPool ¶
func NewHasherPool(newHasher func() hash.Hash) *HasherPool
NewHasherPool creates a new hasher pool
func (*HasherPool) Put ¶
func (hp *HasherPool) Put(hasher hash.Hash)
Put returns a hasher to the pool
type Lock ¶
type Lock struct {
Version versioning.Version `msgpack:"version"`
Timestamp time.Time `msgpack:"timestamp"`
Hostname string `msgpack:"hostname"`
Exclusive bool `msgpack:"exclusive"`
}
func NewExclusiveLock ¶
func NewSharedLock ¶
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
func Inexistent ¶
func NewNoRebuild ¶
func (*Repository) AppContext ¶
func (r *Repository) AppContext() *kcontext.KContext
func (*Repository) BlobExists ¶
func (*Repository) Close ¶
func (r *Repository) Close() error
func (*Repository) ComputeMAC ¶
func (r *Repository) ComputeMAC(data []byte) objects.MAC
func (*Repository) Configuration ¶
func (r *Repository) Configuration() storage.Configuration
func (*Repository) DeleteLock ¶
func (r *Repository) DeleteLock(lockID objects.MAC) error
func (*Repository) DeletePackfile ¶
func (r *Repository) DeletePackfile(mac objects.MAC) error
Deletes a packfile from the store. Warning this is a true delete and is unrecoverable.
func (*Repository) DeleteSnapshot ¶
func (r *Repository) DeleteSnapshot(snapshotID objects.MAC) error
func (*Repository) DeleteState ¶
func (r *Repository) DeleteState(mac objects.MAC) error
func (*Repository) GetBlob ¶
func (r *Repository) GetBlob(Type resources.Type, mac objects.MAC) (io.ReadSeeker, error)
func (*Repository) GetBlobBytes ¶
func (*Repository) GetLock ¶
func (r *Repository) GetLock(lockID objects.MAC) (io.ReadCloser, error)
func (*Repository) GetMACHasher ¶
func (r *Repository) GetMACHasher() hash.Hash
func (*Repository) GetObjectContent ¶ added in v1.0.3
func (*Repository) GetPackfile ¶
func (r *Repository) GetPackfile(mac objects.MAC) (*packfile.PackfileInMemory, error)
func (*Repository) GetPackfileBlob ¶
func (r *Repository) GetPackfileBlob(loc state.Location) (io.ReadSeeker, error)
func (*Repository) GetPackfileForBlob ¶
func (*Repository) GetPackfileRange ¶ added in v1.0.3
func (r *Repository) GetPackfileRange(loc state.Location) ([]byte, error)
func (*Repository) GetPackfiles ¶
func (r *Repository) GetPackfiles() ([]objects.MAC, error)
func (*Repository) GetPooledMACHasher ¶
func (r *Repository) GetPooledMACHasher() (hash.Hash, func())
func (*Repository) GetSnapshots ¶
func (r *Repository) GetSnapshots() ([]objects.MAC, error)
func (*Repository) GetState ¶
func (r *Repository) GetState(mac objects.MAC) (io.ReadCloser, error)
func (*Repository) HasDeletedPackfile ¶
func (r *Repository) HasDeletedPackfile(mac objects.MAC) (bool, error)
func (*Repository) ListDeletedPackfiles ¶
func (*Repository) ListDeletedSnapShots ¶
func (*Repository) ListOrphanBlobs ¶
func (r *Repository) ListOrphanBlobs() iter.Seq2[state.DeltaEntry, error]
func (*Repository) ListPackfileEntries ¶ added in v1.0.10
func (r *Repository) ListPackfileEntries() iter.Seq2[state.PackfileEntry, error]
func (*Repository) ListPackfiles ¶
func (r *Repository) ListPackfiles() iter.Seq[objects.MAC]
func (*Repository) ListSnapshots ¶
func (r *Repository) ListSnapshots() iter.Seq[objects.MAC]
func (*Repository) Location ¶
func (r *Repository) Location() (string, error)
func (*Repository) Logger ¶
func (r *Repository) Logger() *logging.Logger
func (*Repository) NewRepositoryWriter ¶
func (r *Repository) NewRepositoryWriter(cache *caching.ScanCache, id objects.MAC, typ RepositoryType, tmpPackfileDir string) *RepositoryWriter
func (*Repository) PutCurrentState ¶
func (r *Repository) PutCurrentState() error
Saves the full aggregated state to the repository, might be heavy handed use with care.
func (*Repository) RBytes ¶
func (r *Repository) RBytes() int64
func (*Repository) RebuildState ¶
func (r *Repository) RebuildState() error
func (*Repository) RebuildStateWithCache ¶
func (r *Repository) RebuildStateWithCache(cacheInstance caching.StateCache) error
func (*Repository) RemoveBlob ¶
Removes the provided blob from our state, making it unreachable
func (*Repository) RemoveDeletedPackfile ¶
func (r *Repository) RemoveDeletedPackfile(packfileMAC objects.MAC) error
Removes the deleted packfile entry from the state.
func (*Repository) RemovePackfile ¶
func (r *Repository) RemovePackfile(packfileMAC objects.MAC) error
Removes the packfile from the state, making it unreachable.
func (*Repository) StorageSize ¶
func (r *Repository) StorageSize() (int64, error)
func (*Repository) Store ¶
func (r *Repository) Store() storage.Store
func (*Repository) WBytes ¶
func (r *Repository) WBytes() int64
type RepositoryStore ¶
type RepositoryStore[K, V any] struct { // contains filtered or unexported fields }
func NewRepositoryStore ¶
func NewRepositoryStore[K, V any](repo *Repository, blobtype resources.Type) *RepositoryStore[K, V]
func (*RepositoryStore[K, V]) Close ¶ added in v1.0.13
func (rs *RepositoryStore[K, V]) Close() error
type RepositoryType ¶
type RepositoryType int
const ( DefaultType RepositoryType = iota PtarType = iota )
type RepositoryWriter ¶
type RepositoryWriter struct {
*Repository
PackerManager packer.PackerManagerInt
// contains filtered or unexported fields
}
func (*RepositoryWriter) BlobExists ¶
func (*RepositoryWriter) CommitTransaction ¶
func (r *RepositoryWriter) CommitTransaction(oldStateID objects.MAC) error
func (*RepositoryWriter) DeleteStateResource ¶
func (*RepositoryWriter) MergeLocalStateWith ¶ added in v1.0.10
func (*RepositoryWriter) PutBlobIfNotExists ¶
func (*RepositoryWriter) PutBlobIfNotExistsWithHint ¶
func (*RepositoryWriter) PutBlobWithHint ¶
func (*RepositoryWriter) PutPackfile ¶
func (r *RepositoryWriter) PutPackfile(pfile packfile.Packfile) error
func (*RepositoryWriter) PutPtarPackfile ¶
func (r *RepositoryWriter) PutPtarPackfile(packfile *packer.PackWriter) error
func (*RepositoryWriter) RemoveTransaction ¶ added in v1.0.10
func (r *RepositoryWriter) RemoveTransaction(stateID objects.MAC)
func (*RepositoryWriter) RotateTransaction ¶ added in v1.0.10
Click to show internal directories.
Click to hide internal directories.