blob: e58ad3268165ed0ae129d99d23f3e225ef4282bb [file] [log] [blame]
Serge Bazanskicfbbbdb2023-03-22 17:48:08 +01001package main
2
3import (
4 "fmt"
5 "sort"
6 "strings"
7
8 "source.monogon.dev/metropolis/node/core/identity"
9 apb "source.monogon.dev/metropolis/proto/api"
10)
11
12func nodeEntry(n *apb.Node) entry {
13 res := entry{}
14
15 res.add("node id", identity.NodeID(n.Pubkey))
16 state := n.State.String()
17 state = strings.ReplaceAll(state, "NODE_STATE_", "")
18 res.add("state", state)
19 res.add("address", n.Status.ExternalAddress)
20 res.add("health", n.Health.String())
21
22 var roles []string
23 if n.Roles.ConsensusMember != nil {
24 roles = append(roles, "ConsensusMember")
25 }
26 if n.Roles.KubernetesController != nil {
27 roles = append(roles, "KubernetesController")
28 }
29 if n.Roles.KubernetesWorker != nil {
30 roles = append(roles, "KubernetesWorker")
31 }
32 sort.Strings(roles)
33 res.add("roles", strings.Join(roles, ","))
34
35 tshs := n.TimeSinceHeartbeat.GetSeconds()
36 res.add("heartbeat", fmt.Sprintf("%ds", tshs))
37
38 return res
39}