mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-11-04 19:17:46 +01:00
mount: add -volumeName to name the disk explicitly (#11165)
* mount: let volumeName take an explicit override volumeName only ever derived the disk's label from -filer.path, -dir, or the filer address, so a name that happened to collide with something else - e.g. a UNC share's own name - could not be changed without moving what was mounted. Give it an override parameter that wins over all three; nothing passes one yet. * mount: add -volumeName to name the disk explicitly Windows has no equivalent of the "weed fuse" -o passthrough that lets a Linux or macOS mount override its derived volname, so a name picked up from -dir - e.g. a UNC share's own name - could not be changed short of moving what was mounted. -volumeName overrides it on every platform. * mount: document -volumeName * mount: scope -volumeName's help text to macOS and Windows Linux has no volume-label mount option for -volumeName to feed, so the flag's own description says where it applies instead of leaving that unstated. * mount: forward -volumeName through the weed fuse option parser weed fuse (the /etc/fstab helper) turns -o key=value into the same MountOptions weed mount takes, but volumeName had no case, so it fell through to being forwarded as a literal, unrecognized FUSE option instead of ever reaching mountOptions.volumeName. * mount: apply -volumeName to FsName on Linux and FreeBSD FsName only ever took the filer address and -filer.path, so -volumeName had nothing to override there and silently did nothing; the skipAutofs case still forces "fuse", since that name is what util-linux/mount requires to recognize the pseudo filesystem.
This commit is contained in:
1 parent
cfa8afec92
commit
1ca19ea2e2
7 files changed
+66
-8
No files matched your search
@@ -10,8 +10,24 @@ func Test_volumeName(t *testing.T) {
|
||||
filer string
|
||||
filerMountRootPath string
|
||||
dir string
|
||||
override string
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
name: "an override outranks the mounted path and the mount point",
|
||||
filer: "127.0.0.1:8888",
|
||||
filerMountRootPath: "/buckets/videos",
|
||||
dir: `\\seaweedfs\Images`,
|
||||
override: "MyDisk",
|
||||
expected: "MyDisk",
|
||||
},
|
||||
{
|
||||
name: "an override still gets commas replaced",
|
||||
filer: "127.0.0.1:8888",
|
||||
filerMountRootPath: "/",
|
||||
override: "My, Disk",
|
||||
expected: "My+ Disk",
|
||||
},
|
||||
{
|
||||
name: "a drive letter leaves only the filer to fall back on",
|
||||
filer: "127.0.0.1:8888",
|
||||
@@ -80,8 +96,8 @@ func Test_volumeName(t *testing.T) {
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := volumeName(tt.filer, tt.filerMountRootPath, tt.dir); got != tt.expected {
|
||||
t.Errorf("volumeName(%q, %q, %q) = %q, want %q", tt.filer, tt.filerMountRootPath, tt.dir, got, tt.expected)
|
||||
if got := volumeName(tt.filer, tt.filerMountRootPath, tt.dir, tt.override); got != tt.expected {
|
||||
t.Errorf("volumeName(%q, %q, %q, %q) = %q, want %q", tt.filer, tt.filerMountRootPath, tt.dir, tt.override, got, tt.expected)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user