diff options
Diffstat (limited to 'weed/shell/command_ec_encode.go')
| -rw-r--r-- | weed/shell/command_ec_encode.go | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/weed/shell/command_ec_encode.go b/weed/shell/command_ec_encode.go index e41529174..d66bbdba9 100644 --- a/weed/shell/command_ec_encode.go +++ b/weed/shell/command_ec_encode.go @@ -315,15 +315,31 @@ func collectVolumeIdsForEcEncode(commandEnv *CommandEnv, selectedCollection stri } if v.Collection == selectedCollection && v.ModifiedAtSecond+quietSeconds < nowUnixSeconds { if float64(v.Size) > fullPercentage/100*float64(volumeSizeLimitMb)*1024*1024 { - vidMap[v.Id] = true + if good, found := vidMap[v.Id]; found { + if good { + if diskInfo.FreeVolumeCount < 1 { + glog.V(0).Infof("skip %d.%d on %s, no free disk", v.Id, v.Collection, dn.Id) + vidMap[v.Id] = false + } + } + } else { + if diskInfo.FreeVolumeCount < 1 { + glog.V(0).Infof("skip %d.%d on %s, no free disk", v.Id, v.Collection, dn.Id) + vidMap[v.Id] = false + } else { + vidMap[v.Id] = true + } + } } } } } }) - for vid := range vidMap { - vids = append(vids, needle.VolumeId(vid)) + for vid, good := range vidMap { + if good { + vids = append(vids, needle.VolumeId(vid)) + } } return |
