Dump peer infos as discovery summary

This commit is contained in:
Dmitry Shulyak 2018-05-15 10:48:40 +03:00 committed by Dmitry Shulyak
parent 9268f55d7d
commit 9e65b5a6ae
4 changed files with 24 additions and 18 deletions

View File

@ -32,9 +32,25 @@ of peers with that capability as a value.
```json ```json
{ {
"type": "discovery.summary", "type": "discovery.summary",
"event": { "event": [
"shh/6": 1 {
} "id": "339c84c816b5f17a622c8d7ab9498f9998e942a274f70794af934bf5d3d02e14db8ddca2170e4edccede29ea6d409b154c141c34c01006e76c95e17672a27454",
"name": "peer-0/v1.0/darwin/go1.10.1",
"caps": [
"shh/6"
],
"network": {
"localAddress": "127.0.0.1:61049",
"remoteAddress": "127.0.0.1:33732",
"inbound": false,
"trusted": false,
"static": true
},
"protocols": {
"shh": "unknown"
}
}
]
} }
``` ```
@ -43,6 +59,6 @@ Or if we don't have any peers:
```json ```json
{ {
"type": "discovery.summary", "type": "discovery.summary",
"event": {} "event": []
} }
``` ```

View File

@ -106,7 +106,7 @@ func (s *PeerPoolSimulationSuite) getPoolEvent(events <-chan string) string {
func (s *PeerPoolSimulationSuite) TestSingleTopicDiscoveryWithFailover() { func (s *PeerPoolSimulationSuite) TestSingleTopicDiscoveryWithFailover() {
poolEvents := make(chan string, 1) poolEvents := make(chan string, 1)
summaries := make(chan map[string]int, 1) summaries := make(chan []*p2p.PeerInfo, 1)
signal.SetDefaultNodeNotificationHandler(func(jsonEvent string) { signal.SetDefaultNodeNotificationHandler(func(jsonEvent string) {
var envelope struct { var envelope struct {
Type string Type string
@ -120,7 +120,7 @@ func (s *PeerPoolSimulationSuite) TestSingleTopicDiscoveryWithFailover() {
poolEvents <- envelope.Type poolEvents <- envelope.Type
case signal.EventDiscoverySummary: case signal.EventDiscoverySummary:
poolEvents <- envelope.Type poolEvents <- envelope.Type
var summary map[string]int var summary []*p2p.PeerInfo
s.NoError(json.Unmarshal(envelope.Event, &summary)) s.NoError(json.Unmarshal(envelope.Event, &summary))
summaries <- summary summaries <- summary
} }
@ -152,8 +152,6 @@ func (s *PeerPoolSimulationSuite) TestSingleTopicDiscoveryWithFailover() {
s.Require().Equal(signal.EventDiscoverySummary, s.getPoolEvent(poolEvents)) s.Require().Equal(signal.EventDiscoverySummary, s.getPoolEvent(poolEvents))
summary := <-summaries summary := <-summaries
s.Len(summary, 1) s.Len(summary, 1)
s.Contains(summary, "shh/6")
s.Equal(summary["shh/6"], 1)
register.Stop() register.Stop()
s.peers[0].Stop() s.peers[0].Stop()
@ -175,8 +173,6 @@ func (s *PeerPoolSimulationSuite) TestSingleTopicDiscoveryWithFailover() {
s.Require().Equal(signal.EventDiscoverySummary, s.getPoolEvent(poolEvents)) s.Require().Equal(signal.EventDiscoverySummary, s.getPoolEvent(poolEvents))
summary = <-summaries summary = <-summaries
s.Len(summary, 1) s.Len(summary, 1)
s.Contains(summary, "shh/6")
s.Equal(summary["shh/6"], 1)
} }
// TestPeerPoolMaxPeersOverflow verifies that following scenario will not occur: // TestPeerPoolMaxPeersOverflow verifies that following scenario will not occur:

View File

@ -7,11 +7,5 @@ import (
// SendDiscoverySummary sends discovery.summary signal. // SendDiscoverySummary sends discovery.summary signal.
func SendDiscoverySummary(peers []*p2p.PeerInfo) { func SendDiscoverySummary(peers []*p2p.PeerInfo) {
summary := map[string]int{} signal.SendDiscoverySummary(peers)
for i := range peers {
for _, cap := range peers[i].Caps {
summary[cap]++
}
}
signal.SendDiscoverySummary(summary)
} }

View File

@ -22,6 +22,6 @@ func SendDiscoveryStopped() {
} }
// SendDiscoverySummary sends discovery.summary signal. // SendDiscoverySummary sends discovery.summary signal.
func SendDiscoverySummary(summary map[string]int) { func SendDiscoverySummary(summary interface{}) {
send(EventDiscoverySummary, summary) send(EventDiscoverySummary, summary)
} }