pretty print kad inspector (#743)
* pretty print kad inspector * fix format string * cleanup * cleanup * usage, args, print improvements
This commit is contained in:
parent
6b68b0c368
commit
71ef93feed
@ -13,8 +13,10 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/gogo/protobuf/jsonpb"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/zeebo/errs"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"storj.io/storj/pkg/pb"
|
||||
"storj.io/storj/pkg/process"
|
||||
@ -65,32 +67,36 @@ var (
|
||||
getBucketCmd = &cobra.Command{
|
||||
Use: "ls <bucket_id>",
|
||||
Short: "get all nodes in bucket",
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
RunE: GetBucket,
|
||||
}
|
||||
pingNodeCmd = &cobra.Command{
|
||||
Use: "ping <node_id>",
|
||||
Use: "ping <node_id> <ip:port>",
|
||||
Short: "ping node at provided ID",
|
||||
Args: cobra.MinimumNArgs(2),
|
||||
RunE: PingNode,
|
||||
}
|
||||
getStatsCmd = &cobra.Command{
|
||||
Use: "getstats",
|
||||
Use: "getstats <node_id>",
|
||||
Short: "Get node stats",
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
RunE: GetStats,
|
||||
}
|
||||
getCSVStatsCmd = &cobra.Command{
|
||||
Use: "getcsvstats",
|
||||
Use: "getcsvstats <path to node ID csv file>",
|
||||
Short: "Get node stats from csv",
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
RunE: GetCSVStats,
|
||||
}
|
||||
createStatsCmd = &cobra.Command{
|
||||
// TODO: add args to usage
|
||||
Use: "createstats",
|
||||
Short: "Create node with stats",
|
||||
Args: cobra.MinimumNArgs(5), // id, auditct, auditsuccessct, uptimect, uptimesuccessct
|
||||
RunE: CreateStats,
|
||||
}
|
||||
createCSVStatsCmd = &cobra.Command{
|
||||
// TODO: add args to usage
|
||||
Use: "createcsvstats",
|
||||
Short: "Create node stats from csv",
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
@ -165,10 +171,6 @@ func GetBuckets(cmd *cobra.Command, args []string) (err error) {
|
||||
|
||||
// GetBucket returns a bucket with given `id`
|
||||
func GetBucket(cmd *cobra.Command, args []string) (err error) {
|
||||
if len(args) < 1 {
|
||||
return errs.New("Must provide at least one bucket ID")
|
||||
}
|
||||
|
||||
i, err := NewInspector(*Addr)
|
||||
if err != nil {
|
||||
return ErrInspectorDial.Wrap(err)
|
||||
@ -186,15 +188,21 @@ func GetBucket(cmd *cobra.Command, args []string) (err error) {
|
||||
return ErrRequest.Wrap(err)
|
||||
}
|
||||
|
||||
fmt.Printf("Bucket ----------- \n %+v\n", bucket)
|
||||
fmt.Println(prettyPrintBucket(bucket))
|
||||
return nil
|
||||
}
|
||||
|
||||
func prettyPrintBucket(b *pb.GetBucketResponse) string {
|
||||
m := jsonpb.Marshaler{Indent: " ", EmitDefaults: false}
|
||||
s, err := m.MarshalToString(b)
|
||||
if err != nil {
|
||||
zap.S().Error("error marshaling bucket: %s", b.Id)
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// PingNode sends a PING RPC across the Kad network to check node availability
|
||||
func PingNode(cmd *cobra.Command, args []string) (err error) {
|
||||
if len(args) < 2 {
|
||||
return errs.New("Must provide a node ID and address to ping")
|
||||
}
|
||||
nodeID, err := storj.NodeIDFromString(args[0])
|
||||
if err != nil {
|
||||
return err
|
||||
@ -212,7 +220,16 @@ func PingNode(cmd *cobra.Command, args []string) (err error) {
|
||||
Address: args[1],
|
||||
})
|
||||
|
||||
fmt.Printf("\n -- Ping response: %+v\n, -- Error: %+v\n", p, err)
|
||||
var okayString string
|
||||
if p.Ok {
|
||||
okayString = "OK"
|
||||
} else {
|
||||
okayString = "Error"
|
||||
}
|
||||
fmt.Printf("\n -- Ping response: %s\n", okayString)
|
||||
if err != nil {
|
||||
fmt.Printf(" -- Error: %s", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@ package inspector
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/zeebo/errs"
|
||||
"go.uber.org/zap"
|
||||
@ -42,9 +41,15 @@ type Server struct {
|
||||
|
||||
// CountNodes returns the number of nodes in the cache and in kademlia
|
||||
func (srv *Server) CountNodes(ctx context.Context, req *pb.CountNodesRequest) (*pb.CountNodesResponse, error) {
|
||||
overlayKeys, err := srv.cache.DB.List(nil, 0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
kadNodes := srv.dht.Seen()
|
||||
|
||||
return &pb.CountNodesResponse{
|
||||
Kademlia: 0,
|
||||
Overlay: 0,
|
||||
Kademlia: int64(len(kadNodes)),
|
||||
Overlay: int64(len(overlayKeys)),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@ -106,14 +111,13 @@ func (srv *Server) PingNode(ctx context.Context, req *pb.PingNodeRequest) (*pb.P
|
||||
Address: req.Address,
|
||||
},
|
||||
})
|
||||
res := &pb.PingNodeResponse{Ok: p}
|
||||
|
||||
if err != nil {
|
||||
return &pb.PingNodeResponse{}, ServerError.Wrap(err)
|
||||
return res, ServerError.Wrap(err)
|
||||
}
|
||||
|
||||
fmt.Printf("---- Pinged Node: %+v\n", p)
|
||||
|
||||
return &pb.PingNodeResponse{}, nil
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// ---------------------
|
||||
|
Loading…
Reference in New Issue
Block a user