add lotus-miner dagstore initialize-all command.

This commit is contained in:
Raúl Kripalani 2021-08-05 14:23:06 +01:00
parent 7c858ece76
commit 28c550bbae
2 changed files with 66 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import (
"github.com/fatih/color" "github.com/fatih/color"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/filecoin-project/lotus/api"
lcli "github.com/filecoin-project/lotus/cli" lcli "github.com/filecoin-project/lotus/cli"
"github.com/filecoin-project/lotus/lib/tablewriter" "github.com/filecoin-project/lotus/lib/tablewriter"
) )
@ -17,6 +18,7 @@ var dagstoreCmd = &cli.Command{
Subcommands: []*cli.Command{ Subcommands: []*cli.Command{
dagstoreListShardsCmd, dagstoreListShardsCmd,
dagstoreInitializeShardCmd, dagstoreInitializeShardCmd,
dagstoreInitializeAllCmd,
dagstoreGcCmd, dagstoreGcCmd,
}, },
} }
@ -94,6 +96,55 @@ var dagstoreInitializeShardCmd = &cli.Command{
}, },
} }
var dagstoreInitializeAllCmd = &cli.Command{
Name: "initialize-all",
Usage: "Initialize all uninitialized shards, streaming results as they're produced",
Flags: []cli.Flag{
&cli.UintFlag{
Name: "concurrency",
Usage: "maximum shards to initialize concurrently at a time; use 0 for unlimited",
Required: true,
},
},
Action: func(cctx *cli.Context) error {
concurrency := cctx.Uint("concurrency")
marketsApi, closer, err := lcli.GetMarketsAPI(cctx)
if err != nil {
return err
}
defer closer()
ctx := lcli.ReqContext(cctx)
params := api.DagstoreInitializeAllParams{
MaxConcurrency: int(concurrency),
}
ch, err := marketsApi.DagstoreInitializeAll(ctx, params)
if err != nil {
return err
}
for {
select {
case res, ok := <-ch:
if !ok {
return nil
}
if res.Success {
_, _ = fmt.Fprintln(os.Stdout, res.Key, color.New(color.FgGreen).Sprint("SUCCESS"))
} else {
_, _ = fmt.Fprintln(os.Stdout, res.Key, color.New(color.FgRed).Sprint("ERROR"), res.Error)
}
case <-ctx.Done():
return fmt.Errorf("aborted")
}
}
},
}
var dagstoreGcCmd = &cli.Command{ var dagstoreGcCmd = &cli.Command{
Name: "gc", Name: "gc",
Usage: "Garbage collect the dagstore", Usage: "Garbage collect the dagstore",

View File

@ -1012,6 +1012,7 @@ USAGE:
COMMANDS: COMMANDS:
list-shards List all shards known to the dagstore, with their current status list-shards List all shards known to the dagstore, with their current status
initialize-shard Initialize the specified shard initialize-shard Initialize the specified shard
initialize-all Initialize all uninitialized shards, streaming results as they're produced
gc Garbage collect the dagstore gc Garbage collect the dagstore
help, h Shows a list of commands or help for one command help, h Shows a list of commands or help for one command
@ -1047,6 +1048,20 @@ OPTIONS:
``` ```
### lotus-miner dagstore initialize-all
```
NAME:
lotus-miner dagstore initialize-all - Initialize all uninitialized shards, streaming results as they're produced
USAGE:
lotus-miner dagstore initialize-all [command options] [arguments...]
OPTIONS:
--concurrency value maximum shards to initialize concurrently at a time; use 0 for unlimited (default: 0)
--help, -h show help (default: false)
```
### lotus-miner dagstore gc ### lotus-miner dagstore gc
``` ```
NAME: NAME: