@@ -2,6 +2,7 @@ package debug
2
2
3
3
import (
4
4
"fmt"
5
+ "io"
5
6
"log"
6
7
"os"
7
8
"path/filepath"
@@ -11,6 +12,7 @@ import (
11
12
"text/tabwriter"
12
13
13
14
"github.com/chia-network/go-chia-libs/pkg/config"
15
+ "github.com/chia-network/go-chia-libs/pkg/rpc"
14
16
"github.com/chia-network/go-modules/pkg/slogs"
15
17
"github.com/spf13/cobra"
16
18
"github.com/spf13/viper"
@@ -53,11 +55,49 @@ var debugCmd = &cobra.Command{
53
55
fmt .Println (strings .Repeat ("-" , 60 )) // Separator
54
56
debugPorts ()
55
57
58
+ fmt .Println ("\n # RPC Server Status" )
59
+ fmt .Println (strings .Repeat ("-" , 60 )) // Separator
60
+ debugRPC ()
61
+
56
62
fmt .Println ("\n # File Sizes" )
57
63
debugFileSizes ()
58
64
},
59
65
}
60
66
67
+ func debugRPC () {
68
+ slogs .Logr .Debug ("initializing websocket client" )
69
+ websocketClient , err := rpc .NewClient (rpc .ConnectionModeWebsocket , rpc .WithAutoConfig (), rpc .WithSyncWebsocket ())
70
+ if err != nil {
71
+ slogs .Logr .Fatal ("error initializing websocket RPC client" , "error" , err )
72
+ }
73
+ slogs .Logr .Debug ("initializing http client" )
74
+ rpcClient , err := rpc .NewClient (rpc .ConnectionModeHTTP , rpc .WithAutoConfig (), rpc .WithSyncWebsocket ())
75
+ if err != nil {
76
+ slogs .Logr .Fatal ("error initializing websocket RPC client" , "error" , err )
77
+ }
78
+
79
+ w := tabwriter .NewWriter (os .Stdout , 1 , 1 , 1 , ' ' , 0 )
80
+ runningHelper (w , websocketClient .DaemonService , "Daemon" )
81
+ runningHelper (w , rpcClient .FullNodeService , "Full Node" )
82
+ runningHelper (w , rpcClient .WalletService , "Wallet" )
83
+ runningHelper (w , rpcClient .FarmerService , "Farmer" )
84
+ runningHelper (w , rpcClient .HarvesterService , "Harvester" )
85
+ runningHelper (w , rpcClient .CrawlerService , "Crawler" )
86
+ runningHelper (w , rpcClient .DataLayerService , "Data Layer" )
87
+ runningHelper (w , rpcClient .TimelordService , "Timelord" )
88
+ _ = w .Flush ()
89
+ }
90
+
91
+ func runningHelper (w io.Writer , service hasVersionInfo , label string ) {
92
+ running := "Running"
93
+ _ , _ , err := service .GetVersion (& rpc.GetVersionOptions {})
94
+ if err != nil {
95
+ slogs .Logr .Debug ("error getting RPC Status from daemon" , "error" , err )
96
+ running = "Not Running"
97
+ }
98
+ _ , _ = fmt .Fprintln (w , label , "\t " , running )
99
+ }
100
+
61
101
func debugPorts () {
62
102
cfg , err := config .GetChiaConfig ()
63
103
if err != nil {
0 commit comments