mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-02 01:30:30 +00:00
49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package detailed
|
|
|
|
import (
|
|
"github.com/weaveworks/scope/report"
|
|
)
|
|
|
|
func censorNodeSummary(s NodeSummary, cfg report.CensorConfig) NodeSummary {
|
|
if cfg.HideCommandLineArguments && s.Metadata != nil {
|
|
// Iterate through all the metadata rows and strip the
|
|
// arguments from all the values containing a command
|
|
// (while making sure everything is done in a non-mutable way).
|
|
metadata := []report.MetadataRow{}
|
|
for _, row := range s.Metadata {
|
|
if report.IsCommandEntry(row.ID) {
|
|
row.Value = report.StripCommandArgs(row.Value)
|
|
}
|
|
metadata = append(metadata, row)
|
|
}
|
|
s.Metadata = metadata
|
|
}
|
|
if cfg.HideEnvironmentVariables && s.Tables != nil {
|
|
// Copy across all the tables except the environment
|
|
// variable ones (ensuring the operation is non-mutable).
|
|
tables := []report.Table{}
|
|
for _, table := range s.Tables {
|
|
if !report.IsEnvironmentVarsEntry(table.ID) {
|
|
tables = append(tables, table)
|
|
}
|
|
}
|
|
s.Tables = tables
|
|
}
|
|
return s
|
|
}
|
|
|
|
// CensorNode removes any sensitive data from a node.
|
|
func CensorNode(node Node, cfg report.CensorConfig) Node {
|
|
node.NodeSummary = censorNodeSummary(node.NodeSummary, cfg)
|
|
return node
|
|
}
|
|
|
|
// CensorNodeSummaries removes any sensitive data from a list of node summaries.
|
|
func CensorNodeSummaries(summaries NodeSummaries, cfg report.CensorConfig) NodeSummaries {
|
|
censored := NodeSummaries{}
|
|
for key := range summaries {
|
|
censored[key] = censorNodeSummary(summaries[key], cfg)
|
|
}
|
|
return censored
|
|
}
|