report.Metadata -> map[string]string

This commit is contained in:
Tom Wilkie
2015-07-16 12:06:05 +00:00
parent c2065836e2
commit f85195308c
26 changed files with 80 additions and 83 deletions
+5 -5
View File
@@ -70,7 +70,7 @@ func DemoReport(nodeCount int) report.Report {
// Endpoint topology
if _, ok := r.Endpoint.NodeMetadatas[srcPortID]; !ok {
r.Endpoint.NodeMetadatas[srcPortID] = report.NewNodeMetadata(report.Metadata{
r.Endpoint.NodeMetadatas[srcPortID] = report.NewNodeMetadata(map[string]string{
docker.PID: "4000",
docker.Name: c.srcProc,
docker.Domain: "node-" + src,
@@ -78,7 +78,7 @@ func DemoReport(nodeCount int) report.Report {
}
r.Endpoint.Adjacency[srcID] = r.Endpoint.Adjacency[srcID].Add(dstPortID)
if _, ok := r.Endpoint.NodeMetadatas[dstPortID]; !ok {
r.Endpoint.NodeMetadatas[dstPortID] = report.NewNodeMetadata(report.Metadata{
r.Endpoint.NodeMetadatas[dstPortID] = report.NewNodeMetadata(map[string]string{
docker.PID: "4000",
docker.Name: c.dstProc,
docker.Domain: "node-" + dst,
@@ -100,20 +100,20 @@ func DemoReport(nodeCount int) report.Report {
// Address topology
if _, ok := r.Address.NodeMetadatas[srcAddressID]; !ok {
r.Address.NodeMetadatas[srcAddressID] = report.NewNodeMetadata(report.Metadata{
r.Address.NodeMetadatas[srcAddressID] = report.NewNodeMetadata(map[string]string{
docker.Name: src,
})
}
r.Address.Adjacency[nodeSrcAddressID] = r.Address.Adjacency[nodeSrcAddressID].Add(dstAddressID)
if _, ok := r.Address.NodeMetadatas[dstAddressID]; !ok {
r.Address.NodeMetadatas[dstAddressID] = report.NewNodeMetadata(report.Metadata{
r.Address.NodeMetadatas[dstAddressID] = report.NewNodeMetadata(map[string]string{
docker.Name: dst,
})
}
r.Address.Adjacency[nodeDstAddressID] = r.Address.Adjacency[nodeDstAddressID].Add(srcAddressID)
// Host data
r.Host.NodeMetadatas["hostX"] = report.NewNodeMetadata(report.Metadata{
r.Host.NodeMetadatas["hostX"] = report.NewNodeMetadata(map[string]string{
"ts": time.Now().UTC().Format(time.RFC3339Nano),
"host_name": "host-x",
"local_networks": localNet.String(),
+5 -5
View File
@@ -69,7 +69,7 @@ func DemoReport(nodeCount int) report.Report {
// Endpoint topology
if _, ok := r.Endpoint.NodeMetadatas[srcPortID]; !ok {
r.Endpoint.NodeMetadatas[srcPortID] = report.NewNodeMetadata(report.Metadata{
r.Endpoint.NodeMetadatas[srcPortID] = report.NewNodeMetadata(map[string]string{
"pid": "4000",
"name": c.srcProc,
"domain": "node-" + src,
@@ -77,7 +77,7 @@ func DemoReport(nodeCount int) report.Report {
}
r.Endpoint.Adjacency[srcID] = r.Endpoint.Adjacency[srcID].Add(dstPortID)
if _, ok := r.Endpoint.NodeMetadatas[dstPortID]; !ok {
r.Endpoint.NodeMetadatas[dstPortID] = report.NewNodeMetadata(report.Metadata{
r.Endpoint.NodeMetadatas[dstPortID] = report.NewNodeMetadata(map[string]string{
"pid": "4000",
"name": c.dstProc,
"domain": "node-" + dst,
@@ -99,20 +99,20 @@ func DemoReport(nodeCount int) report.Report {
// Address topology
if _, ok := r.Address.NodeMetadatas[srcAddressID]; !ok {
r.Address.NodeMetadatas[srcAddressID] = report.NewNodeMetadata(report.Metadata{
r.Address.NodeMetadatas[srcAddressID] = report.NewNodeMetadata(map[string]string{
"name": src,
})
}
r.Address.Adjacency[nodeSrcAddressID] = r.Address.Adjacency[nodeSrcAddressID].Add(dstAddressID)
if _, ok := r.Address.NodeMetadatas[dstAddressID]; !ok {
r.Address.NodeMetadatas[dstAddressID] = report.NewNodeMetadata(report.Metadata{
r.Address.NodeMetadatas[dstAddressID] = report.NewNodeMetadata(map[string]string{
"name": dst,
})
}
r.Address.Adjacency[nodeDstAddressID] = r.Address.Adjacency[nodeDstAddressID].Add(srcAddressID)
// Host data
r.Host.NodeMetadatas["hostX"] = report.NewNodeMetadata(report.Metadata{
r.Host.NodeMetadatas["hostX"] = report.NewNodeMetadata(map[string]string{
"ts": time.Now().UTC().Format(time.RFC3339Nano),
"host_name": "host-x",
"local_networks": localNet.String(),
+2 -2
View File
@@ -205,7 +205,7 @@ func (c *container) GetNodeMetadata() report.NodeMetadata {
c.RLock()
defer c.RUnlock()
result := report.NewNodeMetadata(report.Metadata{
result := report.NewNodeMetadata(map[string]string{
ContainerID: c.ID(),
ContainerName: strings.TrimPrefix(c.container.Name, "/"),
ContainerPorts: c.ports(),
@@ -218,7 +218,7 @@ func (c *container) GetNodeMetadata() report.NodeMetadata {
return result
}
result.Merge(report.NewNodeMetadata(report.Metadata{
result.Merge(report.NewNodeMetadata(map[string]string{
NetworkRxDropped: strconv.FormatUint(c.latestStats.Network.RxDropped, 10),
NetworkRxBytes: strconv.FormatUint(c.latestStats.Network.RxBytes, 10),
NetworkRxErrors: strconv.FormatUint(c.latestStats.Network.RxErrors, 10),
+1 -1
View File
@@ -38,7 +38,7 @@ func (c *mockContainer) StartGatheringStats() error {
func (c *mockContainer) StopGatheringStats() {}
func (c *mockContainer) GetNodeMetadata() report.NodeMetadata {
return report.NewNodeMetadata(report.Metadata{
return report.NewNodeMetadata(map[string]string{
docker.ContainerID: c.c.ID,
docker.ContainerName: c.c.Name,
docker.ImageID: c.c.Image,
+1 -1
View File
@@ -49,7 +49,7 @@ func (r *Reporter) containerImageTopology() report.Topology {
result := report.NewTopology()
r.registry.WalkImages(func(image *docker_client.APIImages) {
nmd := report.NewNodeMetadata(report.Metadata{
nmd := report.NewNodeMetadata(map[string]string{
ImageID: image.ID,
})
+2 -2
View File
@@ -53,7 +53,7 @@ func TestReporter(t *testing.T) {
Adjacency: report.Adjacency{},
EdgeMetadatas: report.EdgeMetadatas{},
NodeMetadatas: report.NodeMetadatas{
report.MakeContainerNodeID("", "ping"): report.NewNodeMetadata(report.Metadata{
report.MakeContainerNodeID("", "ping"): report.NewNodeMetadata(map[string]string{
docker.ContainerID: "ping",
docker.ContainerName: "pong",
docker.ImageID: "baz",
@@ -64,7 +64,7 @@ func TestReporter(t *testing.T) {
Adjacency: report.Adjacency{},
EdgeMetadatas: report.EdgeMetadatas{},
NodeMetadatas: report.NodeMetadatas{
report.MakeContainerNodeID("", "baz"): report.NewNodeMetadata(report.Metadata{
report.MakeContainerNodeID("", "baz"): report.NewNodeMetadata(map[string]string{
docker.ImageID: "baz",
docker.ImageName: "bang",
}),
+1 -1
View File
@@ -83,7 +83,7 @@ func (t *Tagger) tag(tree process.Tree, topology *report.Topology) {
continue
}
md := report.NewNodeMetadata(report.Metadata{
md := report.NewNodeMetadata(map[string]string{
ContainerID: c.ID(),
})
+5 -5
View File
@@ -34,16 +34,16 @@ func TestTagger(t *testing.T) {
var (
pid1NodeID = report.MakeProcessNodeID("somehost.com", "1")
pid2NodeID = report.MakeProcessNodeID("somehost.com", "2")
wantNodeMetadata = report.NewNodeMetadata(report.Metadata{docker.ContainerID: "ping"})
wantNodeMetadata = report.NewNodeMetadata(map[string]string{docker.ContainerID: "ping"})
)
input := report.MakeReport()
input.Process.NodeMetadatas[pid1NodeID] = report.NewNodeMetadata(report.Metadata{"pid": "1"})
input.Process.NodeMetadatas[pid2NodeID] = report.NewNodeMetadata(report.Metadata{"pid": "2"})
input.Process.NodeMetadatas[pid1NodeID] = report.NewNodeMetadata(map[string]string{"pid": "1"})
input.Process.NodeMetadatas[pid2NodeID] = report.NewNodeMetadata(map[string]string{"pid": "2"})
want := report.MakeReport()
want.Process.NodeMetadatas[pid1NodeID] = report.NewNodeMetadata(report.Metadata{"pid": "1"}).Merge(wantNodeMetadata)
want.Process.NodeMetadatas[pid2NodeID] = report.NewNodeMetadata(report.Metadata{"pid": "2"}).Merge(wantNodeMetadata)
want.Process.NodeMetadatas[pid1NodeID] = report.NewNodeMetadata(map[string]string{"pid": "1"}).Merge(wantNodeMetadata)
want.Process.NodeMetadatas[pid2NodeID] = report.NewNodeMetadata(map[string]string{"pid": "2"}).Merge(wantNodeMetadata)
tagger := docker.NewTagger(mockRegistryInstance, nil)
have, err := tagger.Tag(input)
+2 -2
View File
@@ -80,7 +80,7 @@ func (r *Reporter) addConnection(rpt *report.Report, c *procspy.Connection) {
rpt.Address.Adjacency[key] = rpt.Address.Adjacency[key].Add(scopedRemote)
if _, ok := rpt.Address.NodeMetadatas[scopedLocal]; !ok {
rpt.Address.NodeMetadatas[scopedLocal] = report.NewNodeMetadata(report.Metadata{
rpt.Address.NodeMetadatas[scopedLocal] = report.NewNodeMetadata(map[string]string{
docker.Name: r.hostName,
docker.Addr: c.LocalAddress.String(),
})
@@ -100,7 +100,7 @@ func (r *Reporter) addConnection(rpt *report.Report, c *procspy.Connection) {
if _, ok := rpt.Endpoint.NodeMetadatas[scopedLocal]; !ok {
// First hit establishes NodeMetadata for scoped local address + port
md := report.NewNodeMetadata(report.Metadata{
md := report.NewNodeMetadata(map[string]string{
"addr": c.LocalAddress.String(),
"port": strconv.Itoa(int(c.LocalPort)),
"pid": fmt.Sprintf("%d", c.Proc.PID),
+1 -1
View File
@@ -75,7 +75,7 @@ func (r *Reporter) Report() (report.Report, error) {
return rep, err
}
rep.Host.NodeMetadatas[report.MakeHostNodeID(r.hostID)] = report.NewNodeMetadata(report.Metadata{
rep.Host.NodeMetadatas[report.MakeHostNodeID(r.hostID)] = report.NewNodeMetadata(map[string]string{
Timestamp: Now(),
HostName: r.hostName,
LocalNetworks: strings.Join(localCIDRs, " "),
+1 -1
View File
@@ -46,7 +46,7 @@ func TestReporter(t *testing.T) {
host.InterfaceAddrs = func() ([]net.Addr, error) { _, ipnet, _ := net.ParseCIDR(network); return []net.Addr{ipnet}, nil }
want := report.MakeReport()
want.Host.NodeMetadatas[report.MakeHostNodeID(hostID)] = report.NewNodeMetadata(report.Metadata{
want.Host.NodeMetadatas[report.MakeHostNodeID(hostID)] = report.NewNodeMetadata(map[string]string{
host.Timestamp: now,
host.HostName: hostname,
host.LocalNetworks: network,
+1 -1
View File
@@ -17,7 +17,7 @@ func NewTagger(hostID string) Tagger {
// Tag implements Tagger.
func (t Tagger) Tag(r report.Report) (report.Report, error) {
md := report.NewNodeMetadata(report.Metadata{report.HostNodeID: t.hostNodeID})
md := report.NewNodeMetadata(map[string]string{report.HostNodeID: t.hostNodeID})
for _, topology := range r.Topologies() {
for nodeID := range topology.NodeMetadatas {
topology.NodeMetadatas[nodeID].Merge(md)
+2 -2
View File
@@ -13,12 +13,12 @@ func TestTagger(t *testing.T) {
var (
hostID = "foo"
endpointNodeID = report.MakeEndpointNodeID(hostID, "1.2.3.4", "56789") // hostID ignored
nodeMetadata = report.NewNodeMetadata(report.Metadata{"foo": "bar"})
nodeMetadata = report.NewNodeMetadata(map[string]string{"foo": "bar"})
)
r := report.MakeReport()
r.Endpoint.NodeMetadatas[endpointNodeID] = nodeMetadata
want := nodeMetadata.Merge(report.NewNodeMetadata(report.Metadata{
want := nodeMetadata.Merge(report.NewNodeMetadata(map[string]string{
report.HostNodeID: report.MakeHostNodeID(hostID),
}))
rpt, _ := host.NewTagger(hostID).Tag(r)
+1 -1
View File
@@ -70,7 +70,7 @@ func (w Weave) Report() (report.Report, error) {
}
for _, peer := range status.Peers {
r.Overlay.NodeMetadatas[report.MakeOverlayNodeID(peer.Name)] = report.NewNodeMetadata(report.Metadata{
r.Overlay.NodeMetadatas[report.MakeOverlayNodeID(peer.Name)] = report.NewNodeMetadata(map[string]string{
WeavePeerName: peer.Name,
WeavePeerNickName: peer.NickName,
})
+1 -1
View File
@@ -29,7 +29,7 @@ func TestWeaveTaggerOverlayTopology(t *testing.T) {
Adjacency: report.Adjacency{},
EdgeMetadatas: report.EdgeMetadatas{},
NodeMetadatas: report.NodeMetadatas{
report.MakeOverlayNodeID(mockWeavePeerName): report.NewNodeMetadata(report.Metadata{
report.MakeOverlayNodeID(mockWeavePeerName): report.NewNodeMetadata(map[string]string{
overlay.WeavePeerName: mockWeavePeerName,
overlay.WeavePeerNickName: mockWeavePeerNickName,
}),
+1 -1
View File
@@ -45,7 +45,7 @@ func (r *Reporter) processTopology() (report.Topology, error) {
err := r.walker.Walk(func(p *Process) {
pidstr := strconv.Itoa(p.PID)
nodeID := report.MakeProcessNodeID(r.scope, pidstr)
t.NodeMetadatas[nodeID] = report.NewNodeMetadata(report.Metadata{
t.NodeMetadatas[nodeID] = report.NewNodeMetadata(map[string]string{
PID: pidstr,
Comm: p.Comm,
Cmdline: p.Cmdline,
+4 -4
View File
@@ -36,27 +36,27 @@ func TestReporter(t *testing.T) {
Adjacency: report.Adjacency{},
EdgeMetadatas: report.EdgeMetadatas{},
NodeMetadatas: report.NodeMetadatas{
report.MakeProcessNodeID("", "1"): report.NewNodeMetadata(report.Metadata{
report.MakeProcessNodeID("", "1"): report.NewNodeMetadata(map[string]string{
process.PID: "1",
process.Comm: "init",
process.Cmdline: "",
process.Threads: "0",
}),
report.MakeProcessNodeID("", "2"): report.NewNodeMetadata(report.Metadata{
report.MakeProcessNodeID("", "2"): report.NewNodeMetadata(map[string]string{
process.PID: "2",
process.Comm: "bash",
process.PPID: "1",
process.Cmdline: "",
process.Threads: "0",
}),
report.MakeProcessNodeID("", "3"): report.NewNodeMetadata(report.Metadata{
report.MakeProcessNodeID("", "3"): report.NewNodeMetadata(map[string]string{
process.PID: "3",
process.Comm: "apache",
process.PPID: "1",
process.Cmdline: "",
process.Threads: "2",
}),
report.MakeProcessNodeID("", "4"): report.NewNodeMetadata(report.Metadata{
report.MakeProcessNodeID("", "4"): report.NewNodeMetadata(map[string]string{
process.PID: "4",
process.Comm: "ping",
process.PPID: "2",
+1 -1
View File
@@ -50,7 +50,7 @@ func (topologyTagger) Tag(r report.Report) (report.Report, error) {
"host": &(r.Host),
"overlay": &(r.Overlay),
} {
md := report.NewNodeMetadata(report.Metadata{Topology: val})
md := report.NewNodeMetadata(map[string]string{Topology: val})
for nodeID := range topology.NodeMetadatas {
(*topology).NodeMetadatas[nodeID].Merge(md)
}
+5 -5
View File
@@ -11,8 +11,8 @@ func TestApply(t *testing.T) {
var (
endpointNodeID = "c"
addressNodeID = "d"
endpointNodeMetadata = report.NewNodeMetadata(report.Metadata{"5": "6"})
addressNodeMetadata = report.NewNodeMetadata(report.Metadata{"7": "8"})
endpointNodeMetadata = report.NewNodeMetadata(map[string]string{"5": "6"})
addressNodeMetadata = report.NewNodeMetadata(map[string]string{"7": "8"})
)
r := report.MakeReport()
@@ -25,8 +25,8 @@ func TestApply(t *testing.T) {
from report.Topology
via string
}{
{endpointNodeMetadata.Copy().Merge(report.NewNodeMetadata(report.Metadata{"topology": "endpoint"})), r.Endpoint, endpointNodeID},
{addressNodeMetadata.Copy().Merge(report.NewNodeMetadata(report.Metadata{"topology": "address"})), r.Address, addressNodeID},
{endpointNodeMetadata.Copy().Merge(report.NewNodeMetadata(map[string]string{"topology": "endpoint"})), r.Endpoint, endpointNodeID},
{addressNodeMetadata.Copy().Merge(report.NewNodeMetadata(map[string]string{"topology": "address"})), r.Address, addressNodeID},
} {
if want, have := tuple.want, tuple.from.NodeMetadatas[tuple.via]; !reflect.DeepEqual(want, have) {
t.Errorf("want %+v, have %+v", want, have)
@@ -37,7 +37,7 @@ func TestApply(t *testing.T) {
func TestTagMissingID(t *testing.T) {
const nodeID = "not-found"
r := report.MakeReport()
want := report.NewNodeMetadata(report.Metadata{})
want := report.NewNodeMetadata(map[string]string{})
rpt, _ := newTopologyTagger().Tag(r)
have := rpt.Endpoint.NodeMetadatas[nodeID].Copy()
if !reflect.DeepEqual(want, have) {
+2 -2
View File
@@ -110,8 +110,8 @@ func TestMapEdge(t *testing.T) {
selector := func(_ report.Report) report.Topology {
return report.Topology{
NodeMetadatas: report.NodeMetadatas{
"foo": report.NewNodeMetadata(report.Metadata{"id": "foo"}),
"bar": report.NewNodeMetadata(report.Metadata{"id": "bar"}),
"foo": report.NewNodeMetadata(map[string]string{"id": "foo"}),
"bar": report.NewNodeMetadata(map[string]string{"id": "bar"}),
},
Adjacency: report.Adjacency{
">foo": report.MakeIDList("bar"),
+3 -3
View File
@@ -82,7 +82,7 @@ func newDerivedNode(id string, node RenderableNode) RenderableNode {
Pseudo: node.Pseudo,
AggregateMetadata: node.AggregateMetadata,
Origins: node.Origins,
NodeMetadata: report.NewNodeMetadata(report.Metadata{}),
NodeMetadata: report.NewNodeMetadata(map[string]string{}),
}
}
@@ -94,7 +94,7 @@ func newPseudoNode(id, major, minor string) RenderableNode {
Rank: "",
Pseudo: true,
AggregateMetadata: AggregateMetadata{},
NodeMetadata: report.NewNodeMetadata(report.Metadata{}),
NodeMetadata: report.NewNodeMetadata(map[string]string{}),
}
}
@@ -107,6 +107,6 @@ func newDerivedPseudoNode(id, major string, node RenderableNode) RenderableNode
Pseudo: true,
AggregateMetadata: node.AggregateMetadata,
Origins: node.Origins,
NodeMetadata: report.NewNodeMetadata(report.Metadata{}),
NodeMetadata: report.NewNodeMetadata(map[string]string{}),
}
}
+2 -2
View File
@@ -14,8 +14,8 @@ import (
func TestReportLocalNetworks(t *testing.T) {
r := report.MakeReport()
r.Merge(report.Report{Host: report.Topology{NodeMetadatas: report.NodeMetadatas{
"nonets": report.NewNodeMetadata(report.Metadata{}),
"foo": report.NewNodeMetadata(report.Metadata{host.LocalNetworks: "10.0.0.1/8 192.168.1.1/24 10.0.0.1/8 badnet/33"}),
"nonets": report.NewNodeMetadata(map[string]string{}),
"foo": report.NewNodeMetadata(map[string]string{host.LocalNetworks: "10.0.0.1/8 192.168.1.1/24 10.0.0.1/8 badnet/33"}),
}}})
want := report.Networks([]*net.IPNet{
mustParseCIDR("10.0.0.1/8"),
+11 -11
View File
@@ -228,14 +228,14 @@ func TestMergeNodeMetadatas(t *testing.T) {
"Empty a": {
a: report.NodeMetadatas{},
b: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
}),
},
want: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
@@ -244,7 +244,7 @@ func TestMergeNodeMetadatas(t *testing.T) {
},
"Empty b": {
a: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
@@ -252,7 +252,7 @@ func TestMergeNodeMetadatas(t *testing.T) {
},
b: report.NodeMetadatas{},
want: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
@@ -261,26 +261,26 @@ func TestMergeNodeMetadatas(t *testing.T) {
},
"Simple merge": {
a: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
}),
},
b: report.NodeMetadatas{
":192.168.1.2:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.2:12345": report.NewNodeMetadata(map[string]string{
PID: "42",
Name: "curl",
Domain: "node-a.local",
}),
},
want: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
}),
":192.168.1.2:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.2:12345": report.NewNodeMetadata(map[string]string{
PID: "42",
Name: "curl",
Domain: "node-a.local",
@@ -289,21 +289,21 @@ func TestMergeNodeMetadatas(t *testing.T) {
},
"Merge conflict": {
a: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
}),
},
b: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{ // <-- same ID
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{ // <-- same ID
PID: "0",
Name: "curl",
Domain: "node-a.local",
}),
},
want: report.NodeMetadatas{
":192.168.1.1:12345": report.NewNodeMetadata(report.Metadata{
":192.168.1.1:12345": report.NewNodeMetadata(map[string]string{
PID: "23128",
Name: "curl",
Domain: "node-a.local",
+3 -6
View File
@@ -43,14 +43,11 @@ type EdgeMetadata struct {
// NodeMetadata describes a superset of the metadata that probes can collect
// about a given node in a given topology.
type NodeMetadata struct {
Metadata
Metadata map[string]string
}
// Metadata is shorthand for a string:string map.
type Metadata map[string]string
// NewNodeMetadata creates a new NodeMetadata with the supplied Metadata.
func NewNodeMetadata(m Metadata) NodeMetadata {
func NewNodeMetadata(m map[string]string) NodeMetadata {
return NodeMetadata{
Metadata: m,
}
@@ -58,7 +55,7 @@ func NewNodeMetadata(m Metadata) NodeMetadata {
// Copy returns a value copy, useful for tests.
func (nm NodeMetadata) Copy() NodeMetadata {
cp := NewNodeMetadata(Metadata{})
cp := NewNodeMetadata(map[string]string{})
for k, v := range nm.Metadata {
cp.Metadata[k] = v
}
+15 -15
View File
@@ -80,19 +80,19 @@ var (
// NodeMetadata is arbitrary. We're free to put only precisely what we
// care to test into the fixture. Just be sure to include the bits
// that the mapping funcs extract :)
Client54001NodeID: report.NewNodeMetadata(report.Metadata{
Client54001NodeID: report.NewNodeMetadata(map[string]string{
"addr": ClientIP,
"port": ClientPort54001,
"pid": Client1PID,
report.HostNodeID: ClientHostNodeID,
}),
Client54002NodeID: report.NewNodeMetadata(report.Metadata{
Client54002NodeID: report.NewNodeMetadata(map[string]string{
"addr": ClientIP,
"port": ClientPort54002,
"pid": Client2PID,
report.HostNodeID: ClientHostNodeID,
}),
Server80NodeID: report.NewNodeMetadata(report.Metadata{
Server80NodeID: report.NewNodeMetadata(map[string]string{
"addr": ServerIP,
"port": ServerPort,
"pid": ServerPID,
@@ -141,25 +141,25 @@ var (
Process: report.Topology{
Adjacency: report.Adjacency{},
NodeMetadatas: report.NodeMetadatas{
ClientProcess1NodeID: report.NewNodeMetadata(report.Metadata{
ClientProcess1NodeID: report.NewNodeMetadata(map[string]string{
"pid": Client1PID,
"comm": "curl",
docker.ContainerID: ClientContainerID,
report.HostNodeID: ClientHostNodeID,
}),
ClientProcess2NodeID: report.NewNodeMetadata(report.Metadata{
ClientProcess2NodeID: report.NewNodeMetadata(map[string]string{
"pid": Client2PID,
"comm": "curl",
docker.ContainerID: ClientContainerID,
report.HostNodeID: ClientHostNodeID,
}),
ServerProcessNodeID: report.NewNodeMetadata(report.Metadata{
ServerProcessNodeID: report.NewNodeMetadata(map[string]string{
"pid": ServerPID,
"comm": "apache",
docker.ContainerID: ServerContainerID,
report.HostNodeID: ServerHostNodeID,
}),
NonContainerProcessNodeID: report.NewNodeMetadata(report.Metadata{
NonContainerProcessNodeID: report.NewNodeMetadata(map[string]string{
"pid": NonContainerPID,
"comm": "bash",
report.HostNodeID: ServerHostNodeID,
@@ -169,13 +169,13 @@ var (
},
Container: report.Topology{
NodeMetadatas: report.NodeMetadatas{
ClientContainerNodeID: report.NewNodeMetadata(report.Metadata{
ClientContainerNodeID: report.NewNodeMetadata(map[string]string{
docker.ContainerID: ClientContainerID,
docker.ContainerName: "client",
docker.ImageID: ClientContainerImageID,
report.HostNodeID: ClientHostNodeID,
}),
ServerContainerNodeID: report.NewNodeMetadata(report.Metadata{
ServerContainerNodeID: report.NewNodeMetadata(map[string]string{
docker.ContainerID: ServerContainerID,
docker.ContainerName: "server",
docker.ImageID: ServerContainerImageID,
@@ -185,12 +185,12 @@ var (
},
ContainerImage: report.Topology{
NodeMetadatas: report.NodeMetadatas{
ClientContainerImageNodeID: report.NewNodeMetadata(report.Metadata{
ClientContainerImageNodeID: report.NewNodeMetadata(map[string]string{
docker.ImageID: ClientContainerImageID,
docker.ImageName: ClientContainerImageName,
report.HostNodeID: ClientHostNodeID,
}),
ServerContainerImageNodeID: report.NewNodeMetadata(report.Metadata{
ServerContainerImageNodeID: report.NewNodeMetadata(map[string]string{
docker.ImageID: ServerContainerImageID,
docker.ImageName: ServerContainerImageName,
report.HostNodeID: ServerHostNodeID,
@@ -204,11 +204,11 @@ var (
ClientAddressNodeID, UnknownAddress1NodeID, UnknownAddress2NodeID, RandomAddressNodeID), // no backlinks to unknown/random
},
NodeMetadatas: report.NodeMetadatas{
ClientAddressNodeID: report.NewNodeMetadata(report.Metadata{
ClientAddressNodeID: report.NewNodeMetadata(map[string]string{
"addr": ClientIP,
report.HostNodeID: ClientHostNodeID,
}),
ServerAddressNodeID: report.NewNodeMetadata(report.Metadata{
ServerAddressNodeID: report.NewNodeMetadata(map[string]string{
"addr": ServerIP,
report.HostNodeID: ServerHostNodeID,
}),
@@ -227,14 +227,14 @@ var (
Host: report.Topology{
Adjacency: report.Adjacency{},
NodeMetadatas: report.NodeMetadatas{
ClientHostNodeID: report.NewNodeMetadata(report.Metadata{
ClientHostNodeID: report.NewNodeMetadata(map[string]string{
"host_name": ClientHostName,
"local_networks": "10.10.10.0/24",
"os": "Linux",
"load": "0.01 0.01 0.01",
report.HostNodeID: ClientHostNodeID,
}),
ServerHostNodeID: report.NewNodeMetadata(report.Metadata{
ServerHostNodeID: report.NewNodeMetadata(map[string]string{
"host_name": ServerHostName,
"local_networks": "10.10.10.0/24",
"os": "Linux",
+2 -2
View File
@@ -41,12 +41,12 @@ func TestMerge(t *testing.T) {
{
r := report.MakeReport()
r.Host.NodeMetadatas[k1] = report.NewNodeMetadata(report.Metadata{"host_name": "test1"})
r.Host.NodeMetadatas[k1] = report.NewNodeMetadata(map[string]string{"host_name": "test1"})
p1.Publish(r)
}
{
r := report.MakeReport()
r.Host.NodeMetadatas[k2] = report.NewNodeMetadata(report.Metadata{"host_name": "test2"})
r.Host.NodeMetadatas[k2] = report.NewNodeMetadata(map[string]string{"host_name": "test2"})
p2.Publish(r)
}