dms3ns

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2021 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 22 Imported by: 0

Documentation

Overview

package fuse/dms3ns implements a fuse filesystem that interfaces with dms3ns, the naming system for dms3.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitializeKeyspace

func InitializeKeyspace(n *core.Dms3Node, key ci.PrivKey) error

InitializeKeyspace sets the dms3ns record for the given key to point to an empty directory.

func Mount

func Mount(dms3 *core.Dms3Node, dms3nsmp, dms3mp string) (mount.Mount, error)

Mount mounts dms3ns at a given location, and returns a mount.Mount instance.

Types

type Directory

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

Directory is wrapper over an mfs directory to satisfy the fuse fs interface

func (*Directory) Attr

func (d *Directory) Attr(ctx context.Context, a *fuse.Attr) error

Attr returns the attributes of a given node.

func (*Directory) Create

func (dir *Directory) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error)

func (*Directory) Lookup

func (s *Directory) Lookup(ctx context.Context, name string) (fs.Node, error)

Lookup performs a lookup under this node.

func (*Directory) Mkdir

func (dir *Directory) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error)

func (*Directory) ReadDirAll

func (dir *Directory) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error)

ReadDirAll reads the link structure as directory entries

func (*Directory) Remove

func (dir *Directory) Remove(ctx context.Context, req *fuse.RemoveRequest) error

func (*Directory) Rename

func (dir *Directory) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Node) error

Rename implements NodeRenamer

type File

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

File is wrapper over an mfs file to satisfy the fuse fs interface

func (*File) Flush

func (fi *File) Flush(ctx context.Context, req *fuse.FlushRequest) error

func (*File) Forget

func (fi *File) Forget()

func (*File) Read

func (fi *File) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error

func (*File) Release

func (fi *File) Release(ctx context.Context, req *fuse.ReleaseRequest) error

func (*File) Setattr

func (fi *File) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error

func (*File) Write

func (fi *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error

type FileNode

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

func (*FileNode) Attr

func (fi *FileNode) Attr(ctx context.Context, a *fuse.Attr) error

Attr returns the attributes of a given node.

func (*FileNode) Fsync

func (fi *FileNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error

Fsync flushes the content in the file to disk.

func (*FileNode) Open

func (fi *FileNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)

type FileSystem

type FileSystem struct {
	Dms3     iface.CoreAPI
	RootNode *Root
}

FileSystem is the readwrite DMS3NS Fuse Filesystem.

func NewFileSystem

func NewFileSystem(ctx context.Context, dms3 iface.CoreAPI, dms3path, dms3nspath string) (*FileSystem, error)

NewFileSystem constructs new fs using given core.Dms3Node instance.

func (*FileSystem) Destroy

func (f *FileSystem) Destroy()

func (*FileSystem) Root

func (f *FileSystem) Root() (fs.Node, error)

Root constructs the Root of the filesystem, a Root object.

type Link struct {
	Target string
}

func (*Link) Attr

func (l *Link) Attr(ctx context.Context, a *fuse.Attr) error
func (l *Link) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error)

type Root

type Root struct {
	Dms3 iface.CoreAPI
	Keys map[string]iface.Key

	// Used for symlinking into dms3
	Dms3Root   string
	Dms3NsRoot string
	LocalDirs  map[string]fs.Node
	Roots      map[string]*mfs.Root

	LocalLinks map[string]*Link
}

Root is the root object of the filesystem tree.

func CreateRoot

func CreateRoot(ctx context.Context, dms3 iface.CoreAPI, keys map[string]iface.Key, dms3path, dms3nspath string) (*Root, error)

func (*Root) Attr

func (*Root) Attr(ctx context.Context, a *fuse.Attr) error

Attr returns file attributes.

func (*Root) Close

func (r *Root) Close() error

func (*Root) Forget

func (r *Root) Forget()

Forget is called when the filesystem is unmounted. probably. see comments here: http://godoc.org/bazil.org/fuse/fs#FSDestroyer

func (*Root) Lookup

func (s *Root) Lookup(ctx context.Context, name string) (fs.Node, error)

Lookup performs a lookup under this node.

func (*Root) ReadDirAll

func (r *Root) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error)

ReadDirAll reads a particular directory. Will show locally available keys as well as a symlink to the peerID key

Jump to

Keyboard shortcuts

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