mirror of
https://github.com/juanfont/headscale.git
synced 2025-09-25 17:51:11 +02:00
mapper: add back names in debug path
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
parent
1a7a2f4196
commit
8d684ef713
@ -237,7 +237,6 @@ func (b *MapResponseBuilder) WithPeerChangedPatch(changes []*tailcfg.PeerChange)
|
|||||||
|
|
||||||
// WithPeersRemoved adds removed peer IDs
|
// WithPeersRemoved adds removed peer IDs
|
||||||
func (b *MapResponseBuilder) WithPeersRemoved(removedIDs ...types.NodeID) *MapResponseBuilder {
|
func (b *MapResponseBuilder) WithPeersRemoved(removedIDs ...types.NodeID) *MapResponseBuilder {
|
||||||
|
|
||||||
var tailscaleIDs []tailcfg.NodeID
|
var tailscaleIDs []tailcfg.NodeID
|
||||||
for _, id := range removedIDs {
|
for _, id := range removedIDs {
|
||||||
tailscaleIDs = append(tailscaleIDs, id.NodeID())
|
tailscaleIDs = append(tailscaleIDs, id.NodeID())
|
||||||
@ -247,12 +246,16 @@ func (b *MapResponseBuilder) WithPeersRemoved(removedIDs ...types.NodeID) *MapRe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Build finalizes the response and returns marshaled bytes
|
// Build finalizes the response and returns marshaled bytes
|
||||||
func (b *MapResponseBuilder) Build(messages ...string) (*tailcfg.MapResponse, error) {
|
func (b *MapResponseBuilder) Build() (*tailcfg.MapResponse, error) {
|
||||||
if len(b.errs) > 0 {
|
if len(b.errs) > 0 {
|
||||||
return nil, multierr.New(b.errs...)
|
return nil, multierr.New(b.errs...)
|
||||||
}
|
}
|
||||||
if debugDumpMapResponsePath != "" {
|
if debugDumpMapResponsePath != "" {
|
||||||
writeDebugMapResponse(b.resp, b.nodeID)
|
node, err := b.mapper.state.GetNodeByID(b.nodeID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
writeDebugMapResponse(b.resp, node)
|
||||||
}
|
}
|
||||||
|
|
||||||
return b.resp, nil
|
return b.resp, nil
|
||||||
|
@ -154,7 +154,7 @@ func (m *mapper) fullMapResponse(
|
|||||||
WithUserProfiles(peers).
|
WithUserProfiles(peers).
|
||||||
WithPacketFilters().
|
WithPacketFilters().
|
||||||
WithPeers(peers).
|
WithPeers(peers).
|
||||||
Build(messages...)
|
Build()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *mapper) derpMapResponse(
|
func (m *mapper) derpMapResponse(
|
||||||
@ -207,36 +207,15 @@ func (m *mapper) peerRemovedResponse(
|
|||||||
|
|
||||||
func writeDebugMapResponse(
|
func writeDebugMapResponse(
|
||||||
resp *tailcfg.MapResponse,
|
resp *tailcfg.MapResponse,
|
||||||
nodeID types.NodeID,
|
node *types.Node,
|
||||||
messages ...string,
|
|
||||||
) {
|
) {
|
||||||
data := map[string]any{
|
body, err := json.MarshalIndent(resp, "", " ")
|
||||||
"Messages": messages,
|
|
||||||
"MapResponse": resp,
|
|
||||||
}
|
|
||||||
|
|
||||||
responseType := "keepalive"
|
|
||||||
|
|
||||||
switch {
|
|
||||||
case len(resp.Peers) > 0:
|
|
||||||
responseType = "full"
|
|
||||||
case resp.Peers == nil && resp.PeersChanged == nil && resp.PeersChangedPatch == nil && resp.DERPMap == nil && !resp.KeepAlive:
|
|
||||||
responseType = "self"
|
|
||||||
case len(resp.PeersChanged) > 0:
|
|
||||||
responseType = "changed"
|
|
||||||
case len(resp.PeersChangedPatch) > 0:
|
|
||||||
responseType = "patch"
|
|
||||||
case len(resp.PeersRemoved) > 0:
|
|
||||||
responseType = "removed"
|
|
||||||
}
|
|
||||||
|
|
||||||
body, err := json.MarshalIndent(data, "", " ")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
perms := fs.FileMode(debugMapResponsePerm)
|
perms := fs.FileMode(debugMapResponsePerm)
|
||||||
mPath := path.Join(debugDumpMapResponsePath, nodeID.String())
|
mPath := path.Join(debugDumpMapResponsePath, fmt.Sprintf("%d-%s", node.ID, node.Hostname))
|
||||||
err = os.MkdirAll(mPath, perms)
|
err = os.MkdirAll(mPath, perms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -246,7 +225,7 @@ func writeDebugMapResponse(
|
|||||||
|
|
||||||
mapResponsePath := path.Join(
|
mapResponsePath := path.Join(
|
||||||
mPath,
|
mPath,
|
||||||
fmt.Sprintf("%s-%s.json", now, responseType),
|
fmt.Sprintf("%s.json", now),
|
||||||
)
|
)
|
||||||
|
|
||||||
log.Trace().Msgf("Writing MapResponse to %s", mapResponsePath)
|
log.Trace().Msgf("Writing MapResponse to %s", mapResponsePath)
|
||||||
|
Loading…
Reference in New Issue
Block a user