eosgrpc

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2021 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// SystemAttr is the system extended attribute.
	SystemAttr eosclient.AttrType = iota
	// UserAttr is the user extended attribute.
	UserAttr
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client performs actions against a EOS management node (MGM) using the EOS GRPC interface.

func New

func New(opt *Options) *Client

New creates a new client with the given options.

func (*Client) AddACL

func (c *Client) AddACL(ctx context.Context, uid, gid, rootUID, rootGID, path string, a *acl.Entry) error

AddACL adds an new acl to EOS with the given aclType.

func (*Client) Chmod

func (c *Client) Chmod(ctx context.Context, uid, gid, mode, path string) error

Chmod given path

func (*Client) Chown

func (c *Client) Chown(ctx context.Context, uid, gid, chownUID, chownGID, path string) error

Chown given path

func (*Client) CreateDir

func (c *Client) CreateDir(ctx context.Context, uid, gid, path string) error

CreateDir creates a directory at the given path

func (*Client) GetACL

func (c *Client) GetACL(ctx context.Context, uid, gid, path, aclType, target string) (*acl.Entry, error)

GetACL for a file

func (*Client) GetFileInfoByFXID

func (c *Client) GetFileInfoByFXID(ctx context.Context, uid, gid string, fxid string) (*eosclient.FileInfo, error)

GetFileInfoByFXID returns the FileInfo by the given file id in hexadecimal

func (*Client) GetFileInfoByInode

func (c *Client) GetFileInfoByInode(ctx context.Context, uid, gid string, inode uint64) (*eosclient.FileInfo, error)

GetFileInfoByInode returns the FileInfo by the given inode

func (*Client) GetFileInfoByPath

func (c *Client) GetFileInfoByPath(ctx context.Context, uid, gid, path string) (*eosclient.FileInfo, error)

GetFileInfoByPath returns the FilInfo at the given path

func (*Client) GetQuota

func (c *Client) GetQuota(ctx context.Context, username, rootUID, rootGID, path string) (*eosclient.QuotaInfo, error)

GetQuota gets the quota of a user on the quota node defined by path

func (*Client) List

func (c *Client) List(ctx context.Context, uid, gid, dpath string) ([]*eosclient.FileInfo, error)

List the contents of the directory given by path

func (*Client) ListACLs

func (c *Client) ListACLs(ctx context.Context, uid, gid, path string) ([]*acl.Entry, error)

ListACLs returns the list of ACLs present under the given path. EOS returns uids/gid for Citrine version and usernames for older versions. For Citire we need to convert back the uid back to username.

func (*Client) ListDeletedEntries

func (c *Client) ListDeletedEntries(ctx context.Context, uid, gid string) ([]*eosclient.DeletedEntry, error)

ListDeletedEntries returns a list of the deleted entries.

func (*Client) ListVersions

func (c *Client) ListVersions(ctx context.Context, uid, gid, p string) ([]*eosclient.FileInfo, error)

ListVersions list all the versions for a given file.

func (*Client) PurgeDeletedEntries

func (c *Client) PurgeDeletedEntries(ctx context.Context, uid, gid string) error

PurgeDeletedEntries purges all entries from the recycle bin.

func (*Client) Read

func (c *Client) Read(ctx context.Context, uid, gid, path string) (io.ReadCloser, error)

Read reads a file from the mgm

func (*Client) ReadVersion

func (c *Client) ReadVersion(ctx context.Context, uid, gid, p, version string) (io.ReadCloser, error)

ReadVersion reads the version for the given file.

func (*Client) Remove

func (c *Client) Remove(ctx context.Context, uid, gid, path string) error

Remove removes the resource at the given path

func (*Client) RemoveACL

func (c *Client) RemoveACL(ctx context.Context, uid, gid, rootUID, rootGID, path string, a *acl.Entry) error

RemoveACL removes the acl from EOS.

func (*Client) Rename

func (c *Client) Rename(ctx context.Context, uid, gid, oldPath, newPath string) error

Rename renames the resource referenced by oldPath to newPath

func (*Client) RestoreDeletedEntry

func (c *Client) RestoreDeletedEntry(ctx context.Context, uid, gid, key string) error

RestoreDeletedEntry restores a deleted entry.

func (*Client) RollbackToVersion

func (c *Client) RollbackToVersion(ctx context.Context, uid, gid, path, version string) error

RollbackToVersion rollbacks a file to a previous version.

func (*Client) SetAttr

func (c *Client) SetAttr(ctx context.Context, uid, gid string, attr *eosclient.Attribute, recursive bool, path string) error

SetAttr sets an extended attributes on a path.

func (*Client) SetQuota

func (c *Client) SetQuota(ctx context.Context, rootUID, rootGID string, info *eosclient.SetQuotaInfo) error

SetQuota sets the quota of a user on the quota node defined by path

func (*Client) Touch

func (c *Client) Touch(ctx context.Context, uid, gid, path string) error

Touch creates a 0-size,0-replica file in the EOS namespace.

func (*Client) UnsetAttr

func (c *Client) UnsetAttr(ctx context.Context, uid, gid string, attr *eosclient.Attribute, path string) error

UnsetAttr unsets an extended attribute on a path.

func (*Client) UpdateACL

func (c *Client) UpdateACL(ctx context.Context, uid, gid, rootUID, rootGID, path string, a *acl.Entry) error

UpdateACL updates the EOS acl.

func (*Client) Write

func (c *Client) Write(ctx context.Context, uid, gid, path string, stream io.ReadCloser) error

Write writes a file to the mgm

func (*Client) WriteFile

func (c *Client) WriteFile(ctx context.Context, uid, gid, path, source string) error

WriteFile writes an existing file to the mgm

type Options

type Options struct {

	// ForceSingleUserMode forces all connections to use only one user.
	// This is the case when access to EOS is done from FUSE under apache or www-data.
	ForceSingleUserMode bool

	// UseKeyTabAuth changes will authenticate requests by using an EOS keytab.
	UseKeytab bool

	// Whether to maintain the same inode across various versions of a file.
	// Requires extra metadata operations if set to true
	VersionInvariant bool

	// SingleUsername is the username to use when connecting to EOS.
	// Defaults to apache
	SingleUsername string

	// Location of the xrdcopy binary.
	// Default is /opt/eos/xrootd/bin/xrdcopy.
	XrdcopyBinary string

	// URL of the EOS MGM.
	// Default is root://eos-example.org
	URL string

	// URI of the EOS MGM grpc server
	GrpcURI string

	// Location on the local fs where to store reads.
	// Defaults to os.TempDir()
	CacheDirectory string

	// Keytab is the location of the EOS keytab file.
	Keytab string

	// Authkey is the key that authorizes this client to connect to the GRPC service
	// It's unclear whether this will be the final solution
	Authkey string

	// SecProtocol is the comma separated list of security protocols used by xrootd.
	// For example: "sss, unix"
	SecProtocol string
}

Options to configure the Client.

Directories

Path Synopsis
Package eos_grpc is a generated protocol buffer package.
Package eos_grpc is a generated protocol buffer package.

Jump to

Keyboard shortcuts

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