Browse Source

weed mount add options for collection and replication

pull/664/head
Chris Lu 7 years ago
parent
commit
8ab7dd9d08
  1. 8
      weed/command/mount.go
  2. 3
      weed/command/mount_std.go
  3. 11
      weed/filesys/dir.go
  4. 4
      weed/filesys/dirty_page.go
  5. 8
      weed/filesys/wfs.go

8
weed/command/mount.go

@ -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{

3
weed/command/mount_std.go

@ -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)
}

11
weed/filesys/dir.go

@ -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
}

4
weed/filesys/dirty_page.go

@ -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)

8
weed/filesys/wfs.go

@ -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,
}
}

Loading…
Cancel
Save