Enhance status command (#382)

Print peer status from the package

Added --detail flag for detailed status output
This commit is contained in:
Maycon Santos
2022-07-05 19:47:50 +02:00
committed by GitHub
parent 3bdfa3cc8e
commit 49e9113e0f
10 changed files with 978 additions and 128 deletions
+1
View File
@@ -75,6 +75,7 @@ func RunClient(ctx context.Context, config *Config, statusRecorder *nbStatus.Sta
engineCtx, cancel := context.WithCancel(ctx)
defer func() {
statusRecorder.MarkManagementDisconnected(managementURL)
statusRecorder.CleanLocalPeerState()
cancel()
}()
+6 -4
View File
@@ -305,15 +305,17 @@ func (e *Engine) removePeer(peerKey string) error {
e.sshServer.RemoveAuthorizedKey(peerKey)
}
conn, exists := e.peerConns[peerKey]
if exists {
defer func() {
err := e.statusRecorder.RemovePeer(peerKey)
if err != nil {
log.Warn("received error when removing peer from status recorder: ", err)
log.Warnf("received error when removing peer %s from status recorder: %v", peerKey, err)
}
}()
conn, exists := e.peerConns[peerKey]
if exists {
delete(e.peerConns, peerKey)
err = conn.Close()
err := conn.Close()
if err != nil {
switch err.(type) {
case *peer.ConnectionAlreadyClosedError:
+4 -4
View File
@@ -7,11 +7,11 @@ type ConnStatus int
func (s ConnStatus) String() string {
switch s {
case StatusConnecting:
return "StatusConnecting"
return "Connecting"
case StatusConnected:
return "StatusConnected"
return "Connected"
case StatusDisconnected:
return "StatusDisconnected"
return "Disconnected"
default:
log.Errorf("unknown status: %d", s)
return "INVALID_PEER_CONNECTION_STATUS"
@@ -19,7 +19,7 @@ func (s ConnStatus) String() string {
}
const (
StatusConnected = iota
StatusConnected ConnStatus = iota
StatusConnecting
StatusDisconnected
)
+3 -3
View File
@@ -12,9 +12,9 @@ func TestConnStatus_String(t *testing.T) {
status ConnStatus
want string
}{
{"StatusConnected", StatusConnected, "StatusConnected"},
{"StatusDisconnected", StatusDisconnected, "StatusDisconnected"},
{"StatusConnecting", StatusConnecting, "StatusConnecting"},
{"StatusConnected", StatusConnected, "Connected"},
{"StatusDisconnected", StatusDisconnected, "Disconnected"},
{"StatusConnecting", StatusConnecting, "Connecting"},
}
for _, table := range tables {