mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 13:28:01 -05:00
fix missing meta in resp of getPeers (#15371)
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
This commit is contained in:
@@ -33,8 +33,14 @@ type GetPeerResponse struct {
|
|||||||
Data *Peer `json:"data"`
|
Data *Peer `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Added Meta to align with beacon-api: https://ethereum.github.io/beacon-APIs/#/Node/getPeers
|
||||||
|
type Meta struct {
|
||||||
|
Count int `json:"count"`
|
||||||
|
}
|
||||||
|
|
||||||
type GetPeersResponse struct {
|
type GetPeersResponse struct {
|
||||||
Data []*Peer `json:"data"`
|
Data []*Peer `json:"data"`
|
||||||
|
Meta Meta `json:"meta"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Peer struct {
|
type Peer struct {
|
||||||
|
|||||||
@@ -112,7 +112,12 @@ func (s *Server) GetPeers(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
allPeers = append(allPeers, p)
|
allPeers = append(allPeers, p)
|
||||||
}
|
}
|
||||||
resp := &structs.GetPeersResponse{Data: allPeers}
|
resp := &structs.GetPeersResponse{
|
||||||
|
Data: allPeers,
|
||||||
|
Meta: structs.Meta{
|
||||||
|
Count: len(allPeers),
|
||||||
|
},
|
||||||
|
}
|
||||||
httputil.WriteJson(w, resp)
|
httputil.WriteJson(w, resp)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -177,7 +182,12 @@ func (s *Server) GetPeers(w http.ResponseWriter, r *http.Request) {
|
|||||||
filteredPeers = append(filteredPeers, p)
|
filteredPeers = append(filteredPeers, p)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp := &structs.GetPeersResponse{Data: filteredPeers}
|
resp := &structs.GetPeersResponse{
|
||||||
|
Data: filteredPeers,
|
||||||
|
Meta: structs.Meta{
|
||||||
|
Count: len(filteredPeers),
|
||||||
|
},
|
||||||
|
}
|
||||||
httputil.WriteJson(w, resp)
|
httputil.WriteJson(w, resp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -145,6 +145,7 @@ func TestGetPeers(t *testing.T) {
|
|||||||
resp := &structs.GetPeersResponse{}
|
resp := &structs.GetPeersResponse{}
|
||||||
require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp))
|
require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp))
|
||||||
require.Equal(t, 1, len(resp.Data))
|
require.Equal(t, 1, len(resp.Data))
|
||||||
|
assert.Equal(t, 1, resp.Meta.Count)
|
||||||
returnedPeer := resp.Data[0]
|
returnedPeer := resp.Data[0]
|
||||||
assert.Equal(t, expectedId.String(), returnedPeer.PeerId)
|
assert.Equal(t, expectedId.String(), returnedPeer.PeerId)
|
||||||
expectedEnr, err := peerStatus.ENR(expectedId)
|
expectedEnr, err := peerStatus.ENR(expectedId)
|
||||||
@@ -229,6 +230,7 @@ func TestGetPeers(t *testing.T) {
|
|||||||
resp := &structs.GetPeersResponse{}
|
resp := &structs.GetPeersResponse{}
|
||||||
require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp))
|
require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp))
|
||||||
assert.Equal(t, len(tt.wantIds), len(resp.Data), "Wrong number of peers returned")
|
assert.Equal(t, len(tt.wantIds), len(resp.Data), "Wrong number of peers returned")
|
||||||
|
assert.Equal(t, len(tt.wantIds), resp.Meta.Count, "meta.count does not match number of returned peers")
|
||||||
for _, id := range tt.wantIds {
|
for _, id := range tt.wantIds {
|
||||||
expectedId := id.String()
|
expectedId := id.String()
|
||||||
found := false
|
found := false
|
||||||
|
|||||||
3
changelog/Alleysira-fix-meta-in-getPeers-resp.md
Normal file
3
changelog/Alleysira-fix-meta-in-getPeers-resp.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Added missing `meta` field to the response of the endpoint `/eth/v1/node/peers` to align with the Beacon API spec (#15370)
|
||||||
Reference in New Issue
Block a user