1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-07-01 02:30:39 +08:00

Merge pull request #4246 from ipfs/kevina/stat-no-max-storage

"repo stat": Don't crash when Datastore.StorageMax is not defined
This commit is contained in:
Jeromy Johnson
2017-10-03 17:42:53 +03:00
committed by GitHub
3 changed files with 24 additions and 8 deletions

View File

@ -191,11 +191,13 @@ Version string The repo version.
} else {
fmt.Fprintf(wtr, "RepoSize:\t%d\n", stat.RepoSize)
}
maxSizeInMiB := stat.StorageMax / (1024 * 1024)
if human && maxSizeInMiB > 0 {
fmt.Fprintf(wtr, "StorageMax (MiB):\t%d\n", maxSizeInMiB)
} else {
fmt.Fprintf(wtr, "StorageMax:\t%d\n", stat.StorageMax)
if stat.StorageMax != corerepo.NoLimit {
maxSizeInMiB := stat.StorageMax / (1024 * 1024)
if human && maxSizeInMiB > 0 {
fmt.Fprintf(wtr, "StorageMax (MiB):\t%d\n", maxSizeInMiB)
} else {
fmt.Fprintf(wtr, "StorageMax:\t%d\n", stat.StorageMax)
}
}
fmt.Fprintf(wtr, "RepoPath:\t%s\n", stat.RepoPath)
fmt.Fprintf(wtr, "Version:\t%s\n", stat.Version)

View File

@ -2,6 +2,7 @@ package corerepo
import (
"fmt"
"math"
context "context"
"github.com/ipfs/go-ipfs/core"
@ -18,6 +19,9 @@ type Stat struct {
StorageMax uint64 // size in bytes
}
// NoLimit represents the value for unlimited storage
const NoLimit uint64 = math.MaxUint64
func RepoStat(n *core.IpfsNode, ctx context.Context) (*Stat, error) {
r := n.Repo
@ -46,9 +50,12 @@ func RepoStat(n *core.IpfsNode, ctx context.Context) (*Stat, error) {
return nil, err
}
storageMax, err := humanize.ParseBytes(cfg.Datastore.StorageMax)
if err != nil {
return nil, err
storageMax := NoLimit
if cfg.Datastore.StorageMax != "" {
storageMax, err = humanize.ParseBytes(cfg.Datastore.StorageMax)
if err != nil {
return nil, err
}
}
return &Stat{

View File

@ -263,4 +263,11 @@ test_expect_success "repo version came out correct" '
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