99
1010 restProxy "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
1111 "github.com/lightninglabs/lightning-terminal/perms"
12+ "github.com/lightninglabs/lightning-terminal/status"
1213 "github.com/lightninglabs/lndclient"
1314 "github.com/lightningnetwork/lnd/lncfg"
1415 "github.com/lightningnetwork/lnd/lnrpc"
@@ -32,15 +33,19 @@ var (
3233
3334// Manager manages a set of subServer objects.
3435type Manager struct {
35- servers []* subServerWrapper
36- permsMgr * perms.Manager
37- mu sync.RWMutex
36+ servers []* subServerWrapper
37+ permsMgr * perms.Manager
38+ statusServer * status.Manager
39+ mu sync.RWMutex
3840}
3941
40- // NewManager constructs a new subServerMgr.
41- func NewManager (permsMgr * perms.Manager ) * Manager {
42+ // NewManager constructs a new Manager.
43+ func NewManager (permsMgr * perms.Manager ,
44+ statusServer * status.Manager ) * Manager {
45+
4246 return & Manager {
43- permsMgr : permsMgr ,
47+ permsMgr : permsMgr ,
48+ statusServer : statusServer ,
4449 }
4550}
4651
@@ -55,12 +60,13 @@ func (s *Manager) AddServer(ss SubServer) {
5560 })
5661
5762 s .permsMgr .RegisterSubServer (ss .Name (), ss .Permissions ())
63+ s .statusServer .RegisterSubServer (ss .Name ())
5864}
5965
6066// StartIntegratedServers starts all the manager's sub-servers that should be
6167// started in integrated mode.
6268func (s * Manager ) StartIntegratedServers (lndClient lnrpc.LightningClient ,
63- lndGrpc * lndclient.GrpcLndServices , withMacaroonService bool ) error {
69+ lndGrpc * lndclient.GrpcLndServices , withMacaroonService bool ) {
6470
6571 s .mu .Lock ()
6672 defer s .mu .Unlock ()
@@ -72,19 +78,24 @@ func (s *Manager) StartIntegratedServers(lndClient lnrpc.LightningClient,
7278
7379 err := ss .startIntegrated (
7480 lndClient , lndGrpc , withMacaroonService ,
81+ func (err error ) {
82+ s .statusServer .SetErrored (
83+ ss .Name (), err .Error (),
84+ )
85+ },
7586 )
7687 if err != nil {
77- return fmt . Errorf ( "unable to start %v in integrated " +
78- "mode: %v" , ss . Name (), err )
88+ s . statusServer . SetErrored ( ss . Name (), err . Error ())
89+ continue
7990 }
80- }
8191
82- return nil
92+ s .statusServer .SetRunning (ss .Name ())
93+ }
8394}
8495
8596// ConnectRemoteSubServers creates connections to all the manager's sub-servers
8697// that are running remotely.
87- func (s * Manager ) ConnectRemoteSubServers () error {
98+ func (s * Manager ) ConnectRemoteSubServers () {
8899 s .mu .Lock ()
89100 defer s .mu .Unlock ()
90101
@@ -95,12 +106,12 @@ func (s *Manager) ConnectRemoteSubServers() error {
95106
96107 err := ss .connectRemote ()
97108 if err != nil {
98- return fmt . Errorf ( "failed to connect to remote %s: %v" ,
99- ss . Name (), err )
109+ s . statusServer . SetErrored ( ss . Name (), err . Error ())
110+ continue
100111 }
101- }
102112
103- return nil
113+ s .statusServer .SetRunning (ss .Name ())
114+ }
104115}
105116
106117// RegisterRPCServices registers all the manager's sub-servers with the given
@@ -291,6 +302,8 @@ func (s *Manager) Stop() error {
291302 log .Errorf ("Error stopping %s: %v" , ss .Name (), err )
292303 returnErr = err
293304 }
305+
306+ s .statusServer .SetStopped (ss .Name ())
294307 }
295308
296309 return returnErr
0 commit comments