aboutsummaryrefslogtreecommitdiff
path: root/weed/shell/command_ec_encode.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/shell/command_ec_encode.go')
-rw-r--r--weed/shell/command_ec_encode.go22
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