提交 f156f63e 作者: Kevin Atkinson

"repo stat": Don't crash when Datastore.StorageMax is not defined

License: MIT
Signed-off-by: 's avatarKevin Atkinson <k@kevina.org>
上级 1221037a
...@@ -4,6 +4,7 @@ import ( ...@@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"io" "io"
"math"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
...@@ -191,12 +192,14 @@ Version string The repo version. ...@@ -191,12 +192,14 @@ Version string The repo version.
} else { } else {
fmt.Fprintf(wtr, "RepoSize:\t%d\n", stat.RepoSize) fmt.Fprintf(wtr, "RepoSize:\t%d\n", stat.RepoSize)
} }
if stat.StorageMax != math.MaxUint64 {
maxSizeInMiB := stat.StorageMax / (1024 * 1024) maxSizeInMiB := stat.StorageMax / (1024 * 1024)
if human && maxSizeInMiB > 0 { if human && maxSizeInMiB > 0 {
fmt.Fprintf(wtr, "StorageMax (MiB):\t%d\n", maxSizeInMiB) fmt.Fprintf(wtr, "StorageMax (MiB):\t%d\n", maxSizeInMiB)
} else { } else {
fmt.Fprintf(wtr, "StorageMax:\t%d\n", stat.StorageMax) fmt.Fprintf(wtr, "StorageMax:\t%d\n", stat.StorageMax)
} }
}
fmt.Fprintf(wtr, "RepoPath:\t%s\n", stat.RepoPath) fmt.Fprintf(wtr, "RepoPath:\t%s\n", stat.RepoPath)
fmt.Fprintf(wtr, "Version:\t%s\n", stat.Version) fmt.Fprintf(wtr, "Version:\t%s\n", stat.Version)
wtr.Flush() wtr.Flush()
......
...@@ -2,6 +2,7 @@ package corerepo ...@@ -2,6 +2,7 @@ package corerepo
import ( import (
"fmt" "fmt"
"math"
context "context" context "context"
"github.com/ipfs/go-ipfs/core" "github.com/ipfs/go-ipfs/core"
...@@ -46,10 +47,13 @@ func RepoStat(n *core.IpfsNode, ctx context.Context) (*Stat, error) { ...@@ -46,10 +47,13 @@ func RepoStat(n *core.IpfsNode, ctx context.Context) (*Stat, error) {
return nil, err return nil, err
} }
storageMax, err := humanize.ParseBytes(cfg.Datastore.StorageMax) var storageMax uint64 = math.MaxUint64
if cfg.Datastore.StorageMax != "" {
storageMax, err = humanize.ParseBytes(cfg.Datastore.StorageMax)
if err != nil { if err != nil {
return nil, err return nil, err
} }
}
return &Stat{ return &Stat{
NumObjects: count, NumObjects: count,
......
...@@ -263,4 +263,11 @@ test_expect_success "repo version came out correct" ' ...@@ -263,4 +263,11 @@ test_expect_success "repo version came out correct" '
test_kill_ipfs_daemon test_kill_ipfs_daemon
test_expect_success "remove Datastore.StorageMax from config" '
ipfs config Datastore.StorageMax ""
'
test_expect_success "'ipfs repo stat' still succeeds" '
ipfs repo stat > repo-stats
'
test_done test_done
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论