From c5aa1e7bfadc9eeb597872ee57663f71d8ed4a2e Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Wed, 18 Jan 2023 16:36:11 +0100 Subject: [PATCH] common/schema: generate bimap for column names --- .gitignore | 1 + Makefile | 9 +++-- common/schema/definition.go | 64 --------------------------------- common/schema/definition_gen.sh | 22 ++++++++++++ 4 files changed, 30 insertions(+), 66 deletions(-) create mode 100755 common/schema/definition_gen.sh diff --git a/.gitignore b/.gitignore index be28736f..6914f81a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /test/ /orchestrator/clickhouse/data/asns.csv /console/filter/parser.go +/common/schema/definition_gen.go mock_*.go /console/data/frontend/ diff --git a/Makefile b/Makefile index 01ca7576..6c808275 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ GENERATED_JS = \ console/frontend/node_modules GENERATED_GO = \ common/clickhousedb/mocks/mock_driver.go \ + common/schema/definition_gen.go \ conntrackfixer/mocks/mock_conntrackfixer.go \ orchestrator/clickhouse/data/asns.csv \ console/filter/parser.go @@ -68,16 +69,20 @@ $(BIN)/wwhrd: PACKAGE=github.com/frapposelli/wwhrd@latest .DELETE_ON_ERROR: -common/clickhousedb/mocks/mock_driver.go: $(MOCKGEN) ; $(info $(M) generate mocks for ClickHouse driver…) +common/clickhousedb/mocks/mock_driver.go: | $(MOCKGEN) ; $(info $(M) generate mocks for ClickHouse driver…) $Q echo '//go:build !release' > $@ $Q $(MOCKGEN) -package mocks \ github.com/ClickHouse/clickhouse-go/v2/lib/driver Conn,Row,Rows,ColumnType >> $@ -conntrackfixer/mocks/mock_conntrackfixer.go: $(MOCKGEN) ; $(info $(M) generate mocks for conntrack-fixer…) +conntrackfixer/mocks/mock_conntrackfixer.go: | $(MOCKGEN) ; $(info $(M) generate mocks for conntrack-fixer…) $Q if [ `$(GO) env GOOS` = "linux" ]; then \ echo '//go:build !release' > $@ ; \ $(MOCKGEN) -package mocks akvorado/conntrackfixer ConntrackConn,DockerClient >> $@ ; \ fi +common/schema/definition_gen.go: common/schema/definition.go common/schema/definition_gen.sh ; $(info $(M) generate column definitions…) + $Q ./common/schema/definition_gen.sh > $@ + $Q $(GOIMPORTS) -w $@ + console/filter/parser.go: console/filter/parser.peg | $(PIGEON) ; $(info $(M) generate PEG parser for filters…) $Q $(PIGEON) -optimize-basic-latin $< > $@ diff --git a/common/schema/definition.go b/common/schema/definition.go index dfa87258..a9f6a25e 100644 --- a/common/schema/definition.go +++ b/common/schema/definition.go @@ -7,8 +7,6 @@ import ( "fmt" "strings" - "akvorado/common/helpers/bimap" - "golang.org/x/exp/slices" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/reflect/protoreflect" @@ -81,68 +79,6 @@ const ( // revive:enable -var columnNameMap = bimap.New(map[ColumnKey]string{ - ColumnTimeReceived: "TimeReceived", - ColumnSamplingRate: "SamplingRate", - ColumnExporterAddress: "ExporterAddress", - ColumnExporterName: "ExporterName", - ColumnExporterGroup: "ExporterGroup", - ColumnExporterRole: "ExporterRole", - ColumnExporterSite: "ExporterSite", - ColumnExporterRegion: "ExporterRegion", - ColumnExporterTenant: "ExporterTenant", - ColumnSrcAddr: "SrcAddr", - ColumnDstAddr: "DstAddr", - ColumnSrcNetMask: "SrcNetMask", - ColumnDstNetMask: "DstNetMask", - ColumnSrcNetPrefix: "SrcNetPrefix", - ColumnDstNetPrefix: "DstNetPrefix", - ColumnSrcAS: "SrcAS", - ColumnDstAS: "DstAS", - ColumnSrcNetName: "SrcNetName", - ColumnDstNetName: "DstNetName", - ColumnSrcNetRole: "SrcNetRole", - ColumnDstNetRole: "DstNetRole", - ColumnSrcNetSite: "SrcNetSite", - ColumnDstNetSite: "DstNetSite", - ColumnSrcNetRegion: "SrcNetRegion", - ColumnDstNetRegion: "DstNetRegion", - ColumnSrcNetTenant: "SrcNetTenant", - ColumnDstNetTenant: "DstNetTenant", - ColumnSrcCountry: "SrcCountry", - ColumnDstCountry: "DstCountry", - ColumnDstASPath: "DstASPath", - ColumnDst1stAS: "Dst1stAS", - ColumnDst2ndAS: "Dst2ndAS", - ColumnDst3rdAS: "Dst3rdAS", - ColumnDstCommunities: "DstCommunities", - ColumnDstLargeCommunities: "DstLargeCommunities", - ColumnDstLargeCommunitiesASN: "DstLargeCommunitiesASN", - ColumnDstLargeCommunitiesLocalData1: "DstLargeCommunitiesLocalData1", - ColumnDstLargeCommunitiesLocalData2: "DstLargeCommunitiesLocalData2", - ColumnInIfName: "InIfName", - ColumnOutIfName: "OutIfName", - ColumnInIfDescription: "InIfDescription", - ColumnOutIfDescription: "OutIfDescription", - ColumnInIfSpeed: "InIfSpeed", - ColumnOutIfSpeed: "OutIfSpeed", - ColumnInIfProvider: "InIfProvider", - ColumnOutIfProvider: "OutIfProvider", - ColumnInIfConnectivity: "InIfConnectivity", - ColumnOutIfConnectivity: "OutIfConnectivity", - ColumnInIfBoundary: "InIfBoundary", - ColumnOutIfBoundary: "OutIfBoundary", - ColumnEType: "EType", - ColumnProto: "Proto", - ColumnSrcPort: "SrcPort", - ColumnDstPort: "DstPort", - ColumnBytes: "Bytes", - ColumnPackets: "Packets", - ColumnPacketSize: "PacketSize", - ColumnPacketSizeBucket: "PacketSizeBucket", - ColumnForwardingStatus: "ForwardingStatus", -}) - func (c ColumnKey) String() string { name, _ := columnNameMap.LoadValue(c) return name diff --git a/common/schema/definition_gen.sh b/common/schema/definition_gen.sh new file mode 100755 index 00000000..c0c237c5 --- /dev/null +++ b/common/schema/definition_gen.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +# Generate definition_gen.go from definition.go. + +set -e + +cat <