From 7887cc9958f6cf6a0955465b03e757cf4827d883 Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Wed, 16 Apr 2025 11:14:39 +0200 Subject: [PATCH] types/node: add DebugString method for node Signed-off-by: Kristoffer Dalby --- hscontrol/types/node.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/hscontrol/types/node.go b/hscontrol/types/node.go index 52651aaf..9ff9134d 100644 --- a/hscontrol/types/node.go +++ b/hscontrol/types/node.go @@ -553,3 +553,25 @@ func (nodes Nodes) IDMap() map[NodeID]*Node { return ret } + +func (nodes Nodes) DebugString() string { + var sb strings.Builder + sb.WriteString("Nodes:\n") + for _, node := range nodes { + sb.WriteString(node.DebugString()) + sb.WriteString("\n") + } + return sb.String() +} + +func (node Node) DebugString() string { + var sb strings.Builder + fmt.Fprintf(&sb, "%s(%s):\n", node.Hostname, node.ID) + fmt.Fprintf(&sb, "\tUser: %s (%d, %q)\n", node.User.Display(), node.User.ID, node.User.Username()) + fmt.Fprintf(&sb, "\tTags: %v\n", node.Tags()) + fmt.Fprintf(&sb, "\tIPs: %v\n", node.IPs()) + fmt.Fprintf(&sb, "\tApprovedRoutes: %v\n", node.ApprovedRoutes) + fmt.Fprintf(&sb, "\tSubnetRoutes: %v\n", node.SubnetRoutes()) + sb.WriteString("\n") + return sb.String() +}