repo

package
v0.32.1 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2024 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 11 Imported by: 42

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrApiNotRunning = errors.New("api not running") //nolint

Functions

This section is empty.

Types

type Datastore added in v0.4.0

type Datastore interface {
	ds.Batching // must be thread-safe
}

Datastore is the interface required from a datastore to be acceptable to FSRepo.

type Mock

type Mock struct {
	C config.Config
	D Datastore
	K keystore.Keystore
	F *filestore.FileManager
}

Mock is not thread-safe.

func (*Mock) BackupConfig added in v0.4.14

func (m *Mock) BackupConfig(prefix string) (string, error)

func (*Mock) Close

func (m *Mock) Close() error

func (*Mock) Config

func (m *Mock) Config() (*config.Config, error)

func (*Mock) Datastore

func (m *Mock) Datastore() Datastore

func (*Mock) FileManager added in v0.4.7

func (m *Mock) FileManager() *filestore.FileManager

func (*Mock) GetConfigKey

func (m *Mock) GetConfigKey(key string) (interface{}, error)

func (*Mock) GetStorageUsage added in v0.3.10

func (m *Mock) GetStorageUsage(_ context.Context) (uint64, error)

func (*Mock) Keystore added in v0.4.5

func (m *Mock) Keystore() keystore.Keystore

func (*Mock) Path added in v0.31.0

func (m *Mock) Path() string

func (*Mock) SetAPIAddr added in v0.3.8

func (m *Mock) SetAPIAddr(addr ma.Multiaddr) error

func (*Mock) SetConfig

func (m *Mock) SetConfig(updated *config.Config) error

func (*Mock) SetConfigKey

func (m *Mock) SetConfigKey(key string, value interface{}) error

func (*Mock) SetGatewayAddr added in v0.15.0

func (m *Mock) SetGatewayAddr(addr net.Addr) error

func (*Mock) SwarmKey added in v0.4.7

func (m *Mock) SwarmKey() ([]byte, error)

func (*Mock) UserResourceOverrides added in v0.19.0

func (m *Mock) UserResourceOverrides() (rcmgr.PartialLimitConfig, error)

type OnlyOne added in v0.3.2

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

OnlyOne tracks open Repos by arbitrary key and returns the already open one.

func (*OnlyOne) Open added in v0.3.2

func (o *OnlyOne) Open(key interface{}, open func() (Repo, error)) (Repo, error)

Open a Repo identified by key. If Repo is not already open, the open function is called, and the result is remembered for further use.

Key must be comparable, or Open will panic. Make sure to pick keys that are unique across different concrete Repo implementations, e.g. by creating a local type:

type repoKey string
r, err := o.Open(repoKey(path), open)

Call Repo.Close when done.

type Repo

type Repo interface {
	// Config returns the ipfs configuration file from the repo. Changes made
	// to the returned config are not automatically persisted.
	Config() (*config.Config, error)

	// Path is the repo file-system path
	Path() string

	// UserResourceOverrides returns optional user resource overrides for the
	// libp2p resource manager.
	UserResourceOverrides() (rcmgr.PartialLimitConfig, error)

	// BackupConfig creates a backup of the current configuration file using
	// the given prefix for naming.
	BackupConfig(prefix string) (string, error)

	// SetConfig persists the given configuration struct to storage.
	SetConfig(*config.Config) error

	// SetConfigKey sets the given key-value pair within the config and persists it to storage.
	SetConfigKey(key string, value interface{}) error

	// GetConfigKey reads the value for the given key from the configuration in storage.
	GetConfigKey(key string) (interface{}, error)

	// Datastore returns a reference to the configured data storage backend.
	Datastore() Datastore

	// GetStorageUsage returns the number of bytes stored.
	GetStorageUsage(context.Context) (uint64, error)

	// Keystore returns a reference to the key management interface.
	Keystore() keystore.Keystore

	// FileManager returns a reference to the filestore file manager.
	FileManager() *filestore.FileManager

	// SetAPIAddr sets the API address in the repo.
	SetAPIAddr(addr ma.Multiaddr) error

	// SetGatewayAddr sets the Gateway address in the repo.
	SetGatewayAddr(addr net.Addr) error

	// SwarmKey returns the configured shared symmetric key for the private networks feature.
	SwarmKey() ([]byte, error)

	io.Closer
}

Repo represents all persistent data of a given ipfs node.

Directories

Path Synopsis
package fsrepo
package fsrepo

Jump to

Keyboard shortcuts

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