From f201a6753de079ce44ed2753bb2cdac0dd40073a Mon Sep 17 00:00:00 2001 From: Dirk McCormick Date: Wed, 12 Apr 2023 14:05:50 +0200 Subject: [PATCH] feat: group agent version by binary name --- cmd/boostx/stats_cmd.go | 12 ++++++++++-- cmd/boostx/stats_cmd_test.go | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 cmd/boostx/stats_cmd_test.go diff --git a/cmd/boostx/stats_cmd.go b/cmd/boostx/stats_cmd.go index 336643afd..81ddced69 100644 --- a/cmd/boostx/stats_cmd.go +++ b/cmd/boostx/stats_cmd.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/filecoin-project/boost/retrievalmarket/lp2pimpl" transports_types "github.com/filecoin-project/boost/retrievalmarket/types" + "regexp" "sort" "strings" "sync" @@ -152,6 +153,7 @@ var statsCmd = &cli.Command{ if !ok { return fmt.Errorf("AgentVersion for peer %s is not a string: type %T", addrInfo.ID, agentVersionI) } + agentVersionShort := shortAgentVersion(agentVersion) // Get SP's supported transports var transports *transports_types.QueryResponse @@ -172,7 +174,7 @@ var statsCmd = &cli.Command{ boostNodes++ boostQualityAdjPower = big.Add(boostQualityAdjPower, minerToMinerPower[maddr].QualityAdjPower) boostRawBytePower = big.Add(boostRawBytePower, minerToMinerPower[maddr].RawBytePower) - agentVersions[agentVersion]++ + agentVersions[agentVersionShort]++ if transports != nil { for _, p := range transports.Protocols { transportProtos[p.Name]++ @@ -180,7 +182,7 @@ var statsCmd = &cli.Command{ } } else if contains(protostrs, "/fil/storage/mk/1.1.0") { out += " is running markets" - agentVersions[agentVersion]++ + agentVersions[agentVersionShort]++ marketsNodes++ } else { out += " is not running markets or boost" @@ -258,3 +260,9 @@ func contains(sl []string, substr string) bool { return false } + +var agentVersionRegExp = regexp.MustCompile(`^(.+)\+.+$`) + +func shortAgentVersion(av string) string { + return agentVersionRegExp.ReplaceAllString(av, "$1") +} diff --git a/cmd/boostx/stats_cmd_test.go b/cmd/boostx/stats_cmd_test.go new file mode 100644 index 000000000..3851f71cb --- /dev/null +++ b/cmd/boostx/stats_cmd_test.go @@ -0,0 +1,19 @@ +package main + +import ( + "github.com/stretchr/testify/require" + "testing" +) + +func TestAgentVersion(t *testing.T) { + testCases := map[string]string{ + "lotus-1.20.0+gzbt+git.cddeab21d.dirty": "lotus-1.20.0+gzbt", + "boost-1.6.1+git.4931e18": "boost-1.6.1", + "boost-1.6.2-rc1+git.0b5cf47.dirty": "boost-1.6.2-rc1", + "lotus-1.20.0": "lotus-1.20.0", + } + for agentVersion, exp := range testCases { + agentVersionShort := shortAgentVersion(agentVersion) + require.Equal(t, exp, agentVersionShort) + } +}