From f9815afad31f29cac6eca2f7afba785ceb77e352 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Wed, 23 Sep 2015 09:46:11 +0000 Subject: [PATCH] Remove some duplicate functionality, add some basic tests. --- probe/endpoint/reporter.go | 4 ++-- render/expected/expected.go | 28 +++++++++++++------------- render/renderable_node_test.go | 2 +- report/report_test.go | 36 ++++++++++++++++++++++++++++++++++ report/topology.go | 18 ++--------------- test/report_fixture.go | 8 ++++---- 6 files changed, 59 insertions(+), 37 deletions(-) diff --git a/probe/endpoint/reporter.go b/probe/endpoint/reporter.go index b95e40934..8be759b8a 100644 --- a/probe/endpoint/reporter.go +++ b/probe/endpoint/reporter.go @@ -165,7 +165,7 @@ func (r *Reporter) addConnection(rpt *report.Report, localAddr, remoteAddr strin // In case we have a reverse resolution for the IP, we can use it for // the name... if revRemoteName, err := r.revResolver.Get(remoteAddr); err == nil { - remoteNode = remoteNode.AddMetadata(map[string]string{ + remoteNode = remoteNode.WithMetadata(map[string]string{ "name": revRemoteName, }) } @@ -211,7 +211,7 @@ func (r *Reporter) addConnection(rpt *report.Report, localAddr, remoteAddr strin // In case we have a reverse resolution for the IP, we can use it for // the name... if revRemoteName, err := r.revResolver.Get(remoteAddr); err == nil { - remoteNode = remoteNode.AddMetadata(map[string]string{ + remoteNode = remoteNode.WithMetadata(map[string]string{ "name": revRemoteName, }) } diff --git a/render/expected/expected.go b/render/expected/expected.go index 74146e17b..863a38c04 100644 --- a/render/expected/expected.go +++ b/render/expected/expected.go @@ -13,12 +13,12 @@ var ( uncontainedServerID = render.MakePseudoNodeID(render.UncontainedID, test.ServerHostName) unknownPseudoNode1ID = render.MakePseudoNodeID("10.10.10.10", test.ServerIP, "80") unknownPseudoNode2ID = render.MakePseudoNodeID("10.10.10.11", test.ServerIP, "80") - unknownPseudoNode1 = func(adjacency report.IDList) render.RenderableNode { + unknownPseudoNode1 = func(adjacent string) render.RenderableNode { return render.RenderableNode{ ID: unknownPseudoNode1ID, LabelMajor: "10.10.10.10", Pseudo: true, - Node: report.MakeNode().WithAdjacency(adjacency), + Node: report.MakeNode().WithAdjacent(adjacent), EdgeMetadata: report.EdgeMetadata{ EgressPacketCount: newu64(70), EgressByteCount: newu64(700), @@ -29,12 +29,12 @@ var ( ), } } - unknownPseudoNode2 = func(adjacency report.IDList) render.RenderableNode { + unknownPseudoNode2 = func(adjacent string) render.RenderableNode { return render.RenderableNode{ ID: unknownPseudoNode2ID, LabelMajor: "10.10.10.11", Pseudo: true, - Node: report.MakeNode().WithAdjacency(adjacency), + Node: report.MakeNode().WithAdjacent(adjacent), EdgeMetadata: report.EdgeMetadata{ EgressPacketCount: newu64(50), EgressByteCount: newu64(500), @@ -44,12 +44,12 @@ var ( ), } } - theInternetNode = func(adjacency report.IDList) render.RenderableNode { + theInternetNode = func(adjacent string) render.RenderableNode { return render.RenderableNode{ ID: render.TheInternetID, LabelMajor: render.TheInternetMajor, Pseudo: true, - Node: report.MakeNode().WithAdjacency(adjacency), + Node: report.MakeNode().WithAdjacent(adjacent), EdgeMetadata: report.EdgeMetadata{ EgressPacketCount: newu64(60), EgressByteCount: newu64(600), @@ -131,9 +131,9 @@ var ( Node: report.MakeNode().WithAdjacent(render.TheInternetID), EdgeMetadata: report.EdgeMetadata{}, }, - unknownPseudoNode1ID: unknownPseudoNode1(report.MakeIDList(ServerProcessID)), - unknownPseudoNode2ID: unknownPseudoNode2(report.MakeIDList(ServerProcessID)), - render.TheInternetID: theInternetNode(report.MakeIDList(ServerProcessID)), + unknownPseudoNode1ID: unknownPseudoNode1(ServerProcessID), + unknownPseudoNode2ID: unknownPseudoNode2(ServerProcessID), + render.TheInternetID: theInternetNode(ServerProcessID), }).Prune() RenderedProcessNames = (render.RenderableNodes{ @@ -187,9 +187,9 @@ var ( Node: report.MakeNode().WithAdjacent(render.TheInternetID), EdgeMetadata: report.EdgeMetadata{}, }, - unknownPseudoNode1ID: unknownPseudoNode1(report.MakeIDList("apache")), - unknownPseudoNode2ID: unknownPseudoNode2(report.MakeIDList("apache")), - render.TheInternetID: theInternetNode(report.MakeIDList("apache")), + unknownPseudoNode1ID: unknownPseudoNode1("apache"), + unknownPseudoNode2ID: unknownPseudoNode2("apache"), + render.TheInternetID: theInternetNode("apache"), }).Prune() RenderedContainers = (render.RenderableNodes{ @@ -247,7 +247,7 @@ var ( Node: report.MakeNode().WithAdjacent(render.TheInternetID), EdgeMetadata: report.EdgeMetadata{}, }, - render.TheInternetID: theInternetNode(report.MakeIDList(test.ServerContainerID)), + render.TheInternetID: theInternetNode(test.ServerContainerID), }).Prune() RenderedContainerImages = (render.RenderableNodes{ @@ -304,7 +304,7 @@ var ( Node: report.MakeNode().WithAdjacent(render.TheInternetID), EdgeMetadata: report.EdgeMetadata{}, }, - render.TheInternetID: theInternetNode(report.MakeIDList(test.ServerContainerImageName)), + render.TheInternetID: theInternetNode(test.ServerContainerImageName), }).Prune() ServerHostRenderedID = render.MakeHostID(test.ServerHostID) diff --git a/render/renderable_node_test.go b/render/renderable_node_test.go index 2401a3a73..8faf26b41 100644 --- a/render/renderable_node_test.go +++ b/render/renderable_node_test.go @@ -54,7 +54,7 @@ func TestMergeRenderableNode(t *testing.T) { LabelMinor: "minor", Rank: "rank", Pseudo: false, - Node: report.MakeNode().WithAdjacency(report.MakeIDList("a1", "a2")), + Node: report.MakeNode().WithAdjacent("a1").WithAdjacent("a2"), Origins: report.MakeIDList("o1", "o2"), EdgeMetadata: report.EdgeMetadata{}, } diff --git a/report/report_test.go b/report/report_test.go index 1e83b96b6..96be84e29 100644 --- a/report/report_test.go +++ b/report/report_test.go @@ -25,3 +25,39 @@ func TestReportTopologies(t *testing.T) { t.Errorf("want %d, have %d", want, have) } } + +func TestNode(t *testing.T) { + { + node := report.MakeNode().WithMetadata(report.Metadata{ + "foo": "bar", + }) + if node.Metadata["foo"] != "bar" { + t.Errorf("want foo, have %s", node.Metadata["foo"]) + } + } + { + node := report.MakeNode().WithCounters(report.Counters{ + "foo": 1, + }) + if node.Counters["foo"] != 1 { + t.Errorf("want foo, have %d", node.Counters["foo"]) + } + } + { + node := report.MakeNode().WithAdjacent("foo") + if node.Adjacency[0] != "foo" { + t.Errorf("want foo, have %v", node.Adjacency) + } + } + { + node := report.MakeNode().WithEdge("foo", report.EdgeMetadata{ + EgressPacketCount: newu64(13), + }) + if node.Adjacency[0] != "foo" { + t.Errorf("want foo, have %v", node.Adjacency) + } + if *node.Edges["foo"].EgressPacketCount != 13 { + t.Errorf("want 13, have %v", node.Edges) + } + } +} diff --git a/report/topology.go b/report/topology.go index 01c7e7712..9356a986f 100644 --- a/report/topology.go +++ b/report/topology.go @@ -106,24 +106,10 @@ func (n Node) WithMetadata(m map[string]string) Node { return result } -// AddMetadata returns a fresh copy of n, with Metadata set to the merge of n -// and the metadata provided. -func (n Node) AddMetadata(m map[string]string) Node { - additional := MakeNodeWith(m) - return n.Merge(additional) -} - -// WithCounters returns a fresh copy of n, with Counters set to c. +// WithCounters returns a fresh copy of n, with Counters c merged in. func (n Node) WithCounters(c map[string]int) Node { result := n.Copy() - result.Counters = c - return result -} - -// WithAdjacency returns a fresh copy of n, with Adjacency set to a. -func (n Node) WithAdjacency(a IDList) Node { - result := n.Copy() - result.Adjacency = a + result.Counters = result.Counters.Merge(c) return result } diff --git a/test/report_fixture.go b/test/report_fixture.go index 986643ed5..5a9de4b63 100644 --- a/test/report_fixture.go +++ b/test/report_fixture.go @@ -253,19 +253,19 @@ var ( UnknownAddress1NodeID: report.MakeNode().WithMetadata(map[string]string{ endpoint.Addr: UnknownClient1IP, - }).WithAdjacency(report.MakeIDList(ServerAddressNodeID)), + }).WithAdjacent(ServerAddressNodeID), UnknownAddress2NodeID: report.MakeNode().WithMetadata(map[string]string{ endpoint.Addr: UnknownClient2IP, - }).WithAdjacency(report.MakeIDList(ServerAddressNodeID)), + }).WithAdjacent(ServerAddressNodeID), UnknownAddress3NodeID: report.MakeNode().WithMetadata(map[string]string{ endpoint.Addr: UnknownClient3IP, - }).WithAdjacency(report.MakeIDList(ServerAddressNodeID)), + }).WithAdjacent(ServerAddressNodeID), RandomAddressNodeID: report.MakeNode().WithMetadata(map[string]string{ endpoint.Addr: RandomClientIP, - }).WithAdjacency(report.MakeIDList(ServerAddressNodeID)), + }).WithAdjacent(ServerAddressNodeID), }, }, Host: report.Topology{