diff --git a/.github/workflows/manual-create-pd-pr.yaml b/.github/workflows/manual-create-pd-pr.yaml index 702c40371c..23915678a7 100644 --- a/.github/workflows/manual-create-pd-pr.yaml +++ b/.github/workflows/manual-create-pd-pr.yaml @@ -22,7 +22,7 @@ jobs: ref: ${{ matrix.branch }} - uses: actions/setup-go@v2 with: - go-version: "1.16.5" + go-version: "1.13.5" - name: Update TiDB Dashboard in PD code base run: | go get -d "github.com/pingcap/tidb-dashboard@${{ github.event.inputs.release_version }}" diff --git a/.gitignore b/.gitignore index 80b9c89176..8238c987bf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ .env /bin -/vendor -/util/vendor # Binaries for programs and plugins *.exe @@ -16,9 +14,6 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out -# Dependency directories (remove the comment below to include it) -# vendor/ - # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 diff --git a/.golangci.yml b/.golangci.yml index aa879b3d6b..b85d0c8bc1 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -4,38 +4,51 @@ run: - pkg/uiserver timeout: 2m -linters-settings: - goimports: - local-prefixes: github.com/pingcap/tidb-dashboard - golint: - min-confidence: 0 - issues: include: + # Bring back all gosec checks - EXC0006 - EXC0007 - EXC0008 - EXC0009 - EXC0010 + exclude-rules: + # TODO: Current code base does not work well for these linters. We should bring back one by one. + - path: ^pkg/|^cmd/ + linters: + - nestif + - exhaustive + - wastedassign + - errorlint linters: - disable-all: true enable: - - govet - - errcheck - - staticcheck - - unused - - gosimple - - structcheck - - varcheck - - ineffassign - - deadcode - - typecheck - - revive - - gosec - - unconvert - - goimports + # Additionally enable some checkers + - asciicheck - depguard - - prealloc + - dogsled + - durationcheck + - errorlint + - exhaustive - exportloopref + - godot + - gofmt + - goimports + - gosec + - importas + - nestif + - prealloc + - predeclared + - revive + - rowserrcheck + - sqlclosecheck + - unconvert + - wastedassign - whitespace + +linters-settings: + goimports: + local-prefixes: github.com/pingcap/tidb-dashboard + exhaustive: + # only cover the case when default is not given + default-signifies-exhaustive: true diff --git a/go.mod b/go.mod index 3cfb040dd7..1f2ffc8e2a 100644 --- a/go.mod +++ b/go.mod @@ -3,22 +3,26 @@ module github.com/pingcap/tidb-dashboard go 1.13 require ( + github.com/DATA-DOG/go-sqlmock v1.5.0 github.com/Masterminds/semver v1.5.0 github.com/ReneKroon/ttlcache/v2 v2.3.0 - github.com/VividCortex/mysqlerr v0.0.0-20200629151747-c28746d985dd + github.com/VividCortex/mysqlerr v1.0.0 github.com/Xeoncross/go-aesctr-with-hmac v0.0.0-20200623134604-12b17a7ff502 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 + github.com/antonmedv/expr v1.9.0 github.com/appleboy/gin-jwt/v2 v2.6.3 github.com/cenkalti/backoff/v4 v4.0.2 - github.com/dgrijalva/jwt-go v3.2.0+incompatible + github.com/fatih/structtag v1.2.0 github.com/gin-contrib/gzip v0.0.1 - github.com/gin-gonic/gin v1.5.0 + github.com/gin-gonic/gin v1.7.4 github.com/go-resty/resty/v2 v2.6.0 github.com/go-sql-driver/mysql v1.6.0 github.com/goccy/go-graphviz v0.0.5 + github.com/golang-jwt/jwt v3.2.1+incompatible github.com/google/pprof v0.0.0-20200407044318-7d83b28da2e9 github.com/google/uuid v1.0.0 github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 + github.com/henrylee2cn/ameda v1.4.10 github.com/joho/godotenv v1.3.0 github.com/joomcode/errorx v1.0.1 github.com/minio/sio v0.3.0 @@ -26,8 +30,8 @@ require ( github.com/pingcap/check v0.0.0-20191216031241-8a5a85928f12 github.com/pingcap/errors v0.11.5-0.20200917111840-a15ef68f753d github.com/pingcap/kvproto v0.0.0-20200411081810-b85805c9476c - github.com/pingcap/log v0.0.0-20210317133921-96f4fcab92a4 - github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3 + github.com/pingcap/log v0.0.0-20210906054005-afc726e70354 + github.com/pingcap/sysutil v0.0.0-20211108113841-e5c5906ed1e7 github.com/rs/cors v1.7.0 github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect github.com/shurcooL/httpgzip v0.0.0-20190720172056-320755c1c1b0 @@ -37,11 +41,12 @@ require ( github.com/swaggo/http-swagger v0.0.0-20200308142732-58ac5e232fba github.com/swaggo/swag v1.6.6-0.20200529100950-7c765ddd0476 github.com/thoas/go-funk v0.8.0 - github.com/vmihailenco/msgpack/v5 v5.0.0-beta.1 + github.com/vmihailenco/msgpack/v5 v5.3.5 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 - go.uber.org/atomic v1.6.0 + go.uber.org/atomic v1.9.0 go.uber.org/fx v1.10.0 - go.uber.org/zap v1.16.0 + go.uber.org/goleak v1.1.10 + go.uber.org/zap v1.19.0 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be golang.org/x/sync v0.0.0-20210220032951-036812b2e83c google.golang.org/grpc v1.25.1 diff --git a/go.sum b/go.sum index 9e448a2659..ff3c0c8d41 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,9 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= +github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= @@ -14,8 +17,8 @@ github.com/ReneKroon/ttlcache/v2 v2.3.0 h1:qZnUjRKIrbKHH6vF5T7Y9Izn5ObfTZfyYpGhv github.com/ReneKroon/ttlcache/v2 v2.3.0/go.mod h1:zbo6Pv/28e21Z8CzzqgYRArQYGYtjONRxaAKGxzQvG4= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/VividCortex/mysqlerr v0.0.0-20200629151747-c28746d985dd h1:59Whn6shj5MTVjTf2OX6+7iMcmY6h5CK0kTWwRaplL4= -github.com/VividCortex/mysqlerr v0.0.0-20200629151747-c28746d985dd/go.mod h1:f3HiCrHjHBdcm6E83vGaXh1KomZMA2P6aeo3hKx/wg0= +github.com/VividCortex/mysqlerr v1.0.0 h1:5pZ2TZA+YnzPgzBfiUWGqWmKDVNBdrkf9g+DNe1Tiq8= +github.com/VividCortex/mysqlerr v1.0.0/go.mod h1:xERx8E4tBhLvpjzdUyQiSfUxeMcATEQrflDAfXsqcAE= github.com/Xeoncross/go-aesctr-with-hmac v0.0.0-20200623134604-12b17a7ff502 h1:L8IbaI/W6h5Cwgh0n4zGeZpVK78r/jBf9ASurHo9+/o= github.com/Xeoncross/go-aesctr-with-hmac v0.0.0-20200623134604-12b17a7ff502/go.mod h1:pmnBM9bxWSiHvC/gSWunUIyDvGn33EkP2CUjxFKtTTM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -24,10 +27,14 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alvaroloes/enumer v1.1.2/go.mod h1:FxrjvuXoDAx9isTJrv4c+T410zFi0DtXIT0m65DJ+Wo= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= +github.com/antonmedv/expr v1.9.0 h1:j4HI3NHEdgDnN9p6oI6Ndr0G5QryMY0FNxT4ONrFDGU= +github.com/antonmedv/expr v1.9.0/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= github.com/appleboy/gin-jwt/v2 v2.6.3 h1:aK4E3DjihWEBUTjEeRnGkA5nUkmwJPL1CPonMa2usRs= github.com/appleboy/gin-jwt/v2 v2.6.3/go.mod h1:MfPYA4ogzvOcVkRwAxT7quHOtQmVKDpTwxyUrC2DNw0= github.com/appleboy/gofight/v2 v2.1.2 h1:VOy3jow4vIK8BRQJoC/I9muxyYlJ2yb9ht2hZoS3rf4= github.com/appleboy/gofight/v2 v2.1.2/go.mod h1:frW+U1QZEdDgixycTj4CygQ48yLTUhplt43+Wczp3rw= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -52,6 +59,7 @@ github.com/corona10/goimagehash v1.0.2/go.mod h1:/l9umBhvcHQXVtQO1V6Gp1yD20STawk github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -62,8 +70,12 @@ github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:Htrtb github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= +github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= +github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/gzip v0.0.1 h1:ezvKOL6jH+jlzdHNE4h9h8q8uMpDQjyl0NN0Jd7jozc= @@ -74,8 +86,8 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.5.0 h1:fi+bqFAx/oLK54somfCtEZs9HeH1LHVoEPUgARpTqyc= -github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= +github.com/gin-gonic/gin v1.7.4 h1:QmUZXrvJ9qZ3GfWvQ+2wnW/1ePrTEJqPKMYEU3lD/DM= +github.com/gin-gonic/gin v1.7.4/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -98,11 +110,14 @@ github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/ github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-playground/locales v0.12.1 h1:2FITxuFt/xuCNP1Acdhv62OzaCiviiE4kotfhkmOqEc= -github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= -github.com/go-playground/overalls v0.0.0-20180201144345-22ec1a223b7c/go.mod h1:UqxAgEOt89sCiXlrc/ycnx00LVvUO/eS8tMUkWX4R7w= -github.com/go-playground/universal-translator v0.16.0 h1:X++omBR/4cE2MNg91AoC3rmGrCjJ8eAeUP/K/EKx4DM= -github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= +github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/go-resty/resty/v2 v2.6.0 h1:joIR5PNLM2EFqqESUjCMGXrWmXNHEU9CEiK813oKYS4= github.com/go-resty/resty/v2 v2.6.0/go.mod h1:PwvJS6hvaPkjtjNg9ph+VrSD92bi5Zq73w/BIH7cC3Q= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -115,6 +130,8 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= +github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= @@ -126,8 +143,8 @@ github.com/golang/protobuf v0.0.0-20180814211427-aa810b61a9c7/go.mod h1:6lQm79b+ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -135,7 +152,6 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/pprof v0.0.0-20200407044318-7d83b28da2e9 h1:K+lX49/3eURCE1IjlaZN//u6c+9nfDAMnyQ9E2dsJbY= github.com/google/pprof v0.0.0-20200407044318-7d83b28da2e9/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE= github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= @@ -150,6 +166,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.12.1 h1:zCy2xE9ablevUOrUZc3Dl72Dt+ya2F github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 h1:7xsUJsB2NrdcttQPa7JLEaGzvdbk7KvfrjgHZXOQRo0= github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69/go.mod h1:YLEMZOtU+AZ7dhN9T/IpGhXVGly2bvkJQ+zxj3WeVQo= +github.com/henrylee2cn/ameda v1.4.10 h1:JdvI2Ekq7tapdPsuhrc4CaFiqw6QXFvZIULWJgQyCAk= +github.com/henrylee2cn/ameda v1.4.10/go.mod h1:liZulR8DgHxdK+MEwvZIylGnmcjzQ6N6f2PlWe7nEO4= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6 h1:UDMh68UUwekSh5iP2OMhRRZJiiBccgV7axzUG8vi56c= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= @@ -167,8 +185,9 @@ github.com/joomcode/errorx v1.0.1 h1:CalpDWz14ZHd68fIqluJasJosAewpz2TFaJALrUxjrk github.com/joomcode/errorx v1.0.1/go.mod h1:kgco15ekB6cs+4Xjzo7SPeXzx38PbJzBwbnu9qfVNHQ= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -182,8 +201,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/leodido/go-urn v1.1.0 h1:Sm1gr51B1kKyfD2BlRcLSiEkffoG96g6TPv6eRoEiB8= -github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= +github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= +github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= @@ -192,9 +213,11 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-sqlite3 v1.14.5 h1:1IdxlwTNazvbKJQSxoJ5/9ECbEeaTTyeU7sEAZ5KKTQ= github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= @@ -210,12 +233,10 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 h1:BvoENQQU+fZ9uukda/RzCAL/191HHwJA5b13R6diVlY= github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= -github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= github.com/oleiade/reflections v1.0.1 h1:D1XO3LVEYroYskEsoSiGItp9RUxG6jWnCVvrqH0HHQM= github.com/oleiade/reflections v1.0.1/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/pascaldekloe/name v0.0.0-20180628100202-0fd16699aae1/go.mod h1:eD5JxqMiuNYyFNmyY9rkJ/slN8y59oEu4Ei7F8OoKWQ= -github.com/pelletier/go-toml v1.3.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8/go.mod h1:B1+S9LNcuMyLH/4HMTViQOJevkGiik3wW2AN9zb2fNQ= github.com/pingcap/check v0.0.0-20191107115940-caf2b9e6ccf4/go.mod h1:PYMCGwN0JHjoqGr3HrZoD+b8Tgx8bKnArhSq8YVzUMc= github.com/pingcap/check v0.0.0-20191216031241-8a5a85928f12 h1:rfD9v3+ppLPzoQBgZev0qYCpegrwyFx/BUpkApEiKdY= @@ -224,20 +245,21 @@ github.com/pingcap/errors v0.11.0/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTw github.com/pingcap/errors v0.11.5-0.20190809092503-95897b64e011/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pingcap/errors v0.11.5-0.20200917111840-a15ef68f753d h1:TH18wFO5Nq/zUQuWu9ms2urgZnLP69XJYiI2JZAkUGc= github.com/pingcap/errors v0.11.5-0.20200917111840-a15ef68f753d/go.mod h1:g4vx//d6VakjJ0mk7iLBlKA8LFavV/sAVINT/1PFxeQ= -github.com/pingcap/failpoint v0.0.0-20191029060244-12f4ac2fd11d/go.mod h1:DNS3Qg7bEDhU6EXNHF+XSv/PGznQaMJ5FWvctpm6pQI= github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w= github.com/pingcap/kvproto v0.0.0-20200411081810-b85805c9476c h1:wO9VvZezAU4ZPZj8+P5uWfsT/ppuABjJPmHNrpCQnlc= github.com/pingcap/kvproto v0.0.0-20200411081810-b85805c9476c/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= github.com/pingcap/log v0.0.0-20191012051959-b742a5d432e9/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= github.com/pingcap/log v0.0.0-20200511115504-543df19646ad/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= -github.com/pingcap/log v0.0.0-20210317133921-96f4fcab92a4 h1:ERrF0fTuIOnwfGbt71Ji3DKbOEaP189tjym50u8gpC8= -github.com/pingcap/log v0.0.0-20210317133921-96f4fcab92a4/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= -github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3 h1:A9KL9R+lWSVPH8IqUuH1QSTRJ5FGoY1bT2IcfPKsWD8= -github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3/go.mod h1:tckvA041UWP+NqYzrJ3fMgC/Hw9wnmQ/tUkp/JaHly8= +github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7/go.mod h1:8AanEdAHATuRurdGxZXBz0At+9avep+ub7U1AGYLIMM= +github.com/pingcap/log v0.0.0-20210906054005-afc726e70354 h1:SvWCbCPh1YeHd9yQLksvJYAgft6wLTY1aNG81tpyscQ= +github.com/pingcap/log v0.0.0-20210906054005-afc726e70354/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= +github.com/pingcap/sysutil v0.0.0-20211108113841-e5c5906ed1e7 h1:zX9AePKl4KVWWHdJjdadKocXi7UtVEzGH4cZGcqMD4g= +github.com/pingcap/sysutil v0.0.0-20211108113841-e5c5906ed1e7/go.mod h1:7j18ezaWTao2LHOyMlsc2Dg1vW+mDY9dEbPzVyOlaeM= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -252,6 +274,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/rivo/tview v0.0.0-20200219210816-cd38d7432498/go.mod h1:6lkG1x+13OShEf0EaOCaTQYyB7d5nSbb181KtjlS+84= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -259,11 +283,10 @@ github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sanity-io/litter v1.2.0/go.mod h1:JF6pZUFgu2Q0sBZ+HSV35P8TVPI1TTzEwyu9FXAw2W4= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sergi/go-diff v1.0.1-0.20180205163309-da645544ed44/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil v3.21.2+incompatible h1:U+YvJfjCh6MslYlIAXvPtzhW3YZEtc9uncueUNpD/0A= -github.com/shirou/gopsutil v3.21.2+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= +github.com/shirou/gopsutil v3.21.3+incompatible h1:uenXGGa8ESCQq+dbgtl916dmg6PSAz2cXov0uORQ9v8= +github.com/shirou/gopsutil v3.21.3+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/httpgzip v0.0.0-20190720172056-320755c1c1b0 h1:mj/nMDAwTBiaCqMEs4cYCqF7pO6Np7vhy1D1wcQGz+E= @@ -282,6 +305,7 @@ github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -324,14 +348,12 @@ github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli/v2 v2.1.1 h1:Qt8FeAtxE/vfdrLmR3rxR6JRE0RoVmbXu8+6kZtYU4k= github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -github.com/vmihailenco/msgpack/v4 v4.3.11/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/msgpack/v5 v5.0.0-beta.1 h1:d71/KA0LhvkrJ/Ok+Wx9qK7bU8meKA1Hk0jpVI5kJjk= -github.com/vmihailenco/msgpack/v5 v5.0.0-beta.1/go.mod h1:xlngVLeyQ/Qi05oQxhQ+oTuqa03RjMwMfk/7/TCs+QI= -github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= -github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yookoala/realpath v1.0.0/go.mod h1:gJJMA9wuX7AcqLy1+ffPatSCySA1FQ2S8Ya9AIoYBpE= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -339,8 +361,10 @@ go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/dig v1.8.0 h1:1rR6hnL/bu1EVcjnRDN5kx1vbIjEJDTGhSQ2B3ddpcI= go.uber.org/dig v1.8.0/go.mod h1:X34SnWGr8Fyla9zQNO2GSO2D+TIuqB14OS8JhYocIyw= go.uber.org/fx v1.10.0 h1:S2K/H8oNied0Je/mLKdWzEWKZfv9jtxSDm8CnwK+5Fg= @@ -351,16 +375,18 @@ go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= -go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE= +go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -392,14 +418,12 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190611141213-3f473d35a33a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= @@ -422,9 +446,11 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210217105451-b926d437f341/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -464,9 +490,8 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181004005441-af9cb2a35e7f/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= @@ -479,19 +504,14 @@ google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -gopkg.in/alecthomas/gometalinter.v2 v2.0.12/go.mod h1:NDRytsqEZyolNuAgTzJkZMkSQM7FIKyzVzGhjB/qfYo= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20180810215634-df19058c872c/go.mod h1:3HH7i1SgMqlzxCcBmUHW657sD4Kvv9sC3HpL3YukzwA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= -gopkg.in/go-playground/validator.v9 v9.29.1 h1:SvGtYmN60a5CVKTOzMSyfzWDeZRxRuGvRQyEAKbw1xc= -gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -499,10 +519,12 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.0.6 h1:mA0XRPjIKi4bkE9nv+NKs6qj6QWOchqUSdWOcpd3x1E= gorm.io/driver/mysql v1.0.6/go.mod h1:KdrTanmfLPPyAOeYGyG+UpDys7/7eeWT1zCq+oekYnU= gorm.io/driver/sqlite v1.1.4 h1:PDzwYE+sI6De2+mxAneV9Xs11+ZyKV6oxD3wDGkaNvM= @@ -512,7 +534,6 @@ gorm.io/gorm v1.21.9 h1:INieZtn4P2Pw6xPJ8MzT0G4WUOsHq3RhfuDF1M6GW0E= gorm.io/gorm v1.21.9/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= moul.io/zapgorm2 v1.1.0 h1:qwAlMBYf+qJkJ7PAzJl4oCe6eS6QGiKAXUPeis0+RBE= moul.io/zapgorm2 v1.1.0/go.mod h1:emRfKjNqSzVj5lcgasBdovIXY1jSOwFz2GQZn1Rddks= diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index c5fc232a18..44940bae76 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -43,7 +43,7 @@ import ( "github.com/pingcap/tidb-dashboard/pkg/tiflash" // "github.com/pingcap/tidb-dashboard/pkg/apiserver/__APP_NAME__" - // NOTE: Don't remove above comment line, it is a placeholder for code generator + // NOTE: Don't remove above comment line, it is a placeholder for code generator. "github.com/pingcap/tidb-dashboard/pkg/apiserver/slowquery" "github.com/pingcap/tidb-dashboard/pkg/apiserver/statement" diff --git a/pkg/apiserver/clusterinfo/hostinfo/cluster_hardware.go b/pkg/apiserver/clusterinfo/hostinfo/cluster_hardware.go index da34f15ad4..35c1e84337 100644 --- a/pkg/apiserver/clusterinfo/hostinfo/cluster_hardware.go +++ b/pkg/apiserver/clusterinfo/hostinfo/cluster_hardware.go @@ -23,14 +23,14 @@ import ( "github.com/pingcap/tidb-dashboard/pkg/utils/host" ) -// Used to deserialize from JSON_VALUE +// Used to deserialize from JSON_VALUE. type clusterHardwareCPUInfoModel struct { Arch string `json:"cpu-arch"` LogicalCores int `json:"cpu-logical-cores,string"` PhysicalCores int `json:"cpu-physical-cores,string"` } -// Used to deserialize from JSON_VALUE +// Used to deserialize from JSON_VALUE. type clusterHardwareDiskModel struct { Path string `json:"path"` FSType string `json:"fstype"` diff --git a/pkg/apiserver/clusterinfo/hostinfo/cluster_load.go b/pkg/apiserver/clusterinfo/hostinfo/cluster_load.go index 2e8bec7b10..db41655213 100644 --- a/pkg/apiserver/clusterinfo/hostinfo/cluster_load.go +++ b/pkg/apiserver/clusterinfo/hostinfo/cluster_load.go @@ -22,13 +22,13 @@ import ( "github.com/pingcap/tidb-dashboard/pkg/utils/host" ) -// Used to deserialize from JSON_VALUE +// Used to deserialize from JSON_VALUE. type clusterLoadCPUUsageModel struct { Idle float64 `json:"idle,string"` System float64 `json:"system,string"` } -// Used to deserialize from JSON_VALUE +// Used to deserialize from JSON_VALUE. type clusterLoadMemoryVirtualModel struct { Used int `json:"used,string"` Total int `json:"total,string"` diff --git a/pkg/apiserver/clusterinfo/service.go b/pkg/apiserver/clusterinfo/service.go index 59a51fbf4b..0ceaa79101 100644 --- a/pkg/apiserver/clusterinfo/service.go +++ b/pkg/apiserver/clusterinfo/service.go @@ -85,7 +85,7 @@ func RegisterRouter(r *gin.RouterGroup, auth *user.AuthService, s *Service) { // @Success 200 "delete ok" // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Security JwtAuth -// @Router /topology/tidb/{address} [delete] +// @Router /topology/tidb/{address} [delete]. func (s *Service) deleteTiDBTopology(c *gin.Context) { address := c.Param("address") errorChannel := make(chan error, 2) @@ -124,7 +124,7 @@ func (s *Service) deleteTiDBTopology(c *gin.Context) { // @Success 200 {array} topology.TiDBInfo // @Router /topology/tidb [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getTiDBTopology(c *gin.Context) { instances, err := topology.FetchTiDBTopology(s.lifecycleCtx, s.params.EtcdClient) if err != nil { @@ -144,7 +144,7 @@ type StoreTopologyResponse struct { // @Success 200 {object} StoreTopologyResponse // @Router /topology/store [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getStoreTopology(c *gin.Context) { tikvInstances, tiFlashInstances, err := topology.FetchStoreTopology(s.params.PDClient) if err != nil { @@ -162,7 +162,7 @@ func (s *Service) getStoreTopology(c *gin.Context) { // @Success 200 {object} topology.StoreLocation // @Router /topology/store_location [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getStoreLocationTopology(c *gin.Context) { storeLocation, err := topology.FetchStoreLocation(s.params.PDClient) if err != nil { @@ -177,7 +177,7 @@ func (s *Service) getStoreLocationTopology(c *gin.Context) { // @Success 200 {array} topology.PDInfo // @Router /topology/pd [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getPDTopology(c *gin.Context) { instances, err := topology.FetchPDTopology(s.params.PDClient) if err != nil { @@ -192,7 +192,7 @@ func (s *Service) getPDTopology(c *gin.Context) { // @Success 200 {object} topology.AlertManagerInfo // @Router /topology/alertmanager [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getAlertManagerTopology(c *gin.Context) { instance, err := topology.FetchAlertManagerTopology(s.lifecycleCtx, s.params.EtcdClient) if err != nil { @@ -207,7 +207,7 @@ func (s *Service) getAlertManagerTopology(c *gin.Context) { // @Success 200 {object} topology.GrafanaInfo // @Router /topology/grafana [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getGrafanaTopology(c *gin.Context) { instance, err := topology.FetchGrafanaTopology(s.lifecycleCtx, s.params.EtcdClient) if err != nil { @@ -223,7 +223,7 @@ func (s *Service) getGrafanaTopology(c *gin.Context) { // @Param address path string true "ip:port" // @Router /topology/alertmanager/{address}/count [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getAlertManagerCounts(c *gin.Context) { address := c.Param("address") cnt, err := fetchAlertManagerCounts(s.lifecycleCtx, address, s.params.HTTPClient) @@ -244,7 +244,7 @@ type GetHostsInfoResponse struct { // @Router /host/all [get] // @Security JwtAuth // @Success 200 {object} GetHostsInfoResponse -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getHostsInfo(c *gin.Context) { db := utils.GetTiDBConnection(c) @@ -270,7 +270,7 @@ func (s *Service) getHostsInfo(c *gin.Context) { // @Router /host/statistics [get] // @Security JwtAuth // @Success 200 {object} ClusterStatistics -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getStatistics(c *gin.Context) { db := utils.GetTiDBConnection(c) stats, err := s.calculateStatistics(db) diff --git a/pkg/apiserver/configuration/router.go b/pkg/apiserver/configuration/router.go index 21b874099e..2213ddd682 100644 --- a/pkg/apiserver/configuration/router.go +++ b/pkg/apiserver/configuration/router.go @@ -38,7 +38,7 @@ func RegisterRouter(r *gin.RouterGroup, auth *user.AuthService, s *Service) { // @Security JwtAuth // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 403 {object} utils.APIError "Experimental feature not enabled" -// @Failure 500 {object} utils.APIError "Internal error" +// @Failure 500 {object} utils.APIError "Internal error". func (s *Service) getHandler(c *gin.Context) { db := utils.GetTiDBConnection(c) r, err := s.getAllConfigItems(db) @@ -68,7 +68,7 @@ type EditResponse struct { // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 403 {object} utils.APIError "Experimental feature not enabled" -// @Failure 500 {object} utils.APIError "Internal error" +// @Failure 500 {object} utils.APIError "Internal error". func (s *Service) editHandler(c *gin.Context) { var req EditRequest if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/apiserver/conprof/service.go b/pkg/apiserver/conprof/service.go index 740fc1320d..adf1bda0bd 100644 --- a/pkg/apiserver/conprof/service.go +++ b/pkg/apiserver/conprof/service.go @@ -178,7 +178,7 @@ type NgMonitoringConfig struct { // @Router /continuous_profiling/config [get] // @Security JwtAuth // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) conprofConfig(c *gin.Context) { // dummy, for generate openapi } @@ -189,7 +189,7 @@ func (s *Service) conprofConfig(c *gin.Context) { // @Security JwtAuth // @Success 200 {string} string "ok" // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) updateConprofConfig(c *gin.Context) { // dummy, for generate openapi } @@ -206,7 +206,7 @@ type Component struct { // @Router /continuous_profiling/components [get] // @Security JwtAuth // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) conprofComponents(c *gin.Context) { // dummy, for generate openapi } @@ -221,7 +221,7 @@ type EstimateSizeRes struct { // @Security JwtAuth // @Success 200 {object} EstimateSizeRes // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) estimateSize(c *gin.Context) { // dummy, for generate openapi } @@ -270,7 +270,7 @@ type Target struct { // @Security JwtAuth // @Success 200 {array} GroupProfiles // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) conprofGroupProfiles(c *gin.Context) { // dummy, for generate openapi } @@ -281,7 +281,7 @@ func (s *Service) conprofGroupProfiles(c *gin.Context) { // @Security JwtAuth // @Success 200 {object} GroupProfileDetail // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) conprofGroupProfileDetail(c *gin.Context) { // dummy, for generate openapi } @@ -292,7 +292,7 @@ func (s *Service) conprofGroupProfileDetail(c *gin.Context) { // @Security JwtAuth // @Success 200 {string} string // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) genConprofActionToken(c *gin.Context) { q := c.Query("q") token, err := utils.NewJWTString("conprof", q) @@ -309,7 +309,7 @@ func (s *Service) genConprofActionToken(c *gin.Context) { // @Security JwtAuth // @Produce application/x-gzip // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) conprofDownload(c *gin.Context) { // dummy, for generate openapi } @@ -327,7 +327,7 @@ type ViewSingleProfileReq struct { // @Security JwtAuth // @Produce html // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) conprofViewProfile(c *gin.Context) { // dummy, for generate openapi } diff --git a/pkg/apiserver/debugapi/endpoint_def.go b/pkg/apiserver/debugapi/endpoint_def.go index 5e4fe94566..9c03b8be79 100644 --- a/pkg/apiserver/debugapi/endpoint_def.go +++ b/pkg/apiserver/debugapi/endpoint_def.go @@ -76,7 +76,7 @@ func resolveTimeoutFromQuery(key string) func(*endpoint.ResolvedRequestPayload) } } -// tidb +// tidb. var endpointDefs = []*endpoint.APIModel{ { ID: "tidb_stats_dump", diff --git a/pkg/apiserver/debugapi/param_model_def.go b/pkg/apiserver/debugapi/param_model_def.go index a30d64c916..e03bc2759c 100644 --- a/pkg/apiserver/debugapi/param_model_def.go +++ b/pkg/apiserver/debugapi/param_model_def.go @@ -65,7 +65,7 @@ var APIParamModelInt = &endpoint.BaseAPIParamModel{ }, } -// enum +// enum. type enumAPIParamModel struct { // we need use endpoint.BaseAPIParamModel point to avoid nested json struct *endpoint.BaseAPIParamModel @@ -100,7 +100,7 @@ func APIParamModelEnum(items []EnumItem) endpoint.APIParamModel { return enumModel } -// const +// const. type constantAPIParamModel struct { // we need use endpoint.BaseAPIParamModel point to avoid nested json struct *endpoint.BaseAPIParamModel diff --git a/pkg/apiserver/debugapi/service.go b/pkg/apiserver/debugapi/service.go index 6dafc2f6fc..234b91584c 100644 --- a/pkg/apiserver/debugapi/service.go +++ b/pkg/apiserver/debugapi/service.go @@ -74,7 +74,7 @@ func getExtFromContentTypeHeader(contentType string) string { // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /debug_api/endpoint [post] +// @Router /debug_api/endpoint [post]. func (s *Service) RequestEndpoint(c *gin.Context) { var req endpoint.RequestPayload if err := c.ShouldBindJSON(&req); err != nil { @@ -120,7 +120,7 @@ func (s *Service) RequestEndpoint(c *gin.Context) { // @Success 200 {object} string // @Failure 400 {object} utils.APIError "Bad request" // @Failure 500 {object} utils.APIError -// @Router /debug_api/download [get] +// @Router /debug_api/download [get]. func (s *Service) Download(c *gin.Context) { token := c.Query("token") utils.FSServe(c, token, tokenIssuer) @@ -131,7 +131,7 @@ func (s *Service) Download(c *gin.Context) { // @Security JwtAuth // @Success 200 {array} endpoint.APIModel // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Router /debug_api/endpoints [get] +// @Router /debug_api/endpoints [get]. func (s *Service) GetEndpoints(c *gin.Context) { c.JSON(http.StatusOK, s.Client.GetAllAPIModels()) } diff --git a/pkg/apiserver/diagnose/diagnose.go b/pkg/apiserver/diagnose/diagnose.go index 666e0fc066..e507ae71e0 100644 --- a/pkg/apiserver/diagnose/diagnose.go +++ b/pkg/apiserver/diagnose/diagnose.go @@ -90,7 +90,7 @@ type GenerateReportRequest struct { // @Success 200 {array} Report // @Router /diagnose/reports [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) reportsHandler(c *gin.Context) { reports, err := GetReports(s.db) if err != nil { @@ -107,7 +107,7 @@ func (s *Service) reportsHandler(c *gin.Context) { // @Router /diagnose/reports [post] // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) genReportHandler(c *gin.Context) { var req GenerateReportRequest if err := c.ShouldBindJSON(&req); err != nil { @@ -161,7 +161,7 @@ func (s *Service) genReportHandler(c *gin.Context) { // @Success 200 {object} Report // @Router /diagnose/reports/{id}/status [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) reportStatusHandler(c *gin.Context) { id := c.Param("id") report, err := GetReport(s.db, id) @@ -177,7 +177,7 @@ func (s *Service) reportStatusHandler(c *gin.Context) { // @Produce html // @Param id path string true "report id" // @Success 200 {string} string -// @Router /diagnose/reports/{id}/detail [get] +// @Router /diagnose/reports/{id}/detail [get]. func (s *Service) reportHTMLHandler(c *gin.Context) { defer func(old string) { c.Request.URL.Path = old @@ -192,7 +192,7 @@ func (s *Service) reportHTMLHandler(c *gin.Context) { // @Produce text/javascript // @Param id path string true "report id" // @Success 200 {string} string -// @Router /diagnose/reports/{id}/data.js [get] +// @Router /diagnose/reports/{id}/data.js [get]. func (s *Service) reportDataHandler(c *gin.Context) { id := c.Param("id") report, err := GetReport(s.db, id) @@ -218,7 +218,7 @@ type GenDiagnosisReportRequest struct { // @Success 200 {object} TableDef // @Router /diagnose/diagnosis [post] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) genDiagnosisHandler(c *gin.Context) { var req GenDiagnosisReportRequest if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/apiserver/diagnose/query.go b/pkg/apiserver/diagnose/query.go index 4632f5132c..1bc8dba354 100644 --- a/pkg/apiserver/diagnose/query.go +++ b/pkg/apiserver/diagnose/query.go @@ -51,7 +51,7 @@ type AvgMaxMinTableDef struct { } // Table schema -// METRIC_NAME , LABEL, AVG(VALUE), MAX(VALUE), MIN(VALUE), +// METRIC_NAME , LABEL, AVG(VALUE), MAX(VALUE), MIN(VALUE),. func (t AvgMaxMinTableDef) queryRow(arg *queryArg, db *gorm.DB) (*TableRowDef, error) { if len(t.name) == 0 { t.name = t.tbl @@ -121,7 +121,7 @@ type sumValueQuery struct { } // Table schema -// METRIC_NAME , LABEL TOTAL_VALUE +// METRIC_NAME , LABEL TOTAL_VALUE. func (t sumValueQuery) queryRow(arg *queryArg, db *gorm.DB) (*TableRowDef, error) { if len(t.name) == 0 { t.name = t.tbl @@ -187,7 +187,7 @@ type totalTimeByLabelsTableDef struct { } // Table schema -// METRIC_NAME , LABEL , TIME_RATIO , TOTAL_VALUE , TOTAL_COUNT , P999 , P99 , P90 , P80 +// METRIC_NAME , LABEL , TIME_RATIO , TOTAL_VALUE , TOTAL_COUNT , P999 , P99 , P90 , P80. func (t totalTimeByLabelsTableDef) queryRow(arg *queryArg, db *gorm.DB) (*TableRowDef, error) { sql := t.genSumarySQLs(arg.totalTime, arg.startTime, arg.endTime, arg.quantiles) rows, err := querySQL(db, sql) @@ -338,7 +338,7 @@ type totalValueAndTotalCountTableDef struct { } // Table schema -// METRIC_NAME , LABEL TOTAL_VALUE , TOTAL_COUNT , P999 , P99 , P90 , P80 +// METRIC_NAME , LABEL TOTAL_VALUE , TOTAL_COUNT , P999 , P99 , P90 , P80. func (t totalValueAndTotalCountTableDef) queryRow(arg *queryArg, db *gorm.DB) (*TableRowDef, error) { sql := t.genSumarySQLs(arg.startTime, arg.endTime, arg.quantiles) rows, err := querySQL(db, sql) diff --git a/pkg/apiserver/diagnose/report.go b/pkg/apiserver/diagnose/report.go index 15a287e396..386af5e5e2 100644 --- a/pkg/apiserver/diagnose/report.go +++ b/pkg/apiserver/diagnose/report.go @@ -293,7 +293,7 @@ type task struct { taskID int // taskID for arrange the tables in order } -//change the get-Table-func to task +//change the get-Table-func to task. func func2task(funcs []getTableFunc) chan *task { taskChan := make(chan *task, len(funcs)) for i := 0; i < len(funcs); i++ { diff --git a/pkg/apiserver/info/info.go b/pkg/apiserver/info/info.go index 05a4e423f0..151dd954c9 100644 --- a/pkg/apiserver/info/info.go +++ b/pkg/apiserver/info/info.go @@ -70,7 +70,7 @@ type InfoResponse struct { //nolint // @Success 200 {object} InfoResponse // @Router /info/info [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) infoHandler(c *gin.Context) { supportedFeatures := []string{} if conprof.IsFeatureSupport(s.params.Config) { @@ -100,7 +100,7 @@ type WhoAmIResponse struct { // @Success 200 {object} WhoAmIResponse // @Router /info/whoami [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) whoamiHandler(c *gin.Context) { sessionUser := utils.GetSession(c) resp := WhoAmIResponse{ @@ -116,7 +116,7 @@ func (s *Service) whoamiHandler(c *gin.Context) { // @Success 200 {object} []string // @Router /info/databases [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) databasesHandler(c *gin.Context) { type databaseSchemas struct { Databases string `gorm:"column:Database"` @@ -147,7 +147,7 @@ type tableSchema struct { // @Router /info/tables [get] // @Param database_name query string false "Database name" // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) tablesHandler(c *gin.Context) { var result []tableSchema db := utils.GetTiDBConnection(c) diff --git a/pkg/apiserver/logsearch/service.go b/pkg/apiserver/logsearch/service.go index fd0d2b2034..c769e7110f 100644 --- a/pkg/apiserver/logsearch/service.go +++ b/pkg/apiserver/logsearch/service.go @@ -111,7 +111,7 @@ type TaskGroupResponse struct { // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /logs/taskgroup [put] +// @Router /logs/taskgroup [put]. func (s *Service) CreateTaskGroup(c *gin.Context) { var req CreateTaskGroupRequest if err := c.ShouldBindJSON(&req); err != nil { @@ -159,7 +159,7 @@ func (s *Service) CreateTaskGroup(c *gin.Context) { // @Success 200 {array} TaskGroupModel // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /logs/taskgroups [get] +// @Router /logs/taskgroups [get]. func (s *Service) GetAllTaskGroups(c *gin.Context) { var taskGroups []*TaskGroupModel err := s.db.Find(&taskGroups).Error @@ -177,7 +177,7 @@ func (s *Service) GetAllTaskGroups(c *gin.Context) { // @Success 200 {object} TaskGroupResponse // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /logs/taskgroups/{id} [get] +// @Router /logs/taskgroups/{id} [get]. func (s *Service) GetTaskGroup(c *gin.Context) { taskGroupID := c.Param("id") var taskGroup TaskGroupModel @@ -205,7 +205,7 @@ func (s *Service) GetTaskGroup(c *gin.Context) { // @Success 200 {array} PreviewModel // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /logs/taskgroups/{id}/preview [get] +// @Router /logs/taskgroups/{id}/preview [get]. func (s *Service) GetTaskGroupPreview(c *gin.Context) { taskGroupID := c.Param("id") var lines []PreviewModel @@ -228,7 +228,7 @@ func (s *Service) GetTaskGroupPreview(c *gin.Context) { // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /logs/taskgroups/{id}/retry [post] +// @Router /logs/taskgroups/{id}/retry [post]. func (s *Service) RetryTask(c *gin.Context) { taskGroupID, err := strconv.Atoi(c.Param("id")) if err != nil { @@ -276,7 +276,7 @@ func (s *Service) RetryTask(c *gin.Context) { // @Success 200 {object} utils.APIEmptyResponse // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 400 {object} utils.APIError -// @Router /logs/taskgroups/{id}/cancel [post] +// @Router /logs/taskgroups/{id}/cancel [post]. func (s *Service) CancelTask(c *gin.Context) { taskGroupID, err := strconv.Atoi(c.Param("id")) if err != nil { @@ -303,7 +303,7 @@ func (s *Service) CancelTask(c *gin.Context) { // @Success 200 {object} utils.APIEmptyResponse // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /logs/taskgroups/{id} [delete] +// @Router /logs/taskgroups/{id} [delete]. func (s *Service) DeleteTaskGroup(c *gin.Context) { taskGroupID := c.Param("id") taskGroup := TaskGroupModel{} @@ -323,7 +323,7 @@ func (s *Service) DeleteTaskGroup(c *gin.Context) { // @Success 200 {string} string "xxx" // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Router /logs/download/acquire_token [get] +// @Router /logs/download/acquire_token [get]. func (s *Service) GetDownloadToken(c *gin.Context) { ids := c.QueryArray("id") str := strings.Join(ids, ",") @@ -341,7 +341,7 @@ func (s *Service) GetDownloadToken(c *gin.Context) { // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /logs/download [get] +// @Router /logs/download [get]. func (s *Service) DownloadLogs(c *gin.Context) { token := c.Query("token") str, err := utils.ParseJWTString("logs/download", token) diff --git a/pkg/apiserver/metrics/router.go b/pkg/apiserver/metrics/router.go index a60c3c02ca..57ecb22b40 100644 --- a/pkg/apiserver/metrics/router.go +++ b/pkg/apiserver/metrics/router.go @@ -52,7 +52,7 @@ func RegisterRouter(r *gin.RouterGroup, auth *user.AuthService, s *Service) { // @Success 200 {object} QueryResponse // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Security JwtAuth -// @Router /metrics/query [get] +// @Router /metrics/query [get]. func (s *Service) queryMetrics(c *gin.Context) { var req QueryRequest if err := c.ShouldBindQuery(&req); err != nil { @@ -114,7 +114,7 @@ type GetPromAddressConfigResponse struct { // @Success 200 {object} GetPromAddressConfigResponse // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Security JwtAuth -// @Router /metrics/prom_address [get] +// @Router /metrics/prom_address [get]. func (s *Service) getPromAddressConfig(c *gin.Context) { cAddr, err := s.resolveCustomizedPromAddress(true) if err != nil { @@ -146,7 +146,7 @@ type PutCustomPromAddressResponse struct { // @Success 200 {object} PutCustomPromAddressResponse // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Security JwtAuth -// @Router /metrics/prom_address [put] +// @Router /metrics/prom_address [put]. func (s *Service) putCustomPromAddress(c *gin.Context) { var req PutCustomPromAddressRequest if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/apiserver/profiling/model.go b/pkg/apiserver/profiling/model.go index 88046b2644..39a5f37006 100644 --- a/pkg/apiserver/profiling/model.go +++ b/pkg/apiserver/profiling/model.go @@ -25,7 +25,7 @@ import ( // TaskState is used to represent the task/task group state. type TaskState int -// Built-in task state +// Built-in task state. const ( TaskStateError TaskState = iota TaskStateRunning diff --git a/pkg/apiserver/profiling/pprof.go b/pkg/apiserver/profiling/pprof.go index 4f20ceda85..ec1b3c5789 100644 --- a/pkg/apiserver/profiling/pprof.go +++ b/pkg/apiserver/profiling/pprof.go @@ -158,7 +158,7 @@ func (f *fetcher) Fetch(src string, duration, timeout time.Duration) (*profile.P return p, url, err } -// blankPprofUI is used to eliminate the pprof logs +// blankPprofUI is used to eliminate the pprof logs. type blankPprofUI struct { } diff --git a/pkg/apiserver/profiling/router.go b/pkg/apiserver/profiling/router.go index 1ddf2ec793..4899357604 100644 --- a/pkg/apiserver/profiling/router.go +++ b/pkg/apiserver/profiling/router.go @@ -56,7 +56,7 @@ func RegisterRouter(r *gin.RouterGroup, auth *user.AuthService, s *Service) { // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /profiling/group/start [post] +// @Router /profiling/group/start [post]. func (s *Service) handleStartGroup(c *gin.Context) { var req StartRequest if err := c.ShouldBindJSON(&req); err != nil { @@ -98,7 +98,7 @@ func (s *Service) handleStartGroup(c *gin.Context) { // @Security JwtAuth // @Success 200 {array} TaskGroupModel // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Router /profiling/group/list [get] +// @Router /profiling/group/list [get]. func (s *Service) getGroupList(c *gin.Context) { var resp []TaskGroupModel err := s.params.LocalStore.Order("id DESC").Find(&resp).Error @@ -123,7 +123,7 @@ type GroupDetailResponse struct { // @Success 200 {object} GroupDetailResponse // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Router /profiling/group/detail/{groupId} [get] +// @Router /profiling/group/detail/{groupId} [get]. func (s *Service) getGroupDetail(c *gin.Context) { taskGroupID, err := strconv.Atoi(c.Param("groupId")) if err != nil { @@ -159,7 +159,7 @@ func (s *Service) getGroupDetail(c *gin.Context) { // @Success 200 {object} utils.APIEmptyResponse // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Router /profiling/group/cancel/{groupId} [post] +// @Router /profiling/group/cancel/{groupId} [post]. func (s *Service) handleCancelGroup(c *gin.Context) { taskGroupID, err := strconv.Atoi(c.Param("groupId")) if err != nil { @@ -184,7 +184,7 @@ func (s *Service) handleCancelGroup(c *gin.Context) { // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /profiling/action_token [get] +// @Router /profiling/action_token [get]. func (s *Service) getActionToken(c *gin.Context) { id := c.Query("id") action := c.Query("action") // group_download, single_download, single_view @@ -205,7 +205,7 @@ func (s *Service) getActionToken(c *gin.Context) { // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /profiling/group/download [get] +// @Router /profiling/group/download [get]. func (s *Service) downloadGroup(c *gin.Context) { token := c.Query("token") str, err := utils.ParseJWTString("profiling/group_download", token) @@ -248,7 +248,7 @@ func (s *Service) downloadGroup(c *gin.Context) { // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /profiling/single/download [get] +// @Router /profiling/single/download [get]. func (s *Service) downloadSingle(c *gin.Context) { // FIXME: We can simply provide only a single file token := c.Query("token") @@ -287,7 +287,7 @@ func (s *Service) downloadSingle(c *gin.Context) { // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /profiling/single/view [get] +// @Router /profiling/single/view [get]. func (s *Service) viewSingle(c *gin.Context) { token := c.Query("token") str, err := utils.ParseJWTString("profiling/single_view", token) @@ -324,7 +324,7 @@ func (s *Service) viewSingle(c *gin.Context) { // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Failure 500 {object} utils.APIError -// @Router /profiling/group/delete/{groupId} [delete] +// @Router /profiling/group/delete/{groupId} [delete]. func (s *Service) deleteGroup(c *gin.Context) { taskGroupID, err := strconv.Atoi(c.Param("groupId")) if err != nil { @@ -352,7 +352,7 @@ func (s *Service) deleteGroup(c *gin.Context) { // @Router /profiling/config [get] // @Security JwtAuth // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) getDynamicConfig(c *gin.Context) { dc, err := s.params.ConfigManager.Get() if err != nil { @@ -369,7 +369,7 @@ func (s *Service) getDynamicConfig(c *gin.Context) { // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) setDynamicConfig(c *gin.Context) { var req config.ProfilingConfig if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/apiserver/queryeditor/service.go b/pkg/apiserver/queryeditor/service.go index ec28c95fb0..0ddc2ff2ca 100644 --- a/pkg/apiserver/queryeditor/service.go +++ b/pkg/apiserver/queryeditor/service.go @@ -129,7 +129,7 @@ func executeStatements(context context.Context, db *sql.DB, statements string) ( // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 403 {object} utils.APIError "Experimental feature not enabled" +// @Failure 403 {object} utils.APIError "Experimental feature not enabled". func (s *Service) runHandler(c *gin.Context) { var req RunRequest if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/apiserver/slowquery/service.go b/pkg/apiserver/slowquery/service.go index ebeb1bedff..20bc4e0d10 100644 --- a/pkg/apiserver/slowquery/service.go +++ b/pkg/apiserver/slowquery/service.go @@ -74,7 +74,7 @@ func registerRouter(r *gin.RouterGroup, auth *user.AuthService, s *Service) { // @Router /slow_query/list [get] // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getList(c *gin.Context) { var req GetListRequest if err := c.ShouldBindQuery(&req); err != nil { @@ -96,7 +96,7 @@ func (s *Service) getList(c *gin.Context) { // @Success 200 {object} Model // @Router /slow_query/detail [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) getDetails(c *gin.Context) { var req GetDetailRequest if err := c.ShouldBindQuery(&req); err != nil { @@ -120,7 +120,7 @@ func (s *Service) getDetails(c *gin.Context) { // @Success 200 {string} string "xxx" // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) downloadTokenHandler(c *gin.Context) { var req GetListRequest if err := c.ShouldBindJSON(&req); err != nil { @@ -171,7 +171,7 @@ func (s *Service) downloadTokenHandler(c *gin.Context) { // @Produce text/csv // @Param token query string true "download token" // @Failure 400 {object} utils.APIError -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) downloadHandler(c *gin.Context) { token := c.Query("token") utils.DownloadByToken(token, "slowquery/download", c) @@ -183,7 +183,7 @@ func (s *Service) downloadHandler(c *gin.Context) { // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Security JwtAuth -// @Router /slow_query/table_columns [get] +// @Router /slow_query/table_columns [get]. func (s *Service) queryTableColumns(c *gin.Context) { db := utils.GetTiDBConnection(c) cs, err := s.params.SysSchema.GetTableColumnNames(db, slowQueryTable) diff --git a/pkg/apiserver/statement/config.go b/pkg/apiserver/statement/config.go index 2a006a1b70..01fd3a17b4 100644 --- a/pkg/apiserver/statement/config.go +++ b/pkg/apiserver/statement/config.go @@ -25,7 +25,7 @@ import ( // incoming configuration field should have the gorm tag `column` used to specify global variables // sql will be built like this, -// struct { FieldName `gorm:"column:some_global_var"` } -> @@GLOBAL.some_global_var AS some_global_var +// struct { FieldName `gorm:"column:some_global_var"` } -> @@GLOBAL.some_global_var AS some_global_var. func buildGlobalConfigProjectionSelectSQL(config interface{}) string { str := buildStringByStructField(config, func(f reflect.StructField) (string, bool) { gormTag, ok := f.Tag.Lookup("gorm") diff --git a/pkg/apiserver/statement/models.go b/pkg/apiserver/statement/models.go index bcf1d6aa8a..cdf8de1550 100644 --- a/pkg/apiserver/statement/models.go +++ b/pkg/apiserver/statement/models.go @@ -24,7 +24,7 @@ import ( "github.com/pingcap/tidb-dashboard/pkg/apiserver/utils" ) -// TimeRange represents a range of time +// TimeRange represents a range of time. type TimeRange struct { BeginTime int64 `json:"begin_time"` EndTime int64 `json:"end_time"` @@ -112,7 +112,7 @@ type Model struct { } // tableNames example: "d1.a1,d2.a2,d1.a1,d3.a3" -// return "d1, d2, d3" +// return "d1, d2, d3". func extractSchemasFromTableNames(tableNames string) string { schemas := make(map[string]bool) tables := strings.Split(tableNames, ",") diff --git a/pkg/apiserver/statement/service.go b/pkg/apiserver/statement/service.go index 360e22db4a..8744140094 100644 --- a/pkg/apiserver/statement/service.go +++ b/pkg/apiserver/statement/service.go @@ -86,7 +86,7 @@ type EditableConfig struct { // @Success 200 {object} statement.EditableConfig // @Router /statements/config [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) configHandler(c *gin.Context) { db := utils.GetTiDBConnection(c) cfg := &EditableConfig{} @@ -103,7 +103,7 @@ func (s *Service) configHandler(c *gin.Context) { // @Success 204 {object} string // @Router /statements/config [post] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) modifyConfigHandler(c *gin.Context) { var config EditableConfig if err := c.ShouldBindJSON(&config); err != nil { @@ -131,7 +131,7 @@ func (s *Service) modifyConfigHandler(c *gin.Context) { // @Success 200 {array} statement.TimeRange // @Router /statements/time_ranges [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) timeRangesHandler(c *gin.Context) { db := utils.GetTiDBConnection(c) timeRanges, err := queryTimeRanges(db) @@ -146,7 +146,7 @@ func (s *Service) timeRangesHandler(c *gin.Context) { // @Success 200 {array} string // @Router /statements/stmt_types [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) stmtTypesHandler(c *gin.Context) { db := utils.GetTiDBConnection(c) stmtTypes, err := queryStmtTypes(db) @@ -172,7 +172,7 @@ type GetStatementsRequest struct { // @Router /statements/list [get] // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) listHandler(c *gin.Context) { var req GetStatementsRequest if err := c.ShouldBindQuery(&req); err != nil { @@ -210,7 +210,7 @@ type GetPlansRequest struct { // @Success 200 {array} Model // @Router /statements/plans [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) plansHandler(c *gin.Context) { var req GetPlansRequest if err := c.ShouldBindQuery(&req); err != nil { @@ -236,7 +236,7 @@ type GetPlanDetailRequest struct { // @Success 200 {object} Model // @Router /statements/plan/detail [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) planDetailHandler(c *gin.Context) { var req GetPlanDetailRequest if err := c.ShouldBindQuery(&req); err != nil { @@ -259,7 +259,7 @@ func (s *Service) planDetailHandler(c *gin.Context) { // @Success 200 {string} string "xxx" // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) downloadTokenHandler(c *gin.Context) { var req GetStatementsRequest if err := c.ShouldBindJSON(&req); err != nil { @@ -316,7 +316,7 @@ func (s *Service) downloadTokenHandler(c *gin.Context) { // @Produce text/csv // @Param token query string true "download token" // @Failure 400 {object} utils.APIError -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) downloadHandler(c *gin.Context) { token := c.Query("token") utils.DownloadByToken(token, "statements/download", c) @@ -327,7 +327,7 @@ func (s *Service) downloadHandler(c *gin.Context) { // @Success 200 {array} string // @Failure 401 {object} utils.APIError "Unauthorized failure" // @Security JwtAuth -// @Router /statements/table_columns [get] +// @Router /statements/table_columns [get]. func (s *Service) queryTableColumns(c *gin.Context) { db := utils.GetTiDBConnection(c) cs, err := s.params.SysSchema.GetTableColumnNames(db, statementsTable) diff --git a/pkg/apiserver/user/auth.go b/pkg/apiserver/user/auth.go old mode 100755 new mode 100644 index 7112ecbddc..0aa13a5bcd --- a/pkg/apiserver/user/auth.go +++ b/pkg/apiserver/user/auth.go @@ -291,7 +291,7 @@ type GetLoginInfoResponse struct { // @ID userGetLoginInfo // @Summary Get log in information, like supported authenticate types. // @Success 200 {object} GetLoginInfoResponse -// @Router /user/login_info [get] +// @Router /user/login_info [get]. func (s *AuthService) getLoginInfoHandler(c *gin.Context) { supportedAuth := make([]int, 0) for typeID, a := range s.authenticators { @@ -316,7 +316,7 @@ func (s *AuthService) getLoginInfoHandler(c *gin.Context) { // @Param message body AuthenticateForm true "Credentials" // @Success 200 {object} TokenResponse // @Failure 401 {object} utils.APIError -// @Router /user/login [post] +// @Router /user/login [post]. func (s *AuthService) loginHandler(c *gin.Context) { s.middleware.LoginHandler(c) } @@ -332,7 +332,7 @@ type GetSignOutInfoRequest struct { // @Router /user/sign_out_info [get] // @Security JwtAuth // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError "Internal error" +// @Failure 500 {object} utils.APIError "Internal error". func (s *AuthService) getSignOutInfoHandler(c *gin.Context) { var req GetSignOutInfoRequest if err := c.ShouldBindQuery(&req); err != nil { diff --git a/pkg/apiserver/user/code/router.go b/pkg/apiserver/user/code/router.go index c903ba23d3..d9df282188 100644 --- a/pkg/apiserver/user/code/router.go +++ b/pkg/apiserver/user/code/router.go @@ -30,7 +30,7 @@ type ShareResponse struct { // @Param request body ShareRequest true "Request body" // @Security JwtAuth // @Success 200 {object} ShareResponse -// @Router /user/share/code [post] +// @Router /user/share/code [post]. func (s *Service) shareHandler(c *gin.Context) { var req ShareRequest if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/apiserver/user/sso/router.go b/pkg/apiserver/user/sso/router.go index f6316eab32..e4e2a2f372 100644 --- a/pkg/apiserver/user/sso/router.go +++ b/pkg/apiserver/user/sso/router.go @@ -32,7 +32,7 @@ type GetAuthURLRequest struct { // @Summary Get SSO Auth URL // @Param q query GetAuthURLRequest true "Query" // @Success 200 {string} string -// @Router /user/sso/auth_url [get] +// @Router /user/sso/auth_url [get]. func (s *Service) getAuthURLHandler(c *gin.Context) { var req GetAuthURLRequest if err := c.ShouldBindQuery(&req); err != nil { @@ -52,7 +52,7 @@ func (s *Service) getAuthURLHandler(c *gin.Context) { // @Success 200 {array} SSOImpersonationModel // @Router /user/sso/impersonations/list [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) listImpersonationHandler(c *gin.Context) { var resp []SSOImpersonationModel err := s.params.LocalStore.Find(&resp).Error @@ -76,7 +76,7 @@ type CreateImpersonationRequest struct { // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError "Internal error" +// @Failure 500 {object} utils.APIError "Internal error". func (s *Service) createImpersonationHandler(c *gin.Context) { var req CreateImpersonationRequest if err := c.ShouldBindJSON(&req); err != nil { @@ -102,7 +102,7 @@ func (s *Service) createImpersonationHandler(c *gin.Context) { // @Router /user/sso/config [get] // @Security JwtAuth // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) getConfig(c *gin.Context) { dc, err := s.params.ConfigManager.Get() if err != nil { @@ -124,7 +124,7 @@ type SetConfigRequest struct { // @Security JwtAuth // @Failure 400 {object} utils.APIError "Bad request" // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError "Internal error" +// @Failure 500 {object} utils.APIError "Internal error". func (s *Service) setConfig(c *gin.Context) { var req SetConfigRequest if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/apiserver/user/verify_sql_user.go b/pkg/apiserver/user/verify_sql_user.go old mode 100755 new mode 100644 index af3e46067d..b0e377fcd9 --- a/pkg/apiserver/user/verify_sql_user.go +++ b/pkg/apiserver/user/verify_sql_user.go @@ -32,7 +32,7 @@ var ( // ... // "enable-sem": true/false, // ... -// }, +// },. type tidbSecurityConfig struct { Security tidbSEMConfig `json:"security"` } @@ -90,7 +90,7 @@ var grantRegex = regexp.MustCompile(`GRANT (.+) ON`) // - GRANT PROCESS,SHOW DATABASES,CONFIG ON *.* TO 'dashboardAdmin'@'%' // - GRANT SYSTEM_VARIABLES_ADMIN,RESTRICTED_VARIABLES_ADMIN,RESTRICTED_STATUS_ADMIN,RESTRICTED_TABLES_ADMIN ON *.* TO 'dashboardAdmin'@'%' // - GRANT ALL PRIVILEGES ON *.* TO 'dashboardAdmin'@'%' -// - GRANT `app_read`@`%` TO `test`@`%` +// - GRANT `app_read`@`%` TO `test`@`%`. func parseUserGrants(grantRows []string) map[string]struct{} { grants := map[string]struct{}{} @@ -117,7 +117,7 @@ func parseUserGrants(grantRows []string) map[string]struct{} { // When TiDB SEM is enabled, following extra privileges are required // - RESTRICTED_VARIABLES_ADMIN // - RESTRICTED_TABLES_ADMIN -// - RESTRICTED_STATUS_ADMIN +// - RESTRICTED_STATUS_ADMIN. func checkDashboardPriv(privs map[string]struct{}, enableSEM bool) bool { if enableSEM { // Note: When SEM is enabled, these additional privileges need to be checked even if "ALL PRIVILEGES" is granted. diff --git a/pkg/apiserver/utils/jwt.go b/pkg/apiserver/utils/jwt.go index 86cc3466cb..90cd2b0fc4 100644 --- a/pkg/apiserver/utils/jwt.go +++ b/pkg/apiserver/utils/jwt.go @@ -17,7 +17,7 @@ import ( "fmt" "time" - "github.com/dgrijalva/jwt-go" + "github.com/golang-jwt/jwt" "github.com/gtank/cryptopasta" ) @@ -54,7 +54,7 @@ func NewJWTStringWithExpire(issuer string, data string, expireIn time.Duration) return tokenString, nil } -// ParseJWTString parse the JWT string and return the raw data +// ParseJWTString parse the JWT string and return the raw data. func ParseJWTString(requiredIssuer string, tokenStr string) (string, error) { claims := &Claims{} token, err := jwt.ParseWithClaims(tokenStr, claims, func(token *jwt.Token) (interface{}, error) { diff --git a/pkg/apiserver/utils/reflections.go b/pkg/apiserver/utils/reflections.go index 6afb92057f..22448c083e 100644 --- a/pkg/apiserver/utils/reflections.go +++ b/pkg/apiserver/utils/reflections.go @@ -17,7 +17,7 @@ import ( "reflect" ) -// GetFieldsAndTags return fields' tags assign by `tags` parameter +// GetFieldsAndTags return fields' tags assign by `tags` parameter. func GetFieldsAndTags(obj interface{}, tags []string) []Field { fieldTags := []Field{} t := reflect.TypeOf(obj) diff --git a/pkg/apiserver/utils/semver_check.go b/pkg/apiserver/utils/semver_check.go index 31626e49c2..de5af7a526 100644 --- a/pkg/apiserver/utils/semver_check.go +++ b/pkg/apiserver/utils/semver_check.go @@ -23,7 +23,7 @@ import ( // IsVersionSupport checks if a semantic version fits within a set of constraints // pdVersion, standaloneVersion examples: "v5.2.2", "v5.3.0", "v5.4.0-alpha-xxx", "5.3.0" (semver can handle `v` prefix by itself) -// constraints examples: "~5.2.2", ">= 5.3.0", see semver docs to get more information +// constraints examples: "~5.2.2", ">= 5.3.0", see semver docs to get more information. func IsVersionSupport(standaloneVersion string, constraints []string) bool { curVersion := standaloneVersion if version.Standalone == "No" { diff --git a/pkg/httpc/client.go b/pkg/httpc/client.go index 7424f08e51..d71ae4ed08 100644 --- a/pkg/httpc/client.go +++ b/pkg/httpc/client.go @@ -73,7 +73,7 @@ func (c Client) WithBeforeRequest(callback func(req *http.Request)) *Client { return &c } -// TODO: Replace using go-resty +// TODO: Replace using go-resty. func (c *Client) SendRequest( ctx context.Context, uri string, diff --git a/pkg/keyvisual/decorator/separator.go b/pkg/keyvisual/decorator/separator.go index 3a74943dc5..ce8836c880 100644 --- a/pkg/keyvisual/decorator/separator.go +++ b/pkg/keyvisual/decorator/separator.go @@ -38,7 +38,7 @@ type separatorLabeler struct { Separator string } -// ReloadConfig reset separator +// ReloadConfig reset separator. func (s *separatorLabelStrategy) ReloadConfig(cfg *config.KeyVisualConfig) { s.Separator.Store(cfg.PolicyKVSeparator) log.Debug("Reload config", zap.String("separator", cfg.PolicyKVSeparator)) @@ -50,12 +50,12 @@ func (s *separatorLabelStrategy) NewLabeler() Labeler { } } -// CrossBorder is temporarily not considering cross-border logic +// CrossBorder is temporarily not considering cross-border logic. func (e *separatorLabeler) CrossBorder(startKey, endKey string) bool { return false } -// Label uses separator to split key +// Label uses separator to split key. func (e *separatorLabeler) Label(keys []string) []LabelKey { labelKeys := make([]LabelKey, len(keys)) for i, key := range keys { diff --git a/pkg/keyvisual/manager.go b/pkg/keyvisual/manager.go index de80353469..ca888ffb54 100644 --- a/pkg/keyvisual/manager.go +++ b/pkg/keyvisual/manager.go @@ -102,7 +102,7 @@ func (s *Service) stopService() { // @Router /keyvisual/config [get] // @Security JwtAuth // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) getDynamicConfig(c *gin.Context) { dc, err := s.cfgManager.Get() if err != nil { @@ -119,7 +119,7 @@ func (s *Service) getDynamicConfig(c *gin.Context) { // @Security JwtAuth // @Failure 400 {object} utils.APIError // @Failure 401 {object} utils.APIError "Unauthorized failure" -// @Failure 500 {object} utils.APIError +// @Failure 500 {object} utils.APIError. func (s *Service) setDynamicConfig(c *gin.Context) { var req config.KeyVisualConfig if err := c.ShouldBindJSON(&req); err != nil { diff --git a/pkg/keyvisual/matrix/axis.go b/pkg/keyvisual/matrix/axis.go index 47062ef7ce..a0e5c8d532 100644 --- a/pkg/keyvisual/matrix/axis.go +++ b/pkg/keyvisual/matrix/axis.go @@ -164,14 +164,14 @@ func (c *chunk) SetZeroValues() { c.SetValues(newValues) } -// Set all values to 0 +// Set all values to 0. func (c *chunk) Clear() { MemsetUint64(c.Values, 0) } // Calculation -// Reduce generates new chunks based on the more sparse newKeys +// Reduce generates new chunks based on the more sparse newKeys. func (c *chunk) Reduce(newKeys []string) chunk { keys := c.Keys CheckReduceOf(keys, newKeys) @@ -194,7 +194,7 @@ func (c *chunk) Reduce(newKeys []string) chunk { return createChunk(newKeys, newValues) } -// GetFocusRows estimates the number of rows generated by executing a Focus with a specified threshold +// GetFocusRows estimates the number of rows generated by executing a Focus with a specified threshold. func (c *chunk) GetFocusRows(threshold uint64) (count int) { start := 0 var bucketSum uint64 diff --git a/pkg/keyvisual/matrix/key.go b/pkg/keyvisual/matrix/key.go index a985171b0c..a2d5eb928a 100644 --- a/pkg/keyvisual/matrix/key.go +++ b/pkg/keyvisual/matrix/key.go @@ -19,7 +19,7 @@ import ( "unsafe" ) -// KeyMap is used for string intern +// KeyMap is used for string intern. type KeyMap struct { sync.RWMutex sync.Map diff --git a/pkg/keyvisual/matrix/plane.go b/pkg/keyvisual/matrix/plane.go index 7da589767b..f9dd82dfa5 100644 --- a/pkg/keyvisual/matrix/plane.go +++ b/pkg/keyvisual/matrix/plane.go @@ -20,7 +20,7 @@ import ( // Plane stores consecutive axes. Each axis has StartTime, EndTime. The EndTime of each axis is the StartTime of its // next axis. Therefore satisfies: -// len(Times) == len(Axes) + 1 +// len(Times) == len(Axes) + 1. type Plane struct { Times []time.Time Axes []Axis diff --git a/pkg/keyvisual/service.go b/pkg/keyvisual/service.go index 5449876090..35171e3649 100644 --- a/pkg/keyvisual/service.go +++ b/pkg/keyvisual/service.go @@ -86,7 +86,7 @@ type Service struct { labelStrategy decorator.LabelStrategy } -// FIXME: Simplify these things +// FIXME: Simplify these things. func NewService( lc fx.Lifecycle, cfg *config.Config, @@ -237,7 +237,7 @@ func (s *Service) Stop(ctx context.Context) error { // @Success 200 {object} matrix.Matrix // @Router /keyvisual/heatmaps [get] // @Security JwtAuth -// @Failure 401 {object} utils.APIError "Unauthorized failure" +// @Failure 401 {object} utils.APIError "Unauthorized failure". func (s *Service) heatmaps(c *gin.Context) { startKey := c.Query("startkey") endKey := c.Query("endkey") diff --git a/pkg/keyvisual/storage/model.go b/pkg/keyvisual/storage/model.go index 9111a58748..343f45334a 100644 --- a/pkg/keyvisual/storage/model.go +++ b/pkg/keyvisual/storage/model.go @@ -68,7 +68,7 @@ func (a *AxisModel) Delete(db *dbstore.DB) error { } // If the table `AxisModel` exists, return true, nil -// or create table `AxisModel` +// or create table `AxisModel`. func CreateTableAxisModelIfNotExists(db *dbstore.DB) (bool, error) { if db.Migrator().HasTable(&AxisModel{}) { return true, nil diff --git a/pkg/keyvisual/storage/region.go b/pkg/keyvisual/storage/region.go index 7f0cede362..1a9f3ece1d 100644 --- a/pkg/keyvisual/storage/region.go +++ b/pkg/keyvisual/storage/region.go @@ -25,7 +25,7 @@ import ( // Source data pre processing parameters. const ( // preThreshold = 128 - // preRatioTarget = 512 + // preRatioTarget = 512. preTarget = 3072 dirtyWrittenBytes uint64 = 1 << 32 diff --git a/pkg/keyvisual/storage/stat.go b/pkg/keyvisual/storage/stat.go index c73690f988..1f36f125b0 100644 --- a/pkg/keyvisual/storage/stat.go +++ b/pkg/keyvisual/storage/stat.go @@ -79,7 +79,7 @@ func newLayerStat( } } -// Reduce merges ratio axes and append to next layerStat +// Reduce merges ratio axes and append to next layerStat. func (s *layerStat) Reduce(labeler decorator.Labeler) { if s.Ratio == 0 || s.Next == nil { _ = s.DeleteFirstAxisFromDb() diff --git a/pkg/keyvisual/storage/stat_persist.go b/pkg/keyvisual/storage/stat_persist.go index 00785bc8ec..2a8c6a27fb 100644 --- a/pkg/keyvisual/storage/stat_persist.go +++ b/pkg/keyvisual/storage/stat_persist.go @@ -40,7 +40,7 @@ func (s *layerStat) DeleteFirstAxisFromDb() error { return axisModel.Delete(s.Db) } -// Restore data from db the first time service starts +// Restore data from db the first time service starts. func (s *Stat) Restore() error { s.keyMap.Lock() defer s.keyMap.Unlock() diff --git a/pkg/swaggerserver/handler.go b/pkg/swaggerserver/handler.go index 9ab12215b3..a0f63e4e48 100644 --- a/pkg/swaggerserver/handler.go +++ b/pkg/swaggerserver/handler.go @@ -17,7 +17,7 @@ import ( "net/http" httpSwagger "github.com/swaggo/http-swagger" - // Swagger doc + // Swagger doc. _ "github.com/pingcap/tidb-dashboard/swaggerspec" ) diff --git a/pkg/tidb/model/codec.go b/pkg/tidb/model/codec.go index 6414d4bb28..8e16acc571 100644 --- a/pkg/tidb/model/codec.go +++ b/pkg/tidb/model/codec.go @@ -41,7 +41,7 @@ type Key []byte // It can be reused, thereby reducing memory applications. type KeyInfoBuffer []byte -// DecodeKey obtains the KeyInfoBuffer from a TiDB Key +// DecodeKey obtains the KeyInfoBuffer from a TiDB Key. func (buf *KeyInfoBuffer) DecodeKey(key Key) (KeyInfoBuffer, error) { _, result, err := decodeBytes(key, *buf) diff --git a/pkg/tidb/proxy.go b/pkg/tidb/proxy.go index f12129a5d4..c47302f3f7 100644 --- a/pkg/tidb/proxy.go +++ b/pkg/tidb/proxy.go @@ -143,7 +143,7 @@ func (p *proxy) pickActiveConn() (out net.Conn) { return } -// pick returns an active remote if there is any +// pick returns an active remote if there is any. func (p *proxy) pick() *remote { var picked *remote if p.current == "" { diff --git a/pkg/utils/topology/models.go b/pkg/utils/topology/models.go index 52c857dd36..cfc752a170 100644 --- a/pkg/utils/topology/models.go +++ b/pkg/utils/topology/models.go @@ -44,7 +44,7 @@ type TiDBInfo struct { StartTimestamp int64 `json:"start_timestamp"` } -// Store may be a TiKV store or TiFlash store +// Store may be a TiKV store or TiFlash store. type StoreInfo struct { GitHash string `json:"git_hash"` Version string `json:"version"` diff --git a/swaggerspec/placeholder.go b/swaggerspec/placeholder.go index 9eb3d1b63f..f0b1cc0bdb 100644 --- a/swaggerspec/placeholder.go +++ b/swaggerspec/placeholder.go @@ -14,3 +14,9 @@ // This file only ensures `swaggerspec` package exist even if swagger is not enabled. This is required for `go mod tidy`. package swaggerspec + +import ( + // Make sure that go mod tidy won't clean up necessary dependencies. + _ "github.com/alecthomas/template" + _ "github.com/swaggo/swag" +) diff --git a/util/client/httpclient/client.go b/util/client/httpclient/client.go index c4bca39ee9..dbc43e9e7c 100644 --- a/util/client/httpclient/client.go +++ b/util/client/httpclient/client.go @@ -19,6 +19,7 @@ package httpclient import ( "context" + "errors" "fmt" "github.com/go-resty/resty/v2" @@ -69,7 +70,7 @@ func New(config Config) *Client { c.inner.SetRedirectPolicy(defaultRedirectPolicy) c.inner.OnAfterResponse(c.handleAfterResponseHook) c.inner.OnError(c.handleErrorHook) - c.inner.HostURL = config.BaseURL + c.inner.SetHostURL(config.BaseURL) c.inner.SetTLSClientConfig(config.TLS) return c } @@ -93,7 +94,8 @@ func (c *Client) handleErrorHook(req *resty.Request, err error) { zap.String("kindTag", c.kindTag), zap.String("url", req.URL), } - if respErr, ok := err.(*resty.ResponseError); ok && respErr.Response != nil && respErr.Response.RawResponse != nil { + var respErr *resty.ResponseError + if errors.As(err, &respErr) && respErr.Response != nil && respErr.Response.RawResponse != nil { fields = append(fields, zap.String("responseStatus", respErr.Response.Status()), zap.String("responseBody", respErr.Response.String()), @@ -101,7 +103,7 @@ func (c *Client) handleErrorHook(req *resty.Request, err error) { err = respErr.Unwrap() } fields = append(fields, zap.Error(err)) - if _, hasVerboseError := err.(fmt.Formatter); !hasVerboseError { + if _, hasVerboseError := err.(fmt.Formatter); !hasVerboseError { //nolint:errorlint fields = append(fields, zap.Stack("stack")) } log.Warn("Request failed", fields...) diff --git a/util/client/httpclient/request_test.go b/util/client/httpclient/request_test.go index f67bf3c708..1920b232d3 100644 --- a/util/client/httpclient/request_test.go +++ b/util/client/httpclient/request_test.go @@ -27,7 +27,7 @@ func TestRemoteEndpointError(t *testing.T) { } func TestRemoteEndpointBadServer(t *testing.T) { - listener, err := net.Listen("tcp", ":0") + listener, err := net.Listen("tcp", "127.0.0.1:0") require.Nil(t, err) go func() { for { diff --git a/util/client/tidbclient/sql_client.go b/util/client/tidbclient/sql_client.go index 283c67d455..fc750eec2c 100644 --- a/util/client/tidbclient/sql_client.go +++ b/util/client/tidbclient/sql_client.go @@ -15,6 +15,7 @@ package tidbclient import ( "context" + "errors" "fmt" "time" @@ -31,9 +32,9 @@ import ( var ( ErrNS = errorx.NewNamespace("tidb_client") - // ErrAuthFailed means the authentication is failed when connecting to the TiDB Server + // ErrAuthFailed means the authentication is failed when connecting to the TiDB Server. ErrAuthFailed = ErrNS.NewType("tidb_auth_failed") - // ErrConnFailed means there is a connection (like network) problem when connecting to the TiDB Server + // ErrConnFailed means there is a connection (like network) problem when connecting to the TiDB Server. ErrConnFailed = ErrNS.NewType("tidb_conn_failed") ) @@ -75,7 +76,8 @@ func (c *SQLClient) OpenConn(user string, pass string) (*gorm.DB, error) { log.Warn("Failed to open SQL connection", zap.String("targetComponent", distro.R().TiDB), zap.Error(err)) - if mysqlErr, ok := err.(*mysql.MySQLError); ok { + var mysqlErr *mysql.MySQLError + if errors.As(err, &mysqlErr) { if mysqlErr.Number == mysqlerr.ER_ACCESS_DENIED_ERROR { return nil, ErrAuthFailed.New("Bad SQL username or password") } diff --git a/util/client/tidbclient/status_client.go b/util/client/tidbclient/status_client.go index fe08714f19..4a1c5cb8b5 100644 --- a/util/client/tidbclient/status_client.go +++ b/util/client/tidbclient/status_client.go @@ -23,7 +23,7 @@ type StatusClient struct { *httpclient.Client } -// Returns error when config is invalid. +// NewStatusClient returns error when config is invalid. func NewStatusClient(config httpclient.APIClientConfig) (*StatusClient, error) { c2, err := config.IntoConfig(distro.R().TiDB) if err != nil { diff --git a/util/client/tidbclient/tidbproto/codec.go b/util/client/tidbclient/tidbproto/codec.go index eca85355b8..5624ed5452 100644 --- a/util/client/tidbclient/tidbproto/codec.go +++ b/util/client/tidbclient/tidbproto/codec.go @@ -41,7 +41,7 @@ type Key []byte // It can be reused, thereby reducing memory applications. type KeyInfoBuffer []byte -// DecodeKey obtains the KeyInfoBuffer from a TiDB Key +// DecodeKey obtains the KeyInfoBuffer from a TiDB Key. func (buf *KeyInfoBuffer) DecodeKey(key Key) (KeyInfoBuffer, error) { _, result, err := decodeBytes(key, *buf) diff --git a/util/client/tidbclient/tidbproxy/proxy.go b/util/client/tidbclient/tidbproxy/proxy.go index 683a9e7880..45a0eb5053 100644 --- a/util/client/tidbclient/tidbproxy/proxy.go +++ b/util/client/tidbclient/tidbproxy/proxy.go @@ -27,8 +27,6 @@ type Config struct { type Proxy struct { nocopy.NoCopy - config Config - SQLPortProxy *proxy.Proxy StatusPortProxy *proxy.Proxy } diff --git a/util/client/tiflashclient/status_client.go b/util/client/tiflashclient/status_client.go index 9c0e0274ad..693e1af30d 100644 --- a/util/client/tiflashclient/status_client.go +++ b/util/client/tiflashclient/status_client.go @@ -23,7 +23,7 @@ type StatusClient struct { *httpclient.Client } -// Returns error when config is invalid. +// NewStatusClient returns error when config is invalid. func NewStatusClient(config httpclient.APIClientConfig) (*StatusClient, error) { c2, err := config.IntoConfig(distro.R().TiFlash) if err != nil { diff --git a/util/client/tikvclient/status_client.go b/util/client/tikvclient/status_client.go index 9c69aaeede..525a54b31c 100644 --- a/util/client/tikvclient/status_client.go +++ b/util/client/tikvclient/status_client.go @@ -23,6 +23,7 @@ type StatusClient struct { *httpclient.Client } +// NewStatusClient returns error when config is invalid. func NewStatusClient(config httpclient.APIClientConfig) (*StatusClient, error) { c2, err := config.IntoConfig(distro.R().TiKV) if err != nil { diff --git a/util/csvutil/writer_test.go b/util/csvutil/writer_test.go index bab18f8dfe..bea91caf34 100644 --- a/util/csvutil/writer_test.go +++ b/util/csvutil/writer_test.go @@ -67,6 +67,7 @@ digestFoo,queryBar,instanceBox,dbAbc,id123,2,0,1970-01-01 00:00:00 UTC,123 } func TestCSVWriterWriteTimeTag(t *testing.T) { + //nolint:govet type fooStruct struct { Field1 int `csv:` Field2 int `foo` diff --git a/util/go.mod b/util/go.mod deleted file mode 100644 index 5773d4360c..0000000000 --- a/util/go.mod +++ /dev/null @@ -1,32 +0,0 @@ -module github.com/pingcap/tidb-dashboard/util - -go 1.16 - -require ( - github.com/DATA-DOG/go-sqlmock v1.5.0 - github.com/VividCortex/mysqlerr v1.0.0 - github.com/antonmedv/expr v1.9.0 - github.com/fatih/structtag v1.2.0 - github.com/gin-gonic/gin v1.7.4 - github.com/go-resty/resty/v2 v2.6.0 - github.com/go-sql-driver/mysql v1.6.0 - github.com/golang-jwt/jwt/v4 v4.1.0 - github.com/google/uuid v1.0.0 - github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 - github.com/henrylee2cn/ameda v1.4.10 - github.com/joomcode/errorx v1.0.3 - github.com/minio/sio v0.3.0 - github.com/pingcap/errors v0.11.4 - github.com/pingcap/log v0.0.0-20210906054005-afc726e70354 - github.com/stretchr/testify v1.7.0 - go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 - go.uber.org/atomic v1.9.0 - go.uber.org/fx v1.14.2 - go.uber.org/goleak v1.1.12 - go.uber.org/zap v1.19.1 - google.golang.org/grpc v1.25.1 - gorm.io/driver/mysql v1.1.2 - gorm.io/driver/sqlite v1.1.6 - gorm.io/gorm v1.21.15 - moul.io/zapgorm2 v1.1.0 -) diff --git a/util/go.sum b/util/go.sum deleted file mode 100644 index ec7aa69e66..0000000000 --- a/util/go.sum +++ /dev/null @@ -1,341 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= -github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/VividCortex/mysqlerr v1.0.0 h1:5pZ2TZA+YnzPgzBfiUWGqWmKDVNBdrkf9g+DNe1Tiq8= -github.com/VividCortex/mysqlerr v1.0.0/go.mod h1:xERx8E4tBhLvpjzdUyQiSfUxeMcATEQrflDAfXsqcAE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/antonmedv/expr v1.9.0 h1:j4HI3NHEdgDnN9p6oI6Ndr0G5QryMY0FNxT4ONrFDGU= -github.com/antonmedv/expr v1.9.0/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7 h1:u9SHYsPQNyt5tgDm3YN7+9dYrpK96E5wFilTFWIDZOM= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf h1:CAKfRE2YtTUIjjh1bkBtyYFaUT/WmOqsJjgtihT0vMI= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4 h1:qk/FSDDxo05wdJH28W+p5yivv7LuLYLRXPPD8KQCtZs= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= -github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= -github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.7.4 h1:QmUZXrvJ9qZ3GfWvQ+2wnW/1ePrTEJqPKMYEU3lD/DM= -github.com/gin-gonic/gin v1.7.4/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= -github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= -github.com/go-resty/resty/v2 v2.6.0 h1:joIR5PNLM2EFqqESUjCMGXrWmXNHEU9CEiK813oKYS4= -github.com/go-resty/resty/v2 v2.6.0/go.mod h1:PwvJS6hvaPkjtjNg9ph+VrSD92bi5Zq73w/BIH7cC3Q= -github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/golang-jwt/jwt/v4 v4.1.0 h1:XUgk2Ex5veyVFVeLm0xhusUTQybEbexJXrvPNOKkSY0= -github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c h1:Lh2aW+HnU2Nbe1gqD9SOJLJxW1jBMmQOktN2acDyJk8= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 h1:7xsUJsB2NrdcttQPa7JLEaGzvdbk7KvfrjgHZXOQRo0= -github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69/go.mod h1:YLEMZOtU+AZ7dhN9T/IpGhXVGly2bvkJQ+zxj3WeVQo= -github.com/henrylee2cn/ameda v1.4.10 h1:JdvI2Ekq7tapdPsuhrc4CaFiqw6QXFvZIULWJgQyCAk= -github.com/henrylee2cn/ameda v1.4.10/go.mod h1:liZulR8DgHxdK+MEwvZIylGnmcjzQ6N6f2PlWe7nEO4= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= -github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.2 h1:eVKgfIdy9b6zbWBMgFpfDPoAMifwSZagU9HmEU6zgiI= -github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/joomcode/errorx v1.0.3 h1:3e1mi0u7/HTPNdg6d6DYyKGBhA5l9XpsfuVE29NxnWw= -github.com/joomcode/errorx v1.0.3/go.mod h1:eQzdtdlNyN7etw6YCS4W4+lu442waxZYw5yvz0ULrRo= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= -github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-sqlite3 v1.14.8 h1:gDp86IdQsN/xWjIEmr9MF6o9mpksUgh0fu+9ByFxzIU= -github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/minio/sio v0.3.0 h1:syEFBewzOMOYVzSTFpp1MqpSZk8rUNbz8VIIc+PNzus= -github.com/minio/sio v0.3.0/go.mod h1:8b0yPp2avGThviy/+OCJBI6OMpvxoUuiLvE6F1lebhw= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/pingcap/errors v0.11.0/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= -github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pingcap/log v0.0.0-20210906054005-afc726e70354 h1:SvWCbCPh1YeHd9yQLksvJYAgft6wLTY1aNG81tpyscQ= -github.com/pingcap/log v0.0.0-20210906054005-afc726e70354/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/rivo/tview v0.0.0-20200219210816-cd38d7432498/go.mod h1:6lkG1x+13OShEf0EaOCaTQYyB7d5nSbb181KtjlS+84= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/sanity-io/litter v1.2.0/go.mod h1:JF6pZUFgu2Q0sBZ+HSV35P8TVPI1TTzEwyu9FXAw2W4= -github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.1 h1:aCvUg6QPl3ibpQUxyLkrEkCHtPqYJL4x9AuhqVqFis4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8 h1:ndzgwNDnKIqyCvHTXaCqh9KlOWKvBry6nuXMJmonVsE= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/dig v1.12.0 h1:l1GQeZpEbss0/M4l/ZotuBndCrkMdjnygzgcuOjAdaY= -go.uber.org/dig v1.12.0/go.mod h1:X34SnWGr8Fyla9zQNO2GSO2D+TIuqB14OS8JhYocIyw= -go.uber.org/fx v1.14.2 h1:xT/BW51pc0D/Jn0Xihb6Z/XrbuSs2GNL56fUF95VneE= -go.uber.org/fx v1.14.2/go.mod h1:rwjmT7CaZIiLgflUER9FCWCSkDGiRv/VDBxg32Inoy8= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= -go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2 h1:+DCIGbF/swA92ohVg0//6X2IVY3KZs6p9mix0ziNYJM= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191030062658-86caa796c7ab/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/mysql v1.1.2 h1:OofcyE2lga734MxwcCW9uB4mWNXMr50uaGRVwQL2B0M= -gorm.io/driver/mysql v1.1.2/go.mod h1:4P/X9vSc3WTrhTLZ259cpFd6xKNYiSSdSZngkSBGIMM= -gorm.io/driver/sqlite v1.1.6 h1:p3U8WXkVFTOLPED4JjrZExfndjOtya3db8w9/vEMNyI= -gorm.io/driver/sqlite v1.1.6/go.mod h1:W8LmC/6UvVbHKah0+QOC7Ja66EaZXHwUTjgXY8YNWX8= -gorm.io/gorm v1.21.9/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0= -gorm.io/gorm v1.21.12/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0= -gorm.io/gorm v1.21.15 h1:gAyaDoPw0lCyrSFWhBlahbUA1U4P5RViC1uIqoB+1Rk= -gorm.io/gorm v1.21.15/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -moul.io/zapgorm2 v1.1.0 h1:qwAlMBYf+qJkJ7PAzJl4oCe6eS6QGiKAXUPeis0+RBE= -moul.io/zapgorm2 v1.1.0/go.mod h1:emRfKjNqSzVj5lcgasBdovIXY1jSOwFz2GQZn1Rddks= -sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/util/gormutil/datatype/int.go b/util/gormutil/datatype/int.go index 168f22892b..b63afdddb8 100644 --- a/util/gormutil/datatype/int.go +++ b/util/gormutil/datatype/int.go @@ -48,7 +48,7 @@ func (n *Int) Scan(value interface{}) error { var _ schema.GormDataTypeInterface = Int(0) -// GormDataType implements schema.GormDataTypeInterface +// GormDataType implements schema.GormDataTypeInterface. func (n Int) GormDataType() string { return "BIGINT" } diff --git a/util/gormutil/datatype/timestamp.go b/util/gormutil/datatype/timestamp.go index 0599da380b..8fc7f40b53 100644 --- a/util/gormutil/datatype/timestamp.go +++ b/util/gormutil/datatype/timestamp.go @@ -40,7 +40,7 @@ func (n *Timestamp) Scan(value interface{}) error { var _ schema.GormDataTypeInterface = Timestamp{} -// GormDataType implements schema.GormDataTypeInterface +// GormDataType implements schema.GormDataTypeInterface. func (n Timestamp) GormDataType() string { return "TIMESTAMP" } diff --git a/util/gormutil/virtualview/schema.go b/util/gormutil/virtualview/schema.go index f51a11d034..9b65419a59 100644 --- a/util/gormutil/virtualview/schema.go +++ b/util/gormutil/virtualview/schema.go @@ -143,7 +143,7 @@ func parseViewModelSchema(model interface{}) (viewSchema, error) { ft := vt.Field(i) props, err := decodeField(ft) if err != nil { - return viewSchema{}, fmt.Errorf("field %s is invalid: %v", ft.Name, err) + return viewSchema{}, fmt.Errorf("field %s is invalid: %w", ft.Name, err) } if props.jsonNameL == "" { // this field is unexported, skip. diff --git a/util/gormutil/virtualview/schema_test.go b/util/gormutil/virtualview/schema_test.go index 467b4ad80f..a64dbb1b68 100644 --- a/util/gormutil/virtualview/schema_test.go +++ b/util/gormutil/virtualview/schema_test.go @@ -60,6 +60,7 @@ func TestDecodeFieldAssumptionJSON(t *testing.T) { func TestDecodeFieldAssumptionGORM(t *testing.T) { // For GORM, when it is not specified in the tag, default naming strategy will be used: + //nolint:govet type TestModel struct { GORMOmit string QueryValue string `gorm:"column:qv"` @@ -81,6 +82,7 @@ func TestDecodeFieldAssumptionGORM(t *testing.T) { db.MustMeetMockExpectation() } +//nolint:govet type SampleModel struct { Digest string `gorm:"column:MyDigest" json:"digest"` QueryValue string diff --git a/util/gormutil/virtualview/virtualview.go b/util/gormutil/virtualview/virtualview.go index 7de34ea529..526e31fff5 100644 --- a/util/gormutil/virtualview/virtualview.go +++ b/util/gormutil/virtualview/virtualview.go @@ -73,19 +73,19 @@ func (vv *VirtualView) SetSourceDBColumns(dbColumnNames []string) { vv.mu.Unlock() } -func (vv *VirtualView) Clauses(jsonFieldNames []string) VirtualViewClauses { +func (vv *VirtualView) Clauses(jsonFieldNames []string) Clauses { m := map[string]struct{}{} for _, name := range jsonFieldNames { m[strings.ToLower(name)] = struct{}{} } - return VirtualViewClauses{ + return Clauses{ vv: vv, jsonFieldNames: jsonFieldNames, jsonFieldsByNameL: m, } } -type VirtualViewClauses struct { +type Clauses struct { vv *VirtualView jsonFieldNames []string jsonFieldsByNameL map[string]struct{} @@ -94,7 +94,7 @@ type VirtualViewClauses struct { // Select builds a Select clause that return all fields specified in Clauses(). // // This function is concurrent-safe. -func (vvc VirtualViewClauses) Select() clause.Expression { +func (vvc Clauses) Select() clause.Expression { vvc.vv.mu.Lock() defer vvc.vv.mu.Unlock() @@ -150,7 +150,7 @@ type OrderByField struct { // when calling Clauses() will be ignored. // // This function is concurrent-safe. -func (vvc VirtualViewClauses) OrderBy(fields []OrderByField) clause.Expression { +func (vvc Clauses) OrderBy(fields []OrderByField) clause.Expression { vvc.vv.mu.Lock() defer vvc.vv.mu.Unlock() diff --git a/util/proxy/proxy.go b/util/proxy/proxy.go index 196b74232f..84b1529bae 100644 --- a/util/proxy/proxy.go +++ b/util/proxy/proxy.go @@ -17,7 +17,6 @@ package proxy import ( "context" - "errors" "io" "net" "sync" @@ -270,11 +269,10 @@ func (p *Proxy) runListenerLoop() { conn, err := p.listener.Accept() if err != nil { // Ignore listener close error - if !errors.Is(err, net.ErrClosed) { - log.Warn("Accept incoming connection failed", - zap.String("remoteAddr", p.listener.Addr().String()), - zap.Error(err)) - } + // TODO: Use `if !errors.Is(err, net.ErrClosed)` for higher Golang compilers. + log.Warn("Accept incoming connection failed", + zap.String("remoteAddr", p.listener.Addr().String()), + zap.Error(err)) } else { go p.serveConnection(conn) } diff --git a/util/proxy/proxy_test.go b/util/proxy/proxy_test.go index f2747e8978..d96d435aaf 100644 --- a/util/proxy/proxy_test.go +++ b/util/proxy/proxy_test.go @@ -240,10 +240,10 @@ func TestActiveUpstreamDown(t *testing.T) { assert.Nil(t, err) assert.Contains(t, resp.String(), "foo#") assert.Equal(t, servers.LastResp(), resp.String()) - assert.Equal(t, fmt.Sprintf("foo#%d", servers.LastId()), resp.String()) + assert.Equal(t, fmt.Sprintf("foo#%d", servers.LastID()), resp.String()) // Close the last accessed server - servers.Servers[servers.LastId()].Close() + servers.Servers[servers.LastID()].Close() // The connection is still succeeded, but forwarded to another upstream. resp2, err := sendGetToProxy(p) @@ -271,11 +271,11 @@ func TestNonActiveUpstreamDown(t *testing.T) { assert.True(t, p.HasActiveUpstream()) resp, err := sendGetToProxy(p) assert.Nil(t, err) - assert.Equal(t, fmt.Sprintf("foo#%d", servers.LastId()), resp.String()) + assert.Equal(t, fmt.Sprintf("foo#%d", servers.LastID()), resp.String()) // Close other non active servers for i := 0; i < 5; i++ { - if i != servers.LastId() { + if i != servers.LastID() { servers.Servers[i].Close() } } diff --git a/util/reflectutil/field_test.go b/util/reflectutil/field_test.go index 6fbfc2d4ac..076b93bb93 100644 --- a/util/reflectutil/field_test.go +++ b/util/reflectutil/field_test.go @@ -8,11 +8,12 @@ import ( ) func TestIsFieldExported(t *testing.T) { + //nolint:structcheck type f struct { - a string + a string //nolint:unused B string - ab string - aBC string + ab string //nolint:unused + aBC string //nolint:unused } rt := reflect.TypeOf(f{}) require.Equal(t, 4, rt.NumField()) diff --git a/util/reflectutil/tag.go b/util/reflectutil/tag.go index 166a873cb3..69a3a999d1 100644 --- a/util/reflectutil/tag.go +++ b/util/reflectutil/tag.go @@ -17,7 +17,7 @@ import ( "reflect" ) -// GetFieldsAndTags return fields' tags assign by `tags` parameter +// GetFieldsAndTags return fields' tags assign by `tags` parameter. func GetFieldsAndTags(obj interface{}, tags []string) []Field { fieldTags := []Field{} t := reflect.TypeOf(obj) diff --git a/util/rest/fileswap/server.go b/util/rest/fileswap/server.go index 7cd86cf760..907cc02d4e 100644 --- a/util/rest/fileswap/server.go +++ b/util/rest/fileswap/server.go @@ -1,6 +1,7 @@ package fileswap import ( + "errors" "fmt" "io" "io/ioutil" @@ -8,7 +9,7 @@ import ( "time" "github.com/gin-gonic/gin" - "github.com/golang-jwt/jwt/v4" + "github.com/golang-jwt/jwt" "github.com/gtank/cryptopasta" "github.com/joomcode/errorx" "github.com/minio/sio" @@ -75,7 +76,8 @@ func (s *Handler) parseClaimsFromToken(tokenString string) (*downloadTokenClaims return claims, nil } } - if ve, ok := err.(*jwt.ValidationError); ok && ve.Errors&jwt.ValidationErrorExpired != 0 { + var ve *jwt.ValidationError + if errors.As(err, &ve) && ve.Errors&jwt.ValidationErrorExpired != 0 { return nil, errorx.Decorate(err, "download token is expired") } return nil, errorx.Decorate(err, "download token is invalid") diff --git a/util/rest/resterror/error.go b/util/rest/resterror/error.go index 40e5a81150..cc5e5e1377 100644 --- a/util/rest/resterror/error.go +++ b/util/rest/resterror/error.go @@ -8,10 +8,10 @@ import ( ) var ( - ErrUnauthorized = errorx.CommonErrors.NewType("unauthorized") - ErrForbidden = errorx.CommonErrors.NewType("forbidden") - ErrBadRequest = errorx.CommonErrors.NewType("bad_request") - ErrNotFound = errorx.CommonErrors.NewType("not_found") + ErrUnauthenticated = errorx.CommonErrors.NewType("unauthenticated") + ErrForbidden = errorx.CommonErrors.NewType("forbidden") + ErrBadRequest = errorx.CommonErrors.NewType("bad_request") + ErrNotFound = errorx.CommonErrors.NewType("not_found") errInternal = errorx.CommonErrors.NewType("internal") propHTTPCode = errorx.RegisterProperty("http_code") @@ -38,7 +38,9 @@ func extractHTTPCodeFromError(err error) int { } // Is it a well-known error type? - if ex.IsOfType(ErrUnauthorized) { + if ex.IsOfType(ErrUnauthenticated) { + // See https://stackoverflow.com/questions/3297048/403-forbidden-vs-401-unauthorized-http-responses + // for why StatusUnauthorized comes from ErrUnauthenticated return http.StatusUnauthorized } if ex.IsOfType(ErrForbidden) { diff --git a/util/rest/resterror/resp.go b/util/rest/resterror/resp.go index 9dbfb39dfb..9736a858fd 100644 --- a/util/rest/resterror/resp.go +++ b/util/rest/resterror/resp.go @@ -77,11 +77,18 @@ func buildCode(err error) string { return errInternal.FullName() } +// Note: This function only exists for compatibility during the refactoring. Before refactoring, +// all error codes begin with "error.". We will migrate more and more error codes to not begin with "error.". +// Finally, after all error codes are migrated, this function is no longer needed. +func removeErrorPrefix(code string) string { + return strings.TrimPrefix(code, "error.") +} + func NewErrorResponse(err error) ErrorResponse { return ErrorResponse{ Error: true, Message: buildSimpleMessage(err), - Code: buildCode(err), + Code: removeErrorPrefix(buildCode(err)), FullText: fmt.Sprintf("%+v", err), } } diff --git a/util/rest/resterror/resp_test.go b/util/rest/resterror/resp_test.go index 33c863aeaf..af549a6d9c 100644 --- a/util/rest/resterror/resp_test.go +++ b/util/rest/resterror/resp_test.go @@ -25,7 +25,7 @@ func TestBuildSimpleMessage(t *testing.T) { err = os.ErrNotExist require.Equal(t, "file does not exist", buildSimpleMessage(err)) - err = fmt.Errorf("internal error: %+v", os.ErrNotExist) + err = fmt.Errorf("internal error: %w", os.ErrNotExist) require.Equal(t, "internal error: file does not exist", buildSimpleMessage(err)) err = errTypeInner.NewWithNoMessage() diff --git a/util/testutil/http_server.go b/util/testutil/http_server.go index 77418c0926..4a7091722b 100644 --- a/util/testutil/http_server.go +++ b/util/testutil/http_server.go @@ -36,20 +36,20 @@ func NewHTTPServerAtHost(response string, host string) *httptest.Server { type MultiServerHelper struct { Servers []*httptest.Server - lastActiveId *atomic.Int32 + lastActiveID *atomic.Int32 lastResponse *atomic.String } func NewMultiServer(n int, responsePattern string) *MultiServerHelper { servers := make([]*httptest.Server, 0) - lastActiveId := atomic.NewInt32(-1) + lastActiveID := atomic.NewInt32(-1) lastResponse := atomic.NewString("") for i := 0; i < n; i++ { func(i int) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { resp := fmt.Sprintf(responsePattern, i) - lastActiveId.Store(int32(i)) + lastActiveID.Store(int32(i)) lastResponse.Store(resp) _, _ = fmt.Fprintln(w, resp) })) @@ -58,7 +58,7 @@ func NewMultiServer(n int, responsePattern string) *MultiServerHelper { } return &MultiServerHelper{ Servers: servers, - lastActiveId: lastActiveId, + lastActiveID: lastActiveID, lastResponse: lastResponse, } } @@ -67,8 +67,8 @@ func (m *MultiServerHelper) LastResp() string { return m.lastResponse.Load() } -func (m *MultiServerHelper) LastId() int { - return int(m.lastActiveId.Load()) +func (m *MultiServerHelper) LastID() int { + return int(m.lastActiveID.Load()) } func (m *MultiServerHelper) CloseAll() { diff --git a/util/tlsutil/config_ext_test.go b/util/tlsutil/config_ext_test.go index 06ee2604e8..eaf71d2919 100644 --- a/util/tlsutil/config_ext_test.go +++ b/util/tlsutil/config_ext_test.go @@ -29,7 +29,7 @@ func TestNormalizeURL(t *testing.T) { assert.Equal(t, "https://foo", NormalizeURL(c, "https://foo")) assert.Equal(t, "http://ftp://foo", NormalizeURL(c, "ftp://foo")) - c = &tls.Config{} + c = &tls.Config{} // #nosec G402 assert.Equal(t, "https://foo", NormalizeURL(c, "foo")) assert.Equal(t, "https://foo", NormalizeURL(c, "http://foo")) assert.Equal(t, "https://foo", NormalizeURL(c, "https://foo")) diff --git a/util/topo/models.go b/util/topo/models.go index 9078466e9a..1139d068d5 100644 --- a/util/topo/models.go +++ b/util/topo/models.go @@ -44,7 +44,7 @@ type TiDBInfo struct { StartTimestamp int64 `json:"start_timestamp"` } -// StoreInfo may be either a TiKV store info or a TiFlash store info +// StoreInfo may be either a TiKV store info or a TiFlash store info. type StoreInfo struct { GitHash string `json:"git_hash"` Version string `json:"version"`