jbrodriguez/unbalance

Moving individual files are handled as if they are folders causing scatter to fail.

ToasterChicken opened this issue · 2 comments

Selecting 1TB of individual files from one drive (say 10 100GB files) to move to a drive with 4.79TB space free it says there's not enough free space on the target drive. It appears to suggest that the first file in the selected list is a directory and not a file, which based on the errors and the error not-available would make sense looking at the code that generates that error.

func getIssues(re *regexp.Regexp, disk *domain.Disk, path string) (int64, int64, int64, int64, error) {
var ownerIssue, groupIssue, folderIssue, fileIssue int64
folder := filepath.Join(disk.Path, path)
if _, err := os.Stat(folder); os.IsNotExist(err) {
return ownerIssue, groupIssue, folderIssue, fileIssue, err
}
scanFolder := folder + "/."
cmd := fmt.Sprintf(`find "%s" -exec stat --format "%%A|%%U:%%G|%%F|%%n" {} \;`, scanFolder)

Suggests that based on this, it's performing a find on myshare/somefile.bak/. which isn't a thing., somefile.bak is a file not a directory.

2024/01/28 14:47:46 items:count(1):size(108.82 GB)
2024/01/28 14:47:46 scanning:disk(/mnt/disk13):folder(myshare/somefile.bak)
2024/01/28 14:47:46 issues:not-available:(exit status 1)
2024/01/28 14:47:46 items:count(1):size(108.80 GB)
2024/01/28 14:47:46 scatterPlan:items(9)
...
2024/01/28 14:47:46 disk(/mnt/disk15):items(1)-(108.87 GB):currentFree(4.79 TB)-plannedFree(4.68 TB)
2024/01/28 14:47:46 scatterPlan:1 items will be transferred.
...
2024/01/28 14:47:46 scatterPlan:8 items will NOT be transferred.

Edit: to be fair, I suppose it does say select a folder in the GUI... But it lets you select files and this is a feature that the old plugin allows.

yes, it's suited for folders not files inside a share, i'll double check the code