lncli: add querymc command
Adds querymc command to lncli to dump mission control state.
This commit is contained in:
parent
f7982f0f4c
commit
9b71d90a6e
59
cmd/lncli/cmd_query_mission_control.go
Normal file
59
cmd/lncli/cmd_query_mission_control.go
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// +build routerrpc
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/hex"
|
||||||
|
|
||||||
|
"github.com/lightningnetwork/lnd/lnrpc/routerrpc"
|
||||||
|
|
||||||
|
"github.com/urfave/cli"
|
||||||
|
)
|
||||||
|
|
||||||
|
var queryMissionControlCommand = cli.Command{
|
||||||
|
Name: "querymc",
|
||||||
|
Category: "Payments",
|
||||||
|
Action: actionDecorator(queryMissionControl),
|
||||||
|
}
|
||||||
|
|
||||||
|
func queryMissionControl(ctx *cli.Context) error {
|
||||||
|
conn := getClientConn(ctx, false)
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
client := routerrpc.NewRouterClient(conn)
|
||||||
|
|
||||||
|
req := &routerrpc.QueryMissionControlRequest{}
|
||||||
|
rpcCtx := context.Background()
|
||||||
|
snapshot, err := client.QueryMissionControl(rpcCtx, req)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
type displayNodeHistory struct {
|
||||||
|
Pubkey string
|
||||||
|
LastFailTime int64
|
||||||
|
OtherChanSuccessProb float32
|
||||||
|
Channels []*routerrpc.ChannelHistory
|
||||||
|
}
|
||||||
|
|
||||||
|
displayResp := struct {
|
||||||
|
Nodes []displayNodeHistory
|
||||||
|
}{}
|
||||||
|
|
||||||
|
for _, n := range snapshot.Nodes {
|
||||||
|
displayResp.Nodes = append(
|
||||||
|
displayResp.Nodes,
|
||||||
|
displayNodeHistory{
|
||||||
|
Pubkey: hex.EncodeToString(n.Pubkey),
|
||||||
|
LastFailTime: n.LastFailTime,
|
||||||
|
OtherChanSuccessProb: n.OtherChanSuccessProb,
|
||||||
|
Channels: n.Channels,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
printJSON(displayResp)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
@ -303,6 +303,7 @@ func main() {
|
|||||||
// Add any extra autopilot commands determined by build flags.
|
// Add any extra autopilot commands determined by build flags.
|
||||||
app.Commands = append(app.Commands, autopilotCommands()...)
|
app.Commands = append(app.Commands, autopilotCommands()...)
|
||||||
app.Commands = append(app.Commands, invoicesCommands()...)
|
app.Commands = append(app.Commands, invoicesCommands()...)
|
||||||
|
app.Commands = append(app.Commands, routerCommands()...)
|
||||||
|
|
||||||
if err := app.Run(os.Args); err != nil {
|
if err := app.Run(os.Args); err != nil {
|
||||||
fatal(err)
|
fatal(err)
|
||||||
|
10
cmd/lncli/routerrpc_active.go
Normal file
10
cmd/lncli/routerrpc_active.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// +build routerrpc
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/urfave/cli"
|
||||||
|
|
||||||
|
// routerCommands will return nil for non-routerrpc builds.
|
||||||
|
func routerCommands() []cli.Command {
|
||||||
|
return []cli.Command{queryMissionControlCommand}
|
||||||
|
}
|
10
cmd/lncli/routerrpc_default.go
Normal file
10
cmd/lncli/routerrpc_default.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// +build !routerrpc
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/urfave/cli"
|
||||||
|
|
||||||
|
// routerCommands will return nil for non-routerrpc builds.
|
||||||
|
func routerCommands() []cli.Command {
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user