From f85195308c5e0296d89746e7bdef753111cbdd55 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Thu, 16 Jul 2015 12:06:05 +0000 Subject: [PATCH] report.Metadata -> map[string]string --- experimental/demoprobe/generate.go | 10 +++++----- experimental/genreport/generate.go | 10 +++++----- probe/docker/container.go | 4 ++-- probe/docker/registry_test.go | 2 +- probe/docker/reporter.go | 2 +- probe/docker/reporter_test.go | 4 ++-- probe/docker/tagger.go | 2 +- probe/docker/tagger_test.go | 10 +++++----- probe/endpoint/reporter.go | 4 ++-- probe/host/reporter.go | 2 +- probe/host/reporter_test.go | 2 +- probe/host/tagger.go | 2 +- probe/host/tagger_test.go | 4 ++-- probe/overlay/weave.go | 2 +- probe/overlay/weave_test.go | 2 +- probe/process/reporter.go | 2 +- probe/process/reporter_test.go | 8 ++++---- probe/tag_report.go | 2 +- probe/tag_report_test.go | 10 +++++----- render/render_test.go | 4 ++-- render/renderable_node.go | 6 +++--- render/theinternet_test.go | 4 ++-- report/merge_test.go | 22 +++++++++++----------- report/topology.go | 9 +++------ test/report_fixture.go | 30 +++++++++++++++--------------- xfer/merge_test.go | 4 ++-- 26 files changed, 80 insertions(+), 83 deletions(-) diff --git a/experimental/demoprobe/generate.go b/experimental/demoprobe/generate.go index d7a02cd0d..94404748c 100644 --- a/experimental/demoprobe/generate.go +++ b/experimental/demoprobe/generate.go @@ -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(), diff --git a/experimental/genreport/generate.go b/experimental/genreport/generate.go index 5d43c14f5..e62e56e3f 100644 --- a/experimental/genreport/generate.go +++ b/experimental/genreport/generate.go @@ -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(), diff --git a/probe/docker/container.go b/probe/docker/container.go index 826c923f4..a9f8459c3 100644 --- a/probe/docker/container.go +++ b/probe/docker/container.go @@ -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), diff --git a/probe/docker/registry_test.go b/probe/docker/registry_test.go index 9613342e4..cdab40f16 100644 --- a/probe/docker/registry_test.go +++ b/probe/docker/registry_test.go @@ -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, diff --git a/probe/docker/reporter.go b/probe/docker/reporter.go index 01caf8fc9..6e3fea1b4 100644 --- a/probe/docker/reporter.go +++ b/probe/docker/reporter.go @@ -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, }) diff --git a/probe/docker/reporter_test.go b/probe/docker/reporter_test.go index e5e7c5997..d7b3cc011 100644 --- a/probe/docker/reporter_test.go +++ b/probe/docker/reporter_test.go @@ -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", }), diff --git a/probe/docker/tagger.go b/probe/docker/tagger.go index 0f6b7afc4..5233b6431 100644 --- a/probe/docker/tagger.go +++ b/probe/docker/tagger.go @@ -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(), }) diff --git a/probe/docker/tagger_test.go b/probe/docker/tagger_test.go index 0542509b9..765a21316 100644 --- a/probe/docker/tagger_test.go +++ b/probe/docker/tagger_test.go @@ -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) diff --git a/probe/endpoint/reporter.go b/probe/endpoint/reporter.go index 7138121ff..fc7feef24 100644 --- a/probe/endpoint/reporter.go +++ b/probe/endpoint/reporter.go @@ -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), diff --git a/probe/host/reporter.go b/probe/host/reporter.go index aeb4e9fb5..2bdc85cd7 100644 --- a/probe/host/reporter.go +++ b/probe/host/reporter.go @@ -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, " "), diff --git a/probe/host/reporter_test.go b/probe/host/reporter_test.go index a692eaf9f..5fbd08838 100644 --- a/probe/host/reporter_test.go +++ b/probe/host/reporter_test.go @@ -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, diff --git a/probe/host/tagger.go b/probe/host/tagger.go index 78e9c67a9..72a0b1b12 100644 --- a/probe/host/tagger.go +++ b/probe/host/tagger.go @@ -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) diff --git a/probe/host/tagger_test.go b/probe/host/tagger_test.go index 969622c1d..15818cc71 100644 --- a/probe/host/tagger_test.go +++ b/probe/host/tagger_test.go @@ -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) diff --git a/probe/overlay/weave.go b/probe/overlay/weave.go index 3f91af7d5..822f2ab7b 100644 --- a/probe/overlay/weave.go +++ b/probe/overlay/weave.go @@ -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, }) diff --git a/probe/overlay/weave_test.go b/probe/overlay/weave_test.go index 383c62b20..dbd471a33 100644 --- a/probe/overlay/weave_test.go +++ b/probe/overlay/weave_test.go @@ -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, }), diff --git a/probe/process/reporter.go b/probe/process/reporter.go index 16aa27f50..017370ebe 100644 --- a/probe/process/reporter.go +++ b/probe/process/reporter.go @@ -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, diff --git a/probe/process/reporter_test.go b/probe/process/reporter_test.go index 1bfdf4c3f..78d00e804 100644 --- a/probe/process/reporter_test.go +++ b/probe/process/reporter_test.go @@ -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", diff --git a/probe/tag_report.go b/probe/tag_report.go index 5e5fea781..362fd1b96 100644 --- a/probe/tag_report.go +++ b/probe/tag_report.go @@ -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) } diff --git a/probe/tag_report_test.go b/probe/tag_report_test.go index 78848b8e2..496927ca7 100644 --- a/probe/tag_report_test.go +++ b/probe/tag_report_test.go @@ -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) { diff --git a/render/render_test.go b/render/render_test.go index 44c19659f..19d2090fd 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -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"), diff --git a/render/renderable_node.go b/render/renderable_node.go index f0e30b0c0..5a9587471 100644 --- a/render/renderable_node.go +++ b/render/renderable_node.go @@ -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{}), } } diff --git a/render/theinternet_test.go b/render/theinternet_test.go index ad378383b..40702b6ef 100644 --- a/render/theinternet_test.go +++ b/render/theinternet_test.go @@ -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"), diff --git a/report/merge_test.go b/report/merge_test.go index a04710bfa..e3794f531 100644 --- a/report/merge_test.go +++ b/report/merge_test.go @@ -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", diff --git a/report/topology.go b/report/topology.go index fa6335e23..d18c5e572 100644 --- a/report/topology.go +++ b/report/topology.go @@ -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 } diff --git a/test/report_fixture.go b/test/report_fixture.go index d81093eab..e046cdd57 100644 --- a/test/report_fixture.go +++ b/test/report_fixture.go @@ -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", diff --git a/xfer/merge_test.go b/xfer/merge_test.go index 636e503e8..5c9a79818 100644 --- a/xfer/merge_test.go +++ b/xfer/merge_test.go @@ -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) }