weed mount add options for collection and replication

This commit is contained in:
Chris Lu 2018-05-28 13:24:48 -07:00
parent d0b238d2db
commit 8ab7dd9d08
5 changed files with 22 additions and 12 deletions

View File

@ -1,8 +1,10 @@
package command
type MountOptions struct {
filer *string
dir *string
filer *string
dir *string
collection *string
replication *string
}
var (
@ -14,6 +16,8 @@ func init() {
cmdMount.IsDebug = cmdMount.Flag.Bool("debug", false, "verbose debug information")
mountOptions.filer = cmdMount.Flag.String("filer", "localhost:8888", "weed filer location")
mountOptions.dir = cmdMount.Flag.String("dir", ".", "mount weed filer to this directory")
mountOptions.collection = cmdMount.Flag.String("collection", "", "collection to create the files")
mountOptions.replication = cmdMount.Flag.String("replication", "000", "replication to create to files")
}
var cmdMount = &Command{

View File

@ -47,7 +47,8 @@ func runMount(cmd *Command, args []string) bool {
c.Close()
})
err = fs.Serve(c, filesys.NewSeaweedFileSystem(*mountOptions.filer))
err = fs.Serve(c, filesys.NewSeaweedFileSystem(
*mountOptions.filer, *mountOptions.collection, *mountOptions.replication))
if err != nil {
fuse.Unmount(*mountOptions.dir)
}

View File

@ -123,11 +123,12 @@ func (dir *Dir) Create(ctx context.Context, req *fuse.CreateRequest,
dir.NodeMap[req.Name] = file
file.isOpen = true
return file, &FileHandle{
f: file,
RequestId: req.Header.ID,
NodeId: req.Header.Node,
Uid: req.Uid,
Gid: req.Gid,
f: file,
dirtyPages: &ContinuousDirtyPages{f: file},
RequestId: req.Header.ID,
NodeId: req.Header.Node,
Uid: req.Uid,
Gid: req.Gid,
}, nil
}

View File

@ -108,8 +108,8 @@ func (pages *ContinuousDirtyPages) saveToStorage(ctx context.Context) (*filer_pb
request := &filer_pb.AssignVolumeRequest{
Count: 1,
Replication: "000",
Collection: "",
Replication: pages.f.wfs.replication,
Collection: pages.f.wfs.collection,
}
resp, err := client.AssignVolume(ctx, request)

View File

@ -11,12 +11,16 @@ import (
type WFS struct {
filer string
listDirectoryEntriesCache *ccache.Cache
collection string
replication string
}
func NewSeaweedFileSystem(filer string) *WFS {
func NewSeaweedFileSystem(filer string, collection string, replication string) *WFS {
return &WFS{
filer: filer,
filer: filer,
listDirectoryEntriesCache: ccache.New(ccache.Configure().MaxSize(6000).ItemsToPrune(100)),
collection: collection,
replication: replication,
}
}