Serge Bazanski | cfbbbdb | 2023-03-22 17:48:08 +0100 | [diff] [blame] | 1 | package main |
| 2 | |
| 3 | import ( |
| 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 | |
| 12 | func 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 | } |