mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 10:11:03 +00:00
Make edge direction flow from client->server.
This commit is contained in:
@@ -77,13 +77,24 @@ func (r *Reporter) Report() (report.Report, error) {
|
||||
|
||||
func (r *Reporter) addConnection(rpt *report.Report, c *procspy.Connection) {
|
||||
var (
|
||||
localIsClient = int(c.LocalPort) > int(c.RemotePort)
|
||||
localAddressNodeID = report.MakeAddressNodeID(r.hostID, c.LocalAddress.String())
|
||||
remoteAddressNodeID = report.MakeAddressNodeID(r.hostID, c.RemoteAddress.String())
|
||||
adjecencyID = report.MakeAdjacencyID(localAddressNodeID)
|
||||
edgeID = report.MakeEdgeID(localAddressNodeID, remoteAddressNodeID)
|
||||
adjecencyID = ""
|
||||
edgeID = ""
|
||||
)
|
||||
|
||||
rpt.Address.Adjacency[adjecencyID] = rpt.Address.Adjacency[adjecencyID].Add(remoteAddressNodeID)
|
||||
if localIsClient {
|
||||
adjecencyID = report.MakeAdjacencyID(localAddressNodeID)
|
||||
rpt.Address.Adjacency[adjecencyID] = rpt.Address.Adjacency[adjecencyID].Add(remoteAddressNodeID)
|
||||
|
||||
edgeID = report.MakeEdgeID(localAddressNodeID, remoteAddressNodeID)
|
||||
} else {
|
||||
adjecencyID = report.MakeAdjacencyID(remoteAddressNodeID)
|
||||
rpt.Address.Adjacency[adjecencyID] = rpt.Address.Adjacency[adjecencyID].Add(localAddressNodeID)
|
||||
|
||||
edgeID = report.MakeEdgeID(remoteAddressNodeID, localAddressNodeID)
|
||||
}
|
||||
|
||||
if _, ok := rpt.Address.NodeMetadatas[localAddressNodeID]; !ok {
|
||||
rpt.Address.NodeMetadatas[localAddressNodeID] = report.MakeNodeMetadataWith(map[string]string{
|
||||
@@ -98,11 +109,21 @@ func (r *Reporter) addConnection(rpt *report.Report, c *procspy.Connection) {
|
||||
var (
|
||||
localEndpointNodeID = report.MakeEndpointNodeID(r.hostID, c.LocalAddress.String(), strconv.Itoa(int(c.LocalPort)))
|
||||
remoteEndpointNodeID = report.MakeEndpointNodeID(r.hostID, c.RemoteAddress.String(), strconv.Itoa(int(c.RemotePort)))
|
||||
adjecencyID = report.MakeAdjacencyID(localEndpointNodeID)
|
||||
edgeID = report.MakeEdgeID(localEndpointNodeID, remoteEndpointNodeID)
|
||||
adjecencyID = ""
|
||||
edgeID = ""
|
||||
)
|
||||
|
||||
rpt.Endpoint.Adjacency[adjecencyID] = rpt.Endpoint.Adjacency[adjecencyID].Add(remoteEndpointNodeID)
|
||||
if localIsClient {
|
||||
adjecencyID = report.MakeAdjacencyID(localEndpointNodeID)
|
||||
rpt.Endpoint.Adjacency[adjecencyID] = rpt.Endpoint.Adjacency[adjecencyID].Add(remoteEndpointNodeID)
|
||||
|
||||
edgeID = report.MakeEdgeID(localEndpointNodeID, remoteEndpointNodeID)
|
||||
} else {
|
||||
adjecencyID = report.MakeAdjacencyID(remoteEndpointNodeID)
|
||||
rpt.Endpoint.Adjacency[adjecencyID] = rpt.Endpoint.Adjacency[adjecencyID].Add(localEndpointNodeID)
|
||||
|
||||
edgeID = report.MakeEdgeID(remoteEndpointNodeID, localEndpointNodeID)
|
||||
}
|
||||
|
||||
if _, ok := rpt.Endpoint.NodeMetadatas[localEndpointNodeID]; !ok {
|
||||
// First hit establishes NodeMetadata for scoped local address + port
|
||||
|
||||
@@ -85,14 +85,14 @@ func TestSpyNoProcesses(t *testing.T) {
|
||||
var (
|
||||
scopedLocal = report.MakeAddressNodeID(nodeID, fixLocalAddress.String())
|
||||
scopedRemote = report.MakeAddressNodeID(nodeID, fixRemoteAddress.String())
|
||||
localKey = report.MakeAdjacencyID(scopedLocal)
|
||||
remoteKey = report.MakeAdjacencyID(scopedRemote)
|
||||
)
|
||||
|
||||
if want, have := 1, len(r.Address.Adjacency[localKey]); want != have {
|
||||
if want, have := 1, len(r.Address.Adjacency[remoteKey]); want != have {
|
||||
t.Fatalf("want %d, have %d", want, have)
|
||||
}
|
||||
|
||||
if want, have := scopedRemote, r.Address.Adjacency[localKey][0]; want != have {
|
||||
if want, have := scopedLocal, r.Address.Adjacency[remoteKey][0]; want != have {
|
||||
t.Fatalf("want %q, have %q", want, have)
|
||||
}
|
||||
|
||||
@@ -116,14 +116,14 @@ func TestSpyWithProcesses(t *testing.T) {
|
||||
var (
|
||||
scopedLocal = report.MakeEndpointNodeID(nodeID, fixLocalAddress.String(), strconv.Itoa(int(fixLocalPort)))
|
||||
scopedRemote = report.MakeEndpointNodeID(nodeID, fixRemoteAddress.String(), strconv.Itoa(int(fixRemotePort)))
|
||||
localKey = report.MakeAdjacencyID(scopedLocal)
|
||||
remoteKey = report.MakeAdjacencyID(scopedRemote)
|
||||
)
|
||||
|
||||
if want, have := 1, len(r.Endpoint.Adjacency[localKey]); want != have {
|
||||
if want, have := 1, len(r.Endpoint.Adjacency[remoteKey]); want != have {
|
||||
t.Fatalf("want %d, have %d", want, have)
|
||||
}
|
||||
|
||||
if want, have := scopedRemote, r.Endpoint.Adjacency[localKey][0]; want != have {
|
||||
if want, have := scopedLocal, r.Endpoint.Adjacency[remoteKey][0]; want != have {
|
||||
t.Fatalf("want %q, have %q", want, have)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user