container

package
v0.36.1 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2023 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AsContainerSource added in v0.28.0

func AsContainerSource(w *Client) core.Source

AsContainerSource provides container Source interface from Wrapper instance.

func Delete added in v0.28.0

func Delete(c *Client, witness core.RemovalWitness) error

Delete marshals container ID, and passes it to Wrapper's Delete method along with signature and session token.

Returns error if container ID is nil.

func Get added in v0.28.0

func Get(c *Client, cnr cid.ID) (*containercore.Container, error)

Get marshals container ID, and passes it to Wrapper's Get method.

func Put added in v0.28.0

func Put(c *Client, cnr containercore.Container) (*cid.ID, error)

Put marshals container, and passes it to Wrapper's Put method along with sig.Key() and sig.Sign().

Returns error if container is nil.

func PutEACL added in v0.28.0

func PutEACL(c *Client, eaclInfo containercore.EACL) error

PutEACL marshals table, and passes it to Wrapper's PutEACLBinary method along with sig.Key() and sig.Sign().

Returns error if table is nil.

If TryNotary is provided, calls notary contract.

Types

type AnnounceLoadPrm added in v0.28.0

type AnnounceLoadPrm struct {
	client.InvokePrmOptional
	// contains filtered or unexported fields
}

AnnounceLoadPrm groups parameters of AnnounceLoad operation.

func (*AnnounceLoadPrm) SetAnnouncement added in v0.28.0

func (a2 *AnnounceLoadPrm) SetAnnouncement(a container.SizeEstimation)

SetAnnouncement sets announcement.

func (*AnnounceLoadPrm) SetReporter added in v0.28.0

func (a2 *AnnounceLoadPrm) SetReporter(key []byte)

SetReporter sets public key of the reporter.

type Client

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

Client is a wrapper over StaticClient which makes calls with the names and arguments of the NeoFS Container contract.

Working client must be created via constructor New. Using the Client that has been created with new(Client) expression (or just declaring a Client variable) is unsafe and can lead to panic.

func NewFromMorph added in v0.28.0

func NewFromMorph(cli *client.Client, contract util.Uint160, fee fixedn.Fixed8, opts ...Option) (*Client, error)

NewFromMorph returns the wrapper instance from the raw morph client.

Specified fee is used for all operations by default. If WithCustomFeeForNamedPut is provided, the customized fee is used for Put operations with named containers.

func (*Client) AnnounceLoad added in v0.28.0

func (c *Client) AnnounceLoad(p AnnounceLoadPrm) error

AnnounceLoad saves container size estimation calculated by storage node with key in NeoFS system through Container contract call.

Returns any error encountered that caused the saving to interrupt.

func (Client) ContractAddress added in v0.28.0

func (c Client) ContractAddress() util.Uint160

ContractAddress returns the address of the associated contract.

func (*Client) Delete

func (c *Client) Delete(p DeletePrm) error

Delete removes the container from NeoFS system through Container contract call.

Returns any error encountered that caused the removal to interrupt.

If TryNotary is provided, calls notary contract.

func (*Client) Get

func (c *Client) Get(cid []byte) (*containercore.Container, error)

Get reads the container from NeoFS system by binary identifier through Container contract call.

If an empty slice is returned for the requested identifier, storage.ErrNotFound error is returned.

func (*Client) GetEACL added in v0.28.0

func (c *Client) GetEACL(cnr cid.ID) (*container.EACL, error)

GetEACL reads the extended ACL table from NeoFS system through Container contract call.

Returns apistatus.EACLNotFound if eACL table is missing in the contract.

func (*Client) GetUsedSpaceEstimations added in v0.28.0

func (c *Client) GetUsedSpaceEstimations(id EstimationID) (*Estimations, error)

GetUsedSpaceEstimations returns a list of container load estimations by ID. The list is composed through Container contract call.

func (*Client) List

func (c *Client) List(idUser *user.ID) ([]cid.ID, error)

List returns a list of container identifiers belonging to the specified user of NeoFS system. The list is composed through Container contract call.

Returns the identifiers of all NeoFS containers if pointer to user identifier is nil.

func (*Client) ListLoadEstimationsByEpoch added in v0.28.0

func (c *Client) ListLoadEstimationsByEpoch(epoch uint64) ([]EstimationID, error)

ListLoadEstimationsByEpoch returns a list of container load estimations for to the specified epoch. The list is composed through Container contract call.

func (Client) Morph added in v0.25.0

func (c Client) Morph() *client.Client

Morph returns raw morph client.

func (*Client) Put

func (c *Client) Put(p PutPrm) error

Put saves binary container with its session token, key and signature in NeoFS system through Container contract call.

Returns calculated container identifier and any error encountered that caused the saving to interrupt.

If TryNotary is provided, calls notary contract.

func (*Client) PutEACL added in v0.28.0

func (c *Client) PutEACL(p PutEACLPrm) error

PutEACL saves binary eACL table with its session token, key and signature in NeoFS system through Container contract call.

Returns any error encountered that caused the saving to interrupt.

func (*Client) StartEstimation added in v0.15.0

func (c *Client) StartEstimation(p StartEstimationPrm) error

StartEstimation votes to produce start estimation notification.

func (*Client) StopEstimation added in v0.15.0

func (c *Client) StopEstimation(p StopEstimationPrm) error

StopEstimation votes to produce stop estimation notification.

type DeletePrm added in v0.28.0

type DeletePrm struct {
	client.InvokePrmOptional
	// contains filtered or unexported fields
}

DeletePrm groups parameters of Delete client operation.

func (*DeletePrm) SetCID added in v0.28.0

func (d *DeletePrm) SetCID(cid []byte)

SetCID sets container ID.

func (*DeletePrm) SetSignature added in v0.28.0

func (d *DeletePrm) SetSignature(signature []byte)

SetSignature sets signature.

func (*DeletePrm) SetToken added in v0.28.0

func (d *DeletePrm) SetToken(token []byte)

SetToken sets session token.

type Estimation added in v0.15.0

type Estimation struct {
	Size uint64

	Reporter []byte
}

Estimation is a structure of single container load estimation reported by storage node.

type EstimationID added in v0.28.0

type EstimationID []byte

EstimationID is an identity of container load estimation inside Container contract.

type Estimations added in v0.15.0

type Estimations struct {
	ContainerID cid.ID

	Values []Estimation
}

Estimations is a structure of grouped container load estimation inside Container contract.

type Option

type Option func(*opts)

Option allows to set an optional parameter of Wrapper.

func AsAlphabet added in v0.28.0

func AsAlphabet() Option

AsAlphabet returns option to sign main TX of notary requests with client's private key.

Considered to be used by IR nodes only.

func TryNotary added in v0.28.0

func TryNotary() Option

TryNotary returns option to enable notary invocation tries.

func WithCustomFeeForNamedPut added in v0.28.0

func WithCustomFeeForNamedPut(fee fixedn.Fixed8) Option

WithCustomFeeForNamedPut returns option to specify custom fee for each Put operation with named container.

type PutEACLPrm added in v0.28.0

type PutEACLPrm struct {
	client.InvokePrmOptional
	// contains filtered or unexported fields
}

PutEACLPrm groups parameters of PutEACL operation.

func (*PutEACLPrm) SetKey added in v0.28.0

func (p *PutEACLPrm) SetKey(key []byte)

SetKey sets key.

func (*PutEACLPrm) SetSignature added in v0.28.0

func (p *PutEACLPrm) SetSignature(sig []byte)

SetSignature sets signature.

func (*PutEACLPrm) SetTable added in v0.28.0

func (p *PutEACLPrm) SetTable(table []byte)

SetTable sets table.

func (*PutEACLPrm) SetToken added in v0.28.0

func (p *PutEACLPrm) SetToken(token []byte)

SetToken sets session token.

type PutPrm added in v0.28.0

type PutPrm struct {
	client.InvokePrmOptional
	// contains filtered or unexported fields
}

PutPrm groups parameters of Put operation.

func (*PutPrm) SetContainer added in v0.28.0

func (p *PutPrm) SetContainer(cnr []byte)

SetContainer sets container data.

func (*PutPrm) SetKey added in v0.28.0

func (p *PutPrm) SetKey(key []byte)

SetKey sets public key.

func (*PutPrm) SetName added in v0.28.0

func (p *PutPrm) SetName(name string)

SetName sets native name.

func (*PutPrm) SetSignature added in v0.28.0

func (p *PutPrm) SetSignature(sig []byte)

SetSignature sets signature.

func (*PutPrm) SetToken added in v0.28.0

func (p *PutPrm) SetToken(token []byte)

SetToken sets session token.

func (*PutPrm) SetZone added in v0.28.0

func (p *PutPrm) SetZone(zone string)

SetZone sets zone.

type StartEstimationPrm added in v0.28.0

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

StartEstimationPrm groups parameters of StartEstimation operation.

func (*StartEstimationPrm) SetEpoch added in v0.28.0

func (p *StartEstimationPrm) SetEpoch(epoch uint64)

SetEpoch sets epoch.

type StopEstimationPrm added in v0.28.0

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

StopEstimationPrm groups parameters of StopEstimation operation.

func (*StopEstimationPrm) SetEpoch added in v0.28.0

func (p *StopEstimationPrm) SetEpoch(epoch uint64)

SetEpoch sets epoch.

Jump to

Keyboard shortcuts

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