vpp_if_stats: Fixing a bug in getting vpp interfaces indexes
Change-Id: I6290945a94b4f7878e9af94cc7daec455327482e Signed-off-by: Koren Lev <korenlev@gmail.com>
This commit is contained in:
10
extras/vpp_if_stats/vpp_if_stats.go
Executable file → Normal file
10
extras/vpp_if_stats/vpp_if_stats.go
Executable file → Normal file
@ -117,9 +117,9 @@ func (v *vppConnector) reduceCombinedCounters(stat *adapter.StatEntry) *[]adapte
|
|||||||
counters := stat.Data.(adapter.CombinedCounterStat)
|
counters := stat.Data.(adapter.CombinedCounterStat)
|
||||||
stats := make([]adapter.CombinedCounter, len(v.Interfaces))
|
stats := make([]adapter.CombinedCounter, len(v.Interfaces))
|
||||||
for _, workerStats := range counters {
|
for _, workerStats := range counters {
|
||||||
for i, interfaceStats := range workerStats {
|
for i := 0; i < len(v.Interfaces); i++ {
|
||||||
stats[i].Bytes += interfaceStats.Bytes
|
stats[i].Bytes += workerStats[i].Bytes
|
||||||
stats[i].Packets += interfaceStats.Packets
|
stats[i].Packets += workerStats[i].Packets
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return &stats
|
return &stats
|
||||||
@ -129,8 +129,8 @@ func (v *vppConnector) reduceSimpleCounters(stat *adapter.StatEntry) *[]adapter.
|
|||||||
counters := stat.Data.(adapter.SimpleCounterStat)
|
counters := stat.Data.(adapter.SimpleCounterStat)
|
||||||
stats := make([]adapter.Counter, len(v.Interfaces))
|
stats := make([]adapter.Counter, len(v.Interfaces))
|
||||||
for _, workerStats := range counters {
|
for _, workerStats := range counters {
|
||||||
for i, interfaceStats := range workerStats {
|
for i := 0; i < len(v.Interfaces); i++ {
|
||||||
stats[i] += interfaceStats
|
stats[i] += workerStats[i]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return &stats
|
return &stats
|
||||||
|
10
extras/vpp_if_stats/vpp_if_stats_test.go
Executable file → Normal file
10
extras/vpp_if_stats/vpp_if_stats_test.go
Executable file → Normal file
@ -25,9 +25,9 @@ var (
|
|||||||
Stats: interfaceStats{}, // TODO
|
Stats: interfaceStats{}, // TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
testInterfaces = func() *map[uint32]*vppInterface {
|
testInterfaces = func() []*vppInterface {
|
||||||
return &map[uint32]*vppInterface{
|
return []*vppInterface{
|
||||||
testSwIfIndex: testInterface(),
|
testInterface(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ func TestVppIfStats_GetStatsForAllInterfacesNoStats(t *testing.T) {
|
|||||||
mockStatsAPI := NewMockStatsAPI(mockCtrl)
|
mockStatsAPI := NewMockStatsAPI(mockCtrl)
|
||||||
mockStatsAPI.EXPECT().DumpStats("/if").Return([]*adapter.StatEntry{}, nil)
|
mockStatsAPI.EXPECT().DumpStats("/if").Return([]*adapter.StatEntry{}, nil)
|
||||||
|
|
||||||
v := vppConnector{stats: mockStatsAPI, Interfaces: *testInterfaces()}
|
v := vppConnector{stats: mockStatsAPI, Interfaces: testInterfaces()}
|
||||||
err := v.getStatsForAllInterfaces()
|
err := v.getStatsForAllInterfaces()
|
||||||
assert.NoError(t, err, "GetStatsForAllInterfaces should not return an error")
|
assert.NoError(t, err, "GetStatsForAllInterfaces should not return an error")
|
||||||
assert.Equal(t, interfaceStats{}, v.Interfaces[testSwIfIndex].Stats, "Stats should be empty")
|
assert.Equal(t, interfaceStats{}, v.Interfaces[testSwIfIndex].Stats, "Stats should be empty")
|
||||||
@ -177,7 +177,7 @@ func testStats(t *testing.T, statsDump *[]*adapter.StatEntry, expectedStats *int
|
|||||||
mockStatsAPI := NewMockStatsAPI(mockCtrl)
|
mockStatsAPI := NewMockStatsAPI(mockCtrl)
|
||||||
mockStatsAPI.EXPECT().DumpStats("/if").Return(*statsDump, nil)
|
mockStatsAPI.EXPECT().DumpStats("/if").Return(*statsDump, nil)
|
||||||
|
|
||||||
v := vppConnector{stats: mockStatsAPI, Interfaces: *testInterfaces()}
|
v := vppConnector{stats: mockStatsAPI, Interfaces: testInterfaces()}
|
||||||
err := v.getStatsForAllInterfaces()
|
err := v.getStatsForAllInterfaces()
|
||||||
assert.NoError(t, err, "GetStatsForAllInterfaces should not return an error")
|
assert.NoError(t, err, "GetStatsForAllInterfaces should not return an error")
|
||||||
assert.Equal(t, *expectedStats, v.Interfaces[testSwIfIndex].Stats, "Collected and saved stats should match")
|
assert.Equal(t, *expectedStats, v.Interfaces[testSwIfIndex].Stats, "Collected and saved stats should match")
|
||||||
|
Reference in New Issue
Block a user