From fb6442a88b4318c0d8bb567df91544f0f5ad2507 Mon Sep 17 00:00:00 2001 From: ducnt114 Date: Thu, 3 Dec 2020 01:25:33 +0700 Subject: [PATCH 01/42] feature: support auth sasl-plain --- common.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/common.go b/common.go index 1470032..0a7c7a1 100644 --- a/common.go +++ b/common.go @@ -219,10 +219,12 @@ func setupCerts(certPath, caPath, keyPath string) (*tls.Config, error) { } type authConfig struct { - Mode string `json:"mode"` - CACert string `json:"ca-certificate"` - ClientCert string `json:"client-certificate"` - ClientCertKey string `json:"client-certificate-key"` + Mode string `json:"mode"` + CACert string `json:"ca-certificate"` + ClientCert string `json:"client-certificate"` + ClientCertKey string `json:"client-certificate-key"` + SASLPlainUser string `json:"sasl_plain_user"` + SASLPlainPassword string `json:"sasl_plain_password"` } func setupAuth(auth authConfig, saramaCfg *sarama.Config) error { @@ -235,11 +237,20 @@ func setupAuth(auth authConfig, saramaCfg *sarama.Config) error { return setupAuthTLS(auth, saramaCfg) case "TLS-1way": return setupAuthTLS1Way(auth, saramaCfg) + case "SASL": + return setupSASL(auth, saramaCfg) default: return fmt.Errorf("unsupport auth mode: %#v", auth.Mode) } } +func setupSASL(auth authConfig, saramaCfg *sarama.Config) error { + saramaCfg.Net.SASL.Enable = true + saramaCfg.Net.SASL.User = auth.SASLPlainUser + saramaCfg.Net.SASL.Password = auth.SASLPlainPassword + return nil +} + func setupAuthTLS1Way(auth authConfig, saramaCfg *sarama.Config) error { saramaCfg.Net.TLS.Enable = true saramaCfg.Net.TLS.Config = &tls.Config{} From 8fd8f3289877310455bd15ed7e1f0e55d7d55285 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Fri, 4 Dec 2020 00:46:11 +0100 Subject: [PATCH 02/42] updates travis ubuntu dist --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 66bc8a7..8da2b17 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ sudo: required -dist: trusty +dist: focal language: go services: - docker From 6fec9fd4f64950d88a949ef40656f39196e1bacd Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Fri, 4 Dec 2020 16:21:56 +0100 Subject: [PATCH 03/42] test via github actions --- .github/workflows/go.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/go.yml diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..7e8832a --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,36 @@ +name: Go + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + + test: + name: Test + runs-on: ubuntu-latest + steps: + + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: + go-version: ^1.14 + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Get dependencies + run: | + go get -v -t -d ./... + if [ -f Gopkg.toml ]; then + curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh + dep ensure + fi + + - name: Bring up containers + run: docker-compose -f test-dependencies.yml up -d && sleep 15 + + - name: Test + run: make test From 9180a099547062b787fad7fd032391d2f7512cf6 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Fri, 4 Dec 2020 16:26:08 +0100 Subject: [PATCH 04/42] go 1.15 adhoc fixes --- go.mod | 2 +- system_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index a89e921..7c992ac 100644 --- a/go.mod +++ b/go.mod @@ -10,4 +10,4 @@ require ( golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 ) -go 1.14 +go 1.15 diff --git a/system_test.go b/system_test.go index 25f9bab..923063e 100644 --- a/system_test.go +++ b/system_test.go @@ -32,6 +32,7 @@ func (c *cmd) run(name string, args ...string) (int, string, string) { cmd.Env = os.Environ() cmd.Env = append(cmd.Env, fmt.Sprintf("%s=localhost:9092", ENV_BROKERS)) cmd.Env = append(cmd.Env, fmt.Sprintf("%s=test-secrets/auth.json", ENV_AUTH)) + cmd.Env = append(cmd.Env, fmt.Sprintf("GODEBUG=x509ignoreCN=0")) if len(c.in) > 0 { cmd.Stdin = strings.NewReader(c.in) From ea439a94d88cffd8d37e3fc9e5cebf31a35bc1b9 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Fri, 4 Dec 2020 16:31:20 +0100 Subject: [PATCH 05/42] drops travis setup --- .travis.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8da2b17..0000000 --- a/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -sudo: required -dist: focal -language: go -services: - - docker - -go: - - 1.14 - -install: -- sudo docker version -- sudo pip install docker-compose -- docker-compose version - -before_script: -- docker-compose -f $TRAVIS_BUILD_DIR/test-dependencies.yml up -d -- sleep 15 - -script: -- make test From 7ed07504ac546572842db92ee9e55f4080ab0ff4 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Fri, 4 Dec 2020 16:46:20 +0100 Subject: [PATCH 06/42] adds -version flag. fix #116 --- common.go | 4 ++++ main.go | 35 ++++++++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/common.go b/common.go index 0a7c7a1..13bbda4 100644 --- a/common.go +++ b/common.go @@ -32,6 +32,10 @@ var ( invalidClientIDCharactersRegExp = regexp.MustCompile(`[^a-zA-Z0-9_-]`) ) +type command interface { + run(args []string) +} + func listenForInterrupt(q chan struct{}) { signals := make(chan os.Signal, 1) signal.Notify(signals, os.Kill, os.Interrupt) diff --git a/main.go b/main.go index 2a0aebc..58c73e1 100644 --- a/main.go +++ b/main.go @@ -5,18 +5,29 @@ import ( "os" ) -// TODO have these all the time +const AppVersion = "v13.0.0+" + var buildVersion, buildTime string -type command interface { - run(args []string) -} +var versionMessage = fmt.Sprintf(`kt version %s`, AppVersion) func init() { - if len(buildTime) > 0 && len(buildVersion) > 0 { - usageMessage = fmt.Sprintf(`%v -Build %v from %v.`, usageMessage, buildVersion, buildTime) + if buildVersion == "" && buildTime == "" { + return + } + + versionMessage += " (" + if buildVersion != "" { + versionMessage += buildVersion } + + if buildTime != "" { + if buildVersion != "" { + versionMessage += " @ " + } + versionMessage += buildTime + } + versionMessage += ")" } var usageMessage = fmt.Sprintf(`kt is a tool for Kafka. @@ -33,7 +44,9 @@ The commands are: group consumer group information and modification. admin basic cluster administration. -Use "kt [command] -help" for for information about the command. +Use "kt [command] -help" for more information about the command. + +Use "kt -version" for details on what version you are running. Authentication: @@ -41,7 +54,9 @@ Authentication with Kafka can be configured via a JSON file. You can set the file name via an "-auth" flag to each command or set it via the environment variable %s. -More at https://github.com/fgeller/kt`, ENV_AUTH) +You can find more details at https://github.com/fgeller/kt + +%s`, ENV_AUTH, versionMessage) func parseArgs() command { if len(os.Args) < 2 { @@ -61,6 +76,8 @@ func parseArgs() command { return &adminCmd{} case "-h", "-help", "--help": quitf(usageMessage) + case "-version", "--version": + quitf(versionMessage) default: failf(usageMessage) } From 6ba2d6d5038c112497cce23405ad27eacd96e6a0 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 5 Dec 2020 10:30:10 +0100 Subject: [PATCH 07/42] allows to manually trigger github action --- .github/workflows/go.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 7e8832a..48f44e6 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -1,6 +1,7 @@ -name: Go +name: Continuous Integration on: + workflow_dispatch: push: branches: [ master ] pull_request: @@ -9,14 +10,14 @@ on: jobs: test: - name: Test + name: kt Test runs-on: ubuntu-latest steps: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: ^1.14 + go-version: ^1.15 - name: Check out code into the Go module directory uses: actions/checkout@v2 From e51f73a0b8955a0d893dcbfb5a5564b99512be9b Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Thu, 18 Nov 2021 22:27:41 +0100 Subject: [PATCH 08/42] updates go & sarama. also updates test certificates to use SAN field. --- .github/workflows/go.yml | 2 +- Makefile | 2 +- go.mod | 26 ++++- go.sum | 129 ++++++++++++---------- test-dependencies.yml | 5 +- test-secrets/broker1-ca1-signed.crt | 33 +++--- test-secrets/broker1.csr | 28 ++--- test-secrets/create-certs.sh | 14 +-- test-secrets/kafka.broker1.keystore.jks | Bin 4121 -> 4554 bytes test-secrets/kafka.broker1.truststore.jks | Bin 1034 -> 1238 bytes test-secrets/kt-test.crt | 33 +++--- test-secrets/kt-test.csr | 28 ++--- test-secrets/kt-test.key | 50 ++++----- test-secrets/snakeoil-ca-1.crt | 34 +++--- test-secrets/snakeoil-ca-1.key | 56 +++++----- test-secrets/snakeoil-ca-1.srl | 2 +- 16 files changed, 240 insertions(+), 202 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 48f44e6..ce35b6d 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: ^1.15 + go-version: ^1.17 - name: Check out code into the Go module directory uses: actions/checkout@v2 diff --git a/Makefile b/Makefile index 0255826..9ad1eb9 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ release-darwin: release: testing clean release-linux release-darwin dep-up: - docker-compose -f ./test-dependencies.yml up -d --remove-orphan + docker-compose -f ./test-dependencies.yml up -d sleep 4 dep-down: diff --git a/go.mod b/go.mod index 7c992ac..9a82d80 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,31 @@ module github.com/fgeller/kt require ( - github.com/Shopify/sarama v1.26.1 + github.com/Shopify/sarama v1.30.0 github.com/davecgh/go-spew v1.1.1 + github.com/stretchr/testify v1.7.0 + golang.org/x/crypto v0.0.0-20210920023735-84f357641f63 +) + +require ( + github.com/eapache/go-resiliency v1.2.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect + github.com/golang/snappy v0.0.4 // indirect + github.com/hashicorp/go-uuid v1.0.2 // indirect + github.com/jcmturner/aescts/v2 v2.0.0 // indirect + github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect + github.com/jcmturner/gofork v1.0.0 // indirect + github.com/jcmturner/gokrb5/v8 v8.4.2 // indirect + github.com/jcmturner/rpc/v2 v2.0.3 // indirect + github.com/klauspost/compress v1.13.6 // indirect + github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/testify v1.5.1 - golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + golang.org/x/net v0.0.0-20210917221730-978cfadd31cf // indirect + golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) -go 1.15 +go 1.17 diff --git a/go.sum b/go.sum index 90fd235..980b66f 100644 --- a/go.sum +++ b/go.sum @@ -1,16 +1,13 @@ -github.com/Shopify/sarama v1.19.0 h1:9oksLxC6uxVPHPVYUmq6xhr1BOF/hHobWH2UzO67z1s= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/sarama v1.26.1 h1:3jnfWKD7gVwbB1KSy/lE0szA9duPuSFLViK0o/d3DgA= -github.com/Shopify/sarama v1.26.1/go.mod h1:NbSGBSSndYaIhRcBtY9V0U7AyH+x71bG668AuWys/yU= -github.com/Shopify/toxiproxy v2.1.3+incompatible h1:awiJqUYH4q4OmoBiRccJykjd7B+w0loJi2keSna4X/M= -github.com/Shopify/toxiproxy v2.1.3+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Shopify/sarama v1.30.0 h1:TOZL6r37xJBDEMLx4yjB77jxbZYXPaDow08TSK6vIL0= +github.com/Shopify/sarama v1.30.0/go.mod h1:zujlQQx1kzHsh4jfV1USnptCQrHAEZ2Hk8fTKCulPVs= +github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae h1:ePgznFqEG1v3AjMklnK8H7BSc++FDSo7xfK9K7Af+0Y= +github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae/go.mod h1:/cvHQkZ1fst0EmZnA5dFtiQdWCNCFYzb+uE2vqVgvx0= +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.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 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/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= @@ -19,69 +16,89 @@ github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= +github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= +github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= +github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= -github.com/klauspost/compress v1.9.8 h1:VMAMUUOh+gaxKTMk+zqbjsSjsIcUcL/LF4o63i82QyA= -github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= +github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= +github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA= +github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= +github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= +github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= +github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4 v2.4.1+incompatible h1:mFe7ttWaflA46Mhqh+jUfjp2qTbPYxLB2/OyBppH9dg= -github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= 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/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165 h1:nkcn14uNmFEuGCb2mBZbBb24RdNRL08b/wb+xBOYpuk= -github.com/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ= -github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4 h1:Vk3wNqEZwyGyei9yq5ekj7frek2u7HUfffJ1/opblzc= -golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= +github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72 h1:+ELyKg6m8UBf0nPFSqD0mi7zUfwPyXo23HNjMnXPz7w= -golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210920023735-84f357641f63 h1:kETrAMYZq6WVGPa8IIixL0CaEcIUNi+1WX7grUoi3y8= +golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e h1:EfdBzeKbFSvOjoIqSZcfS8wp0FBLokGBEs9lz1OtSg0= -golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ= +golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +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/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +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= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= -gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= -gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= -gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= -gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= -gopkg.in/jcmturner/gokrb5.v7 v7.5.0 h1:a9tsXlIDD9SKxotJMK3niV7rPZAJeX2aD/0yg3qlIrg= -gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= -gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU= -gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= 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.v2 v2.2.3/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= diff --git a/test-dependencies.yml b/test-dependencies.yml index e27c3c2..76a7cb6 100644 --- a/test-dependencies.yml +++ b/test-dependencies.yml @@ -2,7 +2,7 @@ version: '2' services: zookeeper-1: - image: confluentinc/cp-zookeeper:5.4.1 + image: confluentinc/cp-zookeeper:latest ports: - "2181:2181" environment: @@ -10,7 +10,7 @@ services: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka-1: - image: confluentinc/cp-kafka:5.4.1 + image: confluentinc/cp-kafka:latest depends_on: - zookeeper-1 ports: @@ -34,3 +34,4 @@ services: volumes: - /var/run/docker.sock:/var/run/docker.sock - ./test-secrets/:/etc/kafka/secrets + diff --git a/test-secrets/broker1-ca1-signed.crt b/test-secrets/broker1-ca1-signed.crt index e45656b..d9bda95 100644 --- a/test-secrets/broker1-ca1-signed.crt +++ b/test-secrets/broker1-ca1-signed.crt @@ -1,18 +1,19 @@ -----BEGIN CERTIFICATE----- -MIIC3DCCAcQCCQCNa2hkDfzbrDANBgkqhkiG9w0BAQUFADAwMRIwEAYDVQQDDAls -b2NhbGhvc3QxDTALBgNVBAsMBFRFU1QxCzAJBgNVBAoMAktUMB4XDTIwMDMxNTE2 -NDUzOVoXDTQ3MDczMTE2NDUzOVowMDELMAkGA1UEChMCS1QxDTALBgNVBAsTBFRF -U1QxEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAIdPkDan7cbUIqhNrATm1ecAn77fzRV+bM4RurA5KVb4IJQEuV6A//5f -/dqXpXyhi8EXW+39vq7kMExfr18adWKKIlotZLAokuI2fGWAx18oNXJGIR5R9YDw -vIAcFVrhijWuJaMMsN0wJ9wWOYuCgNPCGOVCmEqiakL8YfKxdedNyAAjfozuJ2VG -9oiZsLI14IulZUf29e+Qsca0Y/oJfaQEoRxd3k+0wzdcm2BuH2uDbv5d1O7O4OBd -qcdOHeLFV71OgBYbPlAMUkepghbgvdp3sx99RmUa9pw7xdbKI8EK81fc6JC9Mjs0 -vnszBOkhB5GNdyYAZ6QuQZSAbRXpI00CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -Xz/bmZIrPCwRCZG66TJnluI2ddJq2J0ywscBwlFlJqYFKRKJOM/5tvWoXYWxHsJt -A6IHGhQEKax1I35RWzvbnYblrmwE5l/kKIEbU7y6GFDRiiUr4DQ/QxYJrwTUYORi -vScHdhdMf9reqBAbIDhPOsIFXF94XgJb+kBDdcy3KETDyiOUd7zeZp9YBZWbKbZb -YZaPSava8NrP8fVKV19N55qP4XSMQK/oqWKj6wHQrslNbsF3vFx7cSrMrE+jANMX -OGvxSsRRUDmy8EG20gKaOtgg93rtKApWii0Pb0+MEQ1tuzOu6+qGNcay0kllXE/B -ZMnt0CsKhZG5MVFJz+IdfQ== +MIIDBjCCAe6gAwIBAgIUQLTARfFpFqJ02GybrjTPme2jKzYwDQYJKoZIhvcNAQEL +BQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNUMQswCQYDVQQK +DAJLVDAeFw0yMTExMTgyMTI0MTdaFw00OTA0MDQyMTI0MTdaMDAxCzAJBgNVBAoT +AktUMQ0wCwYDVQQLEwRURVNUMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDd4OJqo0bLyV071DOTC9GirhiMXnfo8zcz +0TX8pVquCv34sPTIRJHdJQ6LGVG0nhpwPc7sr0ws7sadpVj043FBeDizxc4G4boP +1c/yITGm7FVNcNJ5xj/jO5jnrLnI0ObjpT+IuLzX6Gb3HuheH1Dik8s1PzHW/YOC +wURCaIrRe4b/1w2Mor5t9BFSSQaVRXqSeEVukU2HCLFoe237FuXGGb+ojLvEpxQR +N3598RvCgCpJHlX9nVuhOedLvI35uf89ycfcyEj2hrZzLgybLcABazkDlGTgGQFx +BuVOy/qvtH4bAvitbo/MNjYWnOfIjYBL9MBBe5J39a2jM56iN18NAgMBAAGjGDAW +MBQGA1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAPlj6zu1d +G2aCB4v0cs+kftDhmBTbIj+QuyoSbjcqclbFDy6duxAOspjzqckCFsRPQE1b3LfE +l7ml0Q0W3E+DgpRilH65vSmMOUxoJNF+ZnOxgrHk47SKhS6MyVT+ixg1dx/nwfNh ++HLMdthMs7csgbRkmckXkWlfhL3SUQPlqEho11rgArFIg54Qy6sLiZkeH7P+JV59 +QNXPbaU3wcWfy8IqHe4+CAysZfhYgyJGcbWzLVQONArrPeOhvwg5RaacVBv5LFdN +SQK56P8JatNwuNmyF6ohdhK32H0DSJAThRtf+FormFVcoM54pw74HOvvzqtW5Y+A +4xVXYYw1WXKVpA== -----END CERTIFICATE----- diff --git a/test-secrets/broker1.csr b/test-secrets/broker1.csr index fa6d1d7..5133a63 100644 --- a/test-secrets/broker1.csr +++ b/test-secrets/broker1.csr @@ -1,17 +1,17 @@ -----BEGIN NEW CERTIFICATE REQUEST----- MIICpTCCAY0CAQAwMDELMAkGA1UEChMCS1QxDTALBgNVBAsTBFRFU1QxEjAQBgNV -BAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIdP -kDan7cbUIqhNrATm1ecAn77fzRV+bM4RurA5KVb4IJQEuV6A//5f/dqXpXyhi8EX -W+39vq7kMExfr18adWKKIlotZLAokuI2fGWAx18oNXJGIR5R9YDwvIAcFVrhijWu -JaMMsN0wJ9wWOYuCgNPCGOVCmEqiakL8YfKxdedNyAAjfozuJ2VG9oiZsLI14Iul -ZUf29e+Qsca0Y/oJfaQEoRxd3k+0wzdcm2BuH2uDbv5d1O7O4OBdqcdOHeLFV71O -gBYbPlAMUkepghbgvdp3sx99RmUa9pw7xdbKI8EK81fc6JC9Mjs0vnszBOkhB5GN -dyYAZ6QuQZSAbRXpI00CAwEAAaAwMC4GCSqGSIb3DQEJDjEhMB8wHQYDVR0OBBYE -FLBJ0Dx9eIFyda6ZQNaZm8UF/wfCMA0GCSqGSIb3DQEBCwUAA4IBAQBwIw/PRn2q -mkqEmau91wlPb/X37O+eQopW6QZ1p4GwMXYtmHaEv1fS5OjhRfP/9le7D9NviY7S -o6irFZAOGIZ7SwbRMHFR+9oKGKEn5yVRImggUtq5GjOscQ/WDdw3M4tPe52EdLrw -xsm5u406fd+yCoBcuLBJcJJDBAwuNQzNna2Kz8P9y8kcpCCVsmRrFpwnhkN/STN7 -QqM1LBOUtlfK+mqnWdqcxGxrnoaFyTDtHsnfMRQqw7MpsB5jPJUB+6cqrhOps6Wn -M38C9vCz9n7qpoa3Aj9m7E6LMFgFXsXRNKXg0ykzD85evCcDg/hDnpwOJwatfsv2 -qTltTGrKOMUJ +BAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN3g +4mqjRsvJXTvUM5ML0aKuGIxed+jzNzPRNfylWq4K/fiw9MhEkd0lDosZUbSeGnA9 +zuyvTCzuxp2lWPTjcUF4OLPFzgbhug/Vz/IhMabsVU1w0nnGP+M7mOesucjQ5uOl +P4i4vNfoZvce6F4fUOKTyzU/Mdb9g4LBREJoitF7hv/XDYyivm30EVJJBpVFepJ4 +RW6RTYcIsWh7bfsW5cYZv6iMu8SnFBE3fn3xG8KAKkkeVf2dW6E550u8jfm5/z3J +x9zISPaGtnMuDJstwAFrOQOUZOAZAXEG5U7L+q+0fhsC+K1uj8w2Nhac58iNgEv0 +wEF7knf1raMznqI3Xw0CAwEAAaAwMC4GCSqGSIb3DQEJDjEhMB8wHQYDVR0OBBYE +FHHoMG6vGRAYMB4rvjLJpquFMG7lMA0GCSqGSIb3DQEBCwUAA4IBAQA20Dtm38lA +mxDH+0tMDATOZC21gCRvLVAWKUXjiaJE3kLSBpj3ftQvf4lMX/+8/aRrp81l9lxi +sLDd4EqdiGTy02GlFq6agvWUCWAaTV60XDU2KEKuk0DHqaRtvvx77eQGtvHkDnhv +3HSNOl4LfRrgt+M33Ge/OaKQKg18gvXwufH8MyLB6n81f41TF4gDcMIhXxip6/QL +atBdi8FTOakiaMeYEIzCwEyp/sAxBqyY8rkBe9C63RXUJ/Z6CDHsxWfd7W2ohBsx +YZNSc2kCSAL2EgilLMNVBazBPh/gYuvT9EkIgdjMCjizL2CtK0QUhvd3o0Ji73P4 +FZZSKXmmAxPP -----END NEW CERTIFICATE REQUEST----- diff --git a/test-secrets/create-certs.sh b/test-secrets/create-certs.sh index 0119946..f4e387e 100755 --- a/test-secrets/create-certs.sh +++ b/test-secrets/create-certs.sh @@ -6,27 +6,25 @@ set -o nounset \ -o xtrace # Generate CA key -openssl req -new -x509 -keyout snakeoil-ca-1.key -out snakeoil-ca-1.crt -days 365 -subj '/CN=localhost/OU=TEST/O=KT' -passin pass:ktktkt -passout pass:ktktkt +openssl req -new -x509 -keyout snakeoil-ca-1.key -out snakeoil-ca-1.crt -days 365 -subj '/CN=localhost/OU=TEST/O=KT' -addext 'subjectAltName = DNS:localhost' -passin pass:ktktkt -passout pass:ktktkt for i in broker1 do echo $i + echo ">> 0 <<" keytool -genkey -noprompt \ -alias $i \ -dname "CN=localhost, OU=TEST, O=KT" \ + -ext "SAN=DNS:localhost" \ -keystore kafka.$i.keystore.jks \ -keyalg RSA \ -storepass ktktkt \ -keypass ktktkt - # Create CSR, sign the key and import back into keystore keytool -keystore kafka.$i.keystore.jks -alias $i -certreq -file $i.csr -storepass ktktkt -keypass ktktkt - - openssl x509 -req -CA snakeoil-ca-1.crt -CAkey snakeoil-ca-1.key -in $i.csr -out $i-ca1-signed.crt -days 9999 -CAcreateserial -passin pass:ktktkt - + openssl x509 -req -extfile <(printf "subjectAltName=DNS:localhost") -CA snakeoil-ca-1.crt -CAkey snakeoil-ca-1.key -in $i.csr -out $i-ca1-signed.crt -days 9999 -CAcreateserial -passin pass:ktktkt keytool -keystore kafka.$i.keystore.jks -alias CARoot -import -file snakeoil-ca-1.crt -storepass ktktkt -keypass ktktkt keytool -keystore kafka.$i.keystore.jks -alias $i -import -file $i-ca1-signed.crt -storepass ktktkt -keypass ktktkt - # Create truststore and import the CA cert. keytool -keystore kafka.$i.truststore.jks -alias CARoot -import -file snakeoil-ca-1.crt -storepass ktktkt -keypass ktktkt @@ -37,5 +35,5 @@ done # generate public/private key pair for kt openssl genrsa -out kt-test.key 2048 -openssl req -new -key kt-test.key -out kt-test.csr -subj '/CN=localhost/OU=TEST/O=KT' -openssl x509 -req -days 9999 -in kt-test.csr -CA snakeoil-ca-1.crt -CAkey snakeoil-ca-1.key -CAcreateserial -out kt-test.crt +openssl req -new -key kt-test.key -out kt-test.csr -subj '/CN=localhost/OU=TEST/O=KT' -addext 'subjectAltName = DNS:localhost' +openssl x509 -req -extfile <(printf "subjectAltName=DNS:localhost") -days 9999 -in kt-test.csr -CA snakeoil-ca-1.crt -CAkey snakeoil-ca-1.key -CAcreateserial -out kt-test.crt diff --git a/test-secrets/kafka.broker1.keystore.jks b/test-secrets/kafka.broker1.keystore.jks index be44180accc5cfb04de20612ea85598ac17b61b1..78eb9f3c6fb05f6f44713eaa3ca810a4a833e966 100644 GIT binary patch literal 4554 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 WM)|UNZ!|6Jlj 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 I0s{etpk*bj-T(jq diff --git a/test-secrets/kafka.broker1.truststore.jks b/test-secrets/kafka.broker1.truststore.jks index d66789decc7187ecc924303bf4303ec2cdc5b4f3..076ea1b9302ce31a783bc0ea8d0f36d3aa887bc4 100644 GIT binary patch literal 1238 zcmV;{1S$J4f&|h60Ru3C1bhYwDuzgg_YDCD0ic2eZ3Kb@X)uBWWiWySVFn2*hDe6@ z4FLxRpn?QaFoFb50s#Opf&@nf2`Yw2hW8Bt2LUi<1_>&LNQU+thDZTr0|Wso1Q4Oq#J(s<4U5JW&>khI7(0N11JJ`NWB%qMg)C`tjS5S@*L2ER z=Japx7LSi1n8JP2$P(kYAV);aVig(?0>`O2p!1a(cz0@Dk3tu>h1!+a$#64AVFDlq zp>9Mi?G8^Q49q|nd{zcSPN-9r5-(Au==AmpXiEJgWU+u~)Ny-nsw%7Bii$llt?m!f zWuv>Q=4#p~S~u-q>$&gi5HDaq!|j>H3DoLOp937=<}oeD8TaQ~f7~O4WLhL~%o~sP z;&N1btjG;QF&CL*x@Mh&((jTn6!WNvH)cd~U7*>EBHtieMA{ScXU3tOG5}{m*3;rd zQ|YR>lQY=@m^#w>P&b^J5$2gDeiLm_sb>6z@UhPXK#j2c33_+!zQT%(6D4H!Bs>Q& zR#8KLjWb&Fx1rm`dRa-}5E2TNd2~0{H=ddEa?1RqORRDXY(JSf)a7+Iz1kn%vIvbi z$UYmt@yQ0yjyocjih_fl8bYC6^f9hERq@@f6rny7sJi?3g{z2_GXg6HVutkuISm^C zeI1`@U#JycK4N4mbDyNN1<5B9UV!n@NJvmqS~=(V+g}zIe0XwZ!<`;5U``uP-Bi%c zz_i;;R*a-cFG}QTMb0-{4u|S73}8cp3gF&xc=yDtgy7|EzTiTFwS3^#4b_g1il8v zErS`9F4?T)=%hGY)N(x;Q@g2kK{@01;5M~VFYvamPaq~|W*FNvVSELqmzsT`H#n+N zO*t`J%pa3tLOrvuaj*yexZf&LFcUEMIfiar!LTcL3`ox0TcUI8B(-&Bl&yvOx#66M z%dvf4pAdT3)(7e?iAW>U(F`)OcN)g=wTCOM?Wrz-Eb%x=hXP|Dx;#XdpY`rVK2B#gZJ@uF|FHA!lC^C-N}Bb3n>O!pSD`69HG1}3_o|Y zq!vW>&0xM&jDjplWGITJwg2H!HYq)3of|*%`8-+_)>W5%VzOozv|csuU9P_Td^TwT z4T9@l1C=&$s~5ydkj-FNC9O71OfpC00bcBEk|(?<%S=} zgG-82y+<02#-HrD(6e%I?H|x3VMI;@6gyJhBlKfa-Q!r5Xh*$42k_!+0|Ejk5KZMO Ay#N3J literal 1034 zcmV+l1oitcf&>Nv0Ru3C1HT3dDuzgg_YDCD0ic2dumpkwtT2KDs4#*9qy`BphDe6@ z4FLxRpn?OHFoFY-0s#Opf&+>M2`Yw2hW8Bt2LUiC1_~;MNQU7hOB8yd|vfU++ zyvNu~Yj8o_j-s0xq@A9pwHeFTgo1ATqd-XW!sw^pcBe4xl&j<7N^;C$8j(^=qJrGp zT%dJr3@gOfN&@!f*WDlMXP42i&CO;H6q_W|M^v;K=$d%*<+OGS*%M*B2(#@P+^Q6` z#@atwL}}}?L+S}lj6Ead+(V2lv#5Ak*!=U?6c4A7lqiZr^OA zR;a%ii){hcYgfEzZR%#A6X}?Hf;E;`Kb*JaC+OzQ+<+L)1fsoK=nL0C!YBTP%F0GE z4H?~fUNZ@a`~QaJiv2CZHaCJa+HJTL;y}~@$eRW zI9Em5`UPoX8FBneZ`VM3$UCC&lu@(3{?$8Pl@Au2v@XmB@Xq4T7+}06qU?VhLX8M6 zL{T4MAcurNL_AutIB1uG5% z0vZJX1Qfo6{g1Cs`6giLtI)`zvOKZh$YKN(p&|S`TV6pnUUS7Er2$7|Kh$Ar0s{et Epu#8Wi~s-t diff --git a/test-secrets/kt-test.crt b/test-secrets/kt-test.crt index e4a8e02..f1697f9 100644 --- a/test-secrets/kt-test.crt +++ b/test-secrets/kt-test.crt @@ -1,18 +1,19 @@ -----BEGIN CERTIFICATE----- -MIIC3DCCAcQCCQCNa2hkDfzbrTANBgkqhkiG9w0BAQUFADAwMRIwEAYDVQQDDAls -b2NhbGhvc3QxDTALBgNVBAsMBFRFU1QxCzAJBgNVBAoMAktUMB4XDTIwMDMxNTE2 -NDU0NVoXDTQ3MDczMTE2NDU0NVowMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYD -VQQLDARURVNUMQswCQYDVQQKDAJLVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAKyCy6Fb+44nS3hywRL4lIUe8vGklgiDevtKFlSwn/0y2Bf4P6ubFRmi -f9HjUfuN+iVuSKBqibEbCNI8MkhSUnSS80t5AgXfINxJUW+N+wxMFON++CE/y4TB -D4sc1JmHhnHp99f3Mc7v3rbjnG9pHOIfF9MRxuxo7oYg46pV4M59wE+eN3XFvt+1 -IXyaxLVNCFueyKA7IE5ECWECJ76JpbGjnvNNJTpcuIkoKk58cGbwvnKDtaVnZVMf -ImDyVpth1Pao1iMeNnOKGpSzvEELD3dCOGzdi9vEo12Bj+7C6y4gV7YdCGod18LN -QYUjAkvz5gTmwb9dLPlmbsAj9wrKQNUCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -My95xuxadAIm+oY8OwDpO39g7TyvyHhFC9afY5/oHhZGKXkexJQMOlH+Y6P2+12D -QcP2i6XTFVCXCQqWtULPz4jv2NvFda1Jv/DnVZs62hqeI3TZeY0kdDCKl1nud/sK -9hsaenQhSrD3n9XwhkBWJaGE0bvFniyeuRfVD+b3PoTFbs/Bf8p2kKIsBaBY6Nli -bNE0fM2H0awGNeh/gqruVoMK/hrfOdxpgpUNKfW3OJefBSvB9VmqjhM7IkWmZxsX -LmZ5uthOFSzQBJMdjovAjn/QXB0x45IpmJMzqAGyapz6+JYgNrIPk2fQYcDGXJ3a -woB5/2gqRuNRqM+CI/TMuQ== +MIIDBjCCAe6gAwIBAgIUQLTARfFpFqJ02GybrjTPme2jKzcwDQYJKoZIhvcNAQEL +BQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNUMQswCQYDVQQK +DAJLVDAeFw0yMTExMTgyMTI0MjNaFw00OTA0MDQyMTI0MjNaMDAxEjAQBgNVBAMM +CWxvY2FsaG9zdDENMAsGA1UECwwEVEVTVDELMAkGA1UECgwCS1QwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9SK4B7cRCRdz69snq3ucd4oo0eqFvXYfO +iKfGAcAtGc4rhmqBYYILvZMKqE+SWWQvz0k/vZ/S3UpvSSdYH3gducJ235Durqn5 +5wzEoRvoZnDBB97b23mWrbmsLnzhQ+4pfLJ5i4k95H+Uv43fagj2fiKIBGnp6WW0 +5w8zpI/98/bEQpR49U87m2oEQ+SAymRN3kSbNjiCw2JAbkfWBbAPatp0TRwVJp37 +2/X0G47EmMuWssZwVips7M0b5sncoRaz+Mx82N50H4eDydGxRu2hy5TJsi1VrlEH +IS8wKsIIrROuhuudQUb4EGtZmMWBdoT9DLELOtRukYJVtoxOx2a7AgMBAAGjGDAW +MBQGA1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEANidhoETV +/wTfQOs2b8boTd8O62YCtCCFowgzzUYt/dDGE6s5bZN7zzZ6kz7TFuIoVvsedXzu +RZDkzpBfPu1v0drAh5J5RnFnyv8sx6OctN6Z0LtwxlNB5hbheMqhLa6XLQttzgLB +pF5H7n/eE5C5z85OITIgOc7K8ZIW0NVDlpsbAeGtaxSV2E9Vc5p1/QdYkJfHBQ7G +yuVj49XhMjgWtNZKmGabmoLLeYMbZBjDCIAZzvbjnnismFq+JIomkAaqHaAqtfuq +pEAsoJfIbkFqasfRpa/13LCSRCWuS5pbaqx23U6SXUiCGHWSflvFRocfVcECahnr +XynNQOAi5VWPTA== -----END CERTIFICATE----- diff --git a/test-secrets/kt-test.csr b/test-secrets/kt-test.csr index 8431fcd..52c7275 100644 --- a/test-secrets/kt-test.csr +++ b/test-secrets/kt-test.csr @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE REQUEST----- -MIICdTCCAV0CAQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNU -MQswCQYDVQQKDAJLVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKyC -y6Fb+44nS3hywRL4lIUe8vGklgiDevtKFlSwn/0y2Bf4P6ubFRmif9HjUfuN+iVu -SKBqibEbCNI8MkhSUnSS80t5AgXfINxJUW+N+wxMFON++CE/y4TBD4sc1JmHhnHp -99f3Mc7v3rbjnG9pHOIfF9MRxuxo7oYg46pV4M59wE+eN3XFvt+1IXyaxLVNCFue -yKA7IE5ECWECJ76JpbGjnvNNJTpcuIkoKk58cGbwvnKDtaVnZVMfImDyVpth1Pao -1iMeNnOKGpSzvEELD3dCOGzdi9vEo12Bj+7C6y4gV7YdCGod18LNQYUjAkvz5gTm -wb9dLPlmbsAj9wrKQNUCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQBcSHtoHbtp -bnti9lgsLwlJFnyAw6L873pS26tyzXd6yAXjx55CeqgtPOw5LzGTSnkGM6ktJnGr -l6VbeoXXDFyUlJIydrMo1x5UM/egEdy0ci59hi5yVIpuGewKnkVfroPfT/8dapYI -jegkQLMRCTAL/lvQ/WNd1To/yaUNdunviDZ5A1DOTGumFwKGqdxacJsuNL8mhFPJ -JNEYhYDn9HvPJLc1RWMUozJstF7poXhzRCRHTtRkxjR8AEXDsV/2ObZKdJocY9Io -WoXzLn+B9kvwlFDMVIQuOp+d609jDKEz0sDE9OpD/2NPWBG6OqD4urqDe/bMWAlv -LDCnw6/IxX1i +MIICnDCCAYQCAQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNU +MQswCQYDVQQKDAJLVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL1I +rgHtxEJF3Pr2yere5x3iijR6oW9dh86Ip8YBwC0ZziuGaoFhggu9kwqoT5JZZC/P +ST+9n9LdSm9JJ1gfeB25wnbfkO6uqfnnDMShG+hmcMEH3tvbeZatuawufOFD7il8 +snmLiT3kf5S/jd9qCPZ+IogEaenpZbTnDzOkj/3z9sRClHj1TzubagRD5IDKZE3e +RJs2OILDYkBuR9YFsA9q2nRNHBUmnfvb9fQbjsSYy5ayxnBWKmzszRvmydyhFrP4 +zHzY3nQfh4PJ0bFG7aHLlMmyLVWuUQchLzAqwgitE66G651BRvgQa1mYxYF2hP0M +sQs61G6RglW2jE7HZrsCAwEAAaAnMCUGCSqGSIb3DQEJDjEYMBYwFAYDVR0RBA0w +C4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQCCr4wpCaFQolGsIxUV6K9p +gIVsxCT3GGMaW+xulH+q+UV+VVH9CAkbkL7BJZ75HEsmJs2foZrI63aiS0QMRc0M +QL+TQC0c2m/c/1ck0gsiIFdG8umUXkkQDvffrYW/o/Lz+hUcfsAhBXGWKHh+1gki +xbk3+0EH3GubTYhADaOEPsemc1rnqp4FFGJ82fPqHpMXZKVoet8alyygp/rVpQ+V +460r51vGNRJFGmUp5MUBRDGAsVJa0YhR7UE0GiUQXom90mcYLRwjHt2XXhQwvJua +ek2WfBxfKrugH5DrI2byPanVrtzA3mWOLhosFGgNK59pKVZTqqnNSwUJpw+vKJxI -----END CERTIFICATE REQUEST----- diff --git a/test-secrets/kt-test.key b/test-secrets/kt-test.key index 76ebdda..7e1d764 100644 --- a/test-secrets/kt-test.key +++ b/test-secrets/kt-test.key @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/test-secrets/snakeoil-ca-1.crt b/test-secrets/snakeoil-ca-1.crt index bc1f46c..14fcb6a 100644 --- a/test-secrets/snakeoil-ca-1.crt +++ b/test-secrets/snakeoil-ca-1.crt @@ -1,18 +1,20 @@ -----BEGIN CERTIFICATE----- -MIIC3DCCAcQCCQDIiaispcygITANBgkqhkiG9w0BAQsFADAwMRIwEAYDVQQDDAls -b2NhbGhvc3QxDTALBgNVBAsMBFRFU1QxCzAJBgNVBAoMAktUMB4XDTIwMDMxNTE2 -NDUzN1oXDTIxMDMxNTE2NDUzN1owMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYD -VQQLDARURVNUMQswCQYDVQQKDAJLVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAN7iSLcIEBAsPVXzh3wo7ptstwmLVbPeyqRaK4G1wtLKoX6blQz0iE8M -+YCY5T7OGQ4DlB8I982al0LF4tTjcN5b7YWbYbuqYnjkqRpQFN9eUAuzVqGQNqBJ -V3jLwINIOr5acLqvJz23ge/pjsnNU15queniYpn+k5csemSyVAREU4xlsX837QnC -zp0idheOynSOZ4dFEmKnKJxL9Fv4A8apO1kd6QWov3mOoP1MElHQik5c2cGeBhO7 -RFRBo2HjiRXyqGOT29RiQ5vIPOVs43ifuNZULWFGW1MRo8nypzjXc4ZoSGEE7xKz -OhoQOcoVdniG1p3wgpWCjjEbIiH1hhUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA -bDQxsFYBy7CtVvFPCuGHXHKHQwiJkGrn6Fxiwn4jFrrPln5CS0LrpBscUEgvYWD6 -7R5CGxISIVKoG0Yq32ZKMCZmfpCD0mkFG4zDPKtk6Zf+MSKiV35CMUeBzlq3jfVU -oCuSwsV131b07Ep3zxzwIpXUDEdwdSBwZJ3TDah6NIyO0xH5tMBMQ2rU0IjW8GVV -eiJBLG8YmLCPzooOnylfI9ZRePd1rAkZSJJPbizaztTGc0C7t569QzeM2xZrCXO/ -GuQ1CRvUnEfQ8MWN/OTtPOjzNk2kTAJATS/x5hDYpCcKsG1IsYAg7E/bTDVEMhZB -3ynZQmsTLJaEx+M/K5LfqA== +MIIDVzCCAj+gAwIBAgIUGfgSlwWvLQijaHYA8GNp+QY/5DwwDQYJKoZIhvcNAQEL +BQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNUMQswCQYDVQQK +DAJLVDAeFw0yMTExMTgyMTI0MTZaFw0yMjExMTgyMTI0MTZaMDAxEjAQBgNVBAMM +CWxvY2FsaG9zdDENMAsGA1UECwwEVEVTVDELMAkGA1UECgwCS1QwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSt7T2l70ifNx5+2MIIr/fW3iBMd2nPVn3 +HEbDl0YzVP64perRpWjpRaVCCqhn73hm3doKA3xsU49YoRn/Pg0wWyepichpE1XZ +2KYld+HoSFxBAIdre+wR4Vmu+6hF6vgZNNY1bWYnYESj9uwOp3NiNJS1uwkwnpMy +NnL0TBqj6HDWZM3lmbL5RjFmjvRGqau8CB/dg1r3Uuu1FtnMUC/hHgK8ttlQnyam +fyfbw9TWZRGp+YTeGBTJiGlIB/pNU1AjSIkHOH1MnRfjoBoDKTK4rMGphL/maWrQ +i5vA9DPQQj6mu04I+PYMJXJ7MD54qSRclG0reFIyTMi8lDSuuYM5AgMBAAGjaTBn +MB0GA1UdDgQWBBSxZlal/4ESTcZOcmPiMipmM0twUzAfBgNVHSMEGDAWgBSxZlal +/4ESTcZOcmPiMipmM0twUzAPBgNVHRMBAf8EBTADAQH/MBQGA1UdEQQNMAuCCWxv +Y2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAiqAXdwHUX/yHkDXaqUZ/1Na77gdt +5HiZYUHVVKj3pXP2Bxt48qiNzixNxLBwdOGjjTw3XcVq1Aew9QN2Q/ctd4kpVmUI +IP9gHTVWzoIgv1gzvvr3hz3+yl5ZjCMNEjbrVIbpk6Q0KJLIPbVsUMxljmK85NSD +PDoeVrNu9u5AoETA1v3JdKi4fkGpyA0+hFEm/N+EeVXTzd919MYZEGjya6qwRvI0 +MEtIM9tgEERyvaa3pUXr5wrrZoQSWmf5D9FQFRhBHUc7++ecBKVvGKaXjUP0U2OK +5IL2Ot3yG9kEFH8j87mHL/LKnPEqL02t8trCPZIo9PMznQ3hXSgL7mfIEw== -----END CERTIFICATE----- diff --git a/test-secrets/snakeoil-ca-1.key b/test-secrets/snakeoil-ca-1.key index a6340c6..ac85997 100644 --- a/test-secrets/snakeoil-ca-1.key +++ b/test-secrets/snakeoil-ca-1.key @@ -1,30 +1,30 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIEb15MMBrel0CAggA -MB0GCWCGSAFlAwQBKgQQatNgtaHFXd4Kvf6cwWWDzwSCBNDHDk0GMZ2GH1S5pifX -sA+yR4aCkNAIxpwVCo1jeSd4OAwD+j1+Gi2kcbE6W4TOv/b+pDnUErW64t/9lTl1 -mTLmjLezO+uJfhDFuq+5arVQaLKgE/gFbaWYlRLPXfYjtk8fjkPl7sBa4UPKRi4j -6/ZaW6AVXK971m3BL56BwzCBmLlhpa0wVJc+tBbezrSiVvpYSLTDR1Vsxl6p2kKy -q9pz43AfhWeNSErPYaqPvSBHoBIQHZs9boDE9asZkQE2WjgCFaDtPi+DSqQPt5Bi -xxRO3IO+HUiZX+tF6yz0F/IjBdlFwRKzyjk6iB+QpmiXnFECasAZo34pZyC661+N -AP4Lux9MbwdqnoWFuzcJTf4oS1Ns8iJu0joZg1iC04ncRPdcOKfXZpOEA1nVlUIM -FpEaxMt/aQINR1Wz6CZHbwmRjKaiD0d/SIGtfs+68jeSnwlNjEf2Pon+nQe0ZmDA -GxRJTgdTn4+FIudUeLYqnU9J+Dslr5+ogn+C6nApMduY/s6FuumZAEO3bSK3GbGb -YxQ1NZlEqjw/ZJkMdFNIE4IVRF/N6xcPTnE9S7CafqBEbO+SDJGZa7OESb26/3F5 -vlQ8zkurDblOequT3rZbx+jKhk7EXmAtmdJBV6Bom6GGj1FwPWyiw5xSRA1prQKM -XqMenH0cq+CLQgNBzOLPbjenPyBX0GxjmENFayf7ns6gV+unIVX1wyUQh2OEF3Ub -PTaC5XWTB83NePNy9T33Z46f4asZW7jfvZX4KOqUmM56YgsYVRZwIAGEGMvxmfoN -H2QHjBrj1jGQrZFIxT9UH3i9bjdJYPociaIgJD7m1ucbTsSqhPb+7W2oWIqG4eTE -/oQCzfS4tp51FFWdsGdz7M6zAGOlJL7TIPIPzMj/p8EZvWkjMFWvvu98zBcRXWwf -WpzJnUZXiSVA2f5kqYb8H0WS101sdjX0i2y1jindK9Fsr9QGihOGY4eXjg86KE9y -r109aP0hHufmZw/arZELmu4skniz7G8v6uh9FbrZbM2ykMIGJsdIqYAUeH9eAT5d -oIzY/UjL8hrUsSuTZumxqFjPQw3AzDF8ZfPhssZXEY3zm3Q+00umxIQydYjbCYtb -7NnJyK9lCkjOiRpVoupvyQQYaWF5KPplKfC8Rb/69tln9LGnZOhJKpUbdqb0V/Of -aPeknXj3M4zHxIc2YewpMlZbVbzuOCE5+wAqFk5XOr6QLyne7QS1xsLmW8q+d3dr -riQNh/95uNs2Sd8OfcXXDK72wFYFxNIxOi+MAUf5nMfrd2roPUDQdpC8Id1OXV2A -8gckHG+BmTgUcOXcUvFMfGMNc4bHsEqiBcl4rJYojlAdBhsb7gtJCZ23mBbRtng/ -9DvRJ4+pd03eUjOjtPccpFA9/uFGJXLCmDwmnSwPDVSbTqtyEnFhVCi8gcp7zCII -B4BjooJlJ6zoYbBiK8UbXM9Wgtrdvr2Ki+UkXooI19DN8xX2vOXwjTNW6w8+4ZC8 -31CsDqEe0X02a91b2isSn3iG2GSp7gLeXu6P4gXaXSa3FGkGpd9/yp/EVhiSK6qh -NC0w7rRyGcg9QtEK67qw6jDkSRBFoxX7JBFcDHBAHZv9QZ6PA/S4dhcoEnTP4tPZ -e7Thu+1dI70w03hqHdAy/Ptngw== +MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIIRv5EihzOf4CAggA +MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECP3WKRr/LDp4BIIEyGdYtrDZ2O33 +uWN539uy8cTCqcbwwgvH/0zYOqacKDvf6wAHAPI24lTIqo9yct0uv10j3sVSnQPe +3bcB6jZ90r9nLsKgUZG6RJB/JEDIgVt1VNyvSuc1dez3U2ypSRtqcDIYKcctRL4v +sbB1nOhMcF6gEHaRtI3Sggmh1QmJKK0fO9r6F7GCviF3ku9Ftv+EViJVcWC19HH/ +/aFWg/E44uGLvZUALVnq+ZeyiEFmWtVPKz9rFRjNnvoNw5LTJXV/wNBvSU/YpwRP +Z2Ct/89YTpMqRVwxWKf1rU0hMujbIBP43pXZwLioAZ7Gii6eighNYwxgLflv+0dX +4UL49380DPU7TIZaOcTjviVI4U0aTA9IUjNPYNY9qUSwyIo9nr4Uqik5nMLxN6nD +p5q9wWwljrSn+L7S27X853n0a1pqQGavLOHw2Zb1RHoymFFVyV6WcW/eJk3An2t4 +Ua1yKLVuIPZCaV1SQ6Ey2X8XjDUnNkXnYhrZlEv/BWO/hmx5KqMHyHu39WsEq2it +9B6DEmQ0n1+fZJAoD6Uu+QVsry9rRzAL4esGOty4npixr8XtGcNcWqrSlfuulPDy +MJdP2eHh5cVKbUUTKkCy0yscCzvKQsadc5fgQAKWJtQsvvinWf//N2pXOgXStnu/ +KAxlC5pE8scnlqUcxfucrhmZuqLfJQep9WOrmc+815u37lFezwCfgrQtl2hB+kcR +79JvCqLjtLcUg+boaa+Q2bN2V2OcoWpcy53z3yDi44yUFh1jnE+Y57J1KBm1AU5I +CTTrtVttgUDESKJ4Nj8HSMDxZ5px8sJ+a476R1vwm28N3G8Irp4CLXHrstOAfleO +E0aGCKpPS3ai9ci4sUX4IQtoWS2CWjwRKBwvz10zJdS0/F5J+fsIKHE3i09GH3SJ +rLy4177KpswrUwsSAjCPjXtf9uP57olR2WfS+GLfH0i9V71B1NqMdfpqt/Kg8qJH +/8nnq/C+MMmX/BBDkvyETIg0ene/rweswu+q1P26Px7g0EwKLhjNNZ+esNPAMK4S +RapRu50nkVqXvM0DISFqCG5RniaQ+TqXc8DmYo/v6qUZgoabuErCEUJ9+kA5Ylur +R5AltxodpFAVhjlbZLkFEAPsNaykr/RObb0AmQOzPofbL4zhDWhjoY5JiiuZIm4N +Ya3NG3wR/3UnGBZWjQPcrMTIRu22ynawKhXS5ne2F9xugMg6LV2Ju6YYeB7SEdjE +IiJZlWyMeYsHIkvutgqc55hsVVWkQt6SLZgR5h9A8GHm34O6TqR8Cn8zUULHy3MV +uKeyGwKhFMKIuN9sQERrE4To7HCdvUhds27UZGgKdacLJcfKSmHlXGSb3Jrz1e/L +0MHhE8Yp9haky7/yKDt+qTXh4fdGNWGVN8LLB3Gmdx6o7JCllIwRpf2JjKiuKW8Q +3yjtNteWM59Tc6eo0EEGSj6RV17iwI3oaJOTPsFa4T6bcivpvAzAfFSNXEh1oy54 +g8Q67mYCfu6soYwCrSsvNw/K+Dt6qDY9f/0KoMlbl4N4bBn4JIjo0+gfIKGd7XtR +eOFhOe0MwUltgSycXtIa+1W3N570sI2e/JoLHQT0aUVL+8ef4swGBcx1PQkKZ967 +CHsi4Fjvaqvc5ZFkPjjbZQ== -----END ENCRYPTED PRIVATE KEY----- diff --git a/test-secrets/snakeoil-ca-1.srl b/test-secrets/snakeoil-ca-1.srl index 1265185..d11f7f6 100644 --- a/test-secrets/snakeoil-ca-1.srl +++ b/test-secrets/snakeoil-ca-1.srl @@ -1 +1 @@ -8D6B68640DFCDBAD +40B4C045F16916A274D86C9BAE34CF99EDA32B37 From d0ca9d10cea09711c3332449836d7ae278983bb1 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 20 Nov 2021 01:35:08 +0100 Subject: [PATCH 09/42] don't ignore CN issue anymore. --- system_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/system_test.go b/system_test.go index 923063e..25f9bab 100644 --- a/system_test.go +++ b/system_test.go @@ -32,7 +32,6 @@ func (c *cmd) run(name string, args ...string) (int, string, string) { cmd.Env = os.Environ() cmd.Env = append(cmd.Env, fmt.Sprintf("%s=localhost:9092", ENV_BROKERS)) cmd.Env = append(cmd.Env, fmt.Sprintf("%s=test-secrets/auth.json", ENV_AUTH)) - cmd.Env = append(cmd.Env, fmt.Sprintf("GODEBUG=x509ignoreCN=0")) if len(c.in) > 0 { cmd.Stdin = strings.NewReader(c.in) From 165425dfc471fa06b24084ffa339fcb619bf7c69 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 20 Nov 2021 01:37:14 +0100 Subject: [PATCH 10/42] allows configuring kafka version via env var name: KT_KAFKA_VERSION Closes: #120 --- README.md | 2 +- common.go | 6 ++++++ system_test.go | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d89c680..1e66164 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Some reasons why you might be interested: * Modify consumer group offsets (e.g., resetting or manually setting offsets per topic and per partition). * JSON output for easy consumption with tools like [kp](https://github.com/echojc/kp) or [jq](https://stedolan.github.io/jq/). * JSON input to facilitate automation via tools like [jsonify](https://github.com/fgeller/jsonify). -* Configure brokers, topic and authentication via environment variables `KT_BROKERS`, `KT_TOPIC` and `KT_AUTH`. +* Configure brokers, topic, Kafka version and authentication via environment variables `KT_BROKERS`, `KT_TOPIC`, `KT_KAFKA_VERSION` and `KT_AUTH`. * Fast start up time. * No buffering of output. * Binary keys and payloads can be passed and presented in base64 or hex encoding. diff --git a/common.go b/common.go index 13bbda4..e143a0c 100644 --- a/common.go +++ b/common.go @@ -26,6 +26,7 @@ const ( ENV_ADMIN_TIMEOUT = "KT_ADMIN_TIMEOUT" ENV_BROKERS = "KT_BROKERS" ENV_TOPIC = "KT_TOPIC" + ENV_KAFKA_VERSION = "KT_KAFKA_VERSION" ) var ( @@ -45,6 +46,11 @@ func listenForInterrupt(q chan struct{}) { } func kafkaVersion(s string) sarama.KafkaVersion { + ev := os.Getenv(ENV_KAFKA_VERSION) + if s == "" && ev != "" { + s = ev + } + if s == "" { return sarama.V2_0_0_0 } diff --git a/system_test.go b/system_test.go index 25f9bab..80017cb 100644 --- a/system_test.go +++ b/system_test.go @@ -32,6 +32,7 @@ func (c *cmd) run(name string, args ...string) (int, string, string) { cmd.Env = os.Environ() cmd.Env = append(cmd.Env, fmt.Sprintf("%s=localhost:9092", ENV_BROKERS)) cmd.Env = append(cmd.Env, fmt.Sprintf("%s=test-secrets/auth.json", ENV_AUTH)) + cmd.Env = append(cmd.Env, fmt.Sprintf("%s=v3.0.0", ENV_KAFKA_VERSION)) if len(c.in) > 0 { cmd.Stdin = strings.NewReader(c.in) From 8b3904a9c5a83c7ecd98d2fb73f283a69b124eab Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 20 Nov 2021 01:37:21 +0100 Subject: [PATCH 11/42] defaults to kafka v3 --- common.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.go b/common.go index e143a0c..4e011b7 100644 --- a/common.go +++ b/common.go @@ -52,7 +52,7 @@ func kafkaVersion(s string) sarama.KafkaVersion { } if s == "" { - return sarama.V2_0_0_0 + return sarama.V3_0_0_0 } v, err := sarama.ParseKafkaVersion(strings.TrimPrefix(s, "v")) From 5ecef5cad70e5153be0f9b1de653f8bce0034e3b Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 22 Jan 2022 21:52:34 +0100 Subject: [PATCH 12/42] updates shopify/sarama to v1.31.0 --- go.mod | 12 ++++++------ go.sum | 53 ++++++++++++++++++++++++++++++----------------------- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/go.mod b/go.mod index 9a82d80..c412773 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ module github.com/fgeller/kt require ( - github.com/Shopify/sarama v1.30.0 + github.com/Shopify/sarama v1.31.0 github.com/davecgh/go-spew v1.1.1 github.com/stretchr/testify v1.7.0 - golang.org/x/crypto v0.0.0-20210920023735-84f357641f63 + golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce ) require ( @@ -18,13 +18,13 @@ require ( github.com/jcmturner/gofork v1.0.0 // indirect github.com/jcmturner/gokrb5/v8 v8.4.2 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect - github.com/klauspost/compress v1.13.6 // indirect + github.com/klauspost/compress v1.14.1 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - golang.org/x/net v0.0.0-20210917221730-978cfadd31cf // indirect - golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect + golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba // indirect + golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 // indirect + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 980b66f..435b8ad 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Shopify/sarama v1.30.0 h1:TOZL6r37xJBDEMLx4yjB77jxbZYXPaDow08TSK6vIL0= -github.com/Shopify/sarama v1.30.0/go.mod h1:zujlQQx1kzHsh4jfV1USnptCQrHAEZ2Hk8fTKCulPVs= -github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae h1:ePgznFqEG1v3AjMklnK8H7BSc++FDSo7xfK9K7Af+0Y= -github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae/go.mod h1:/cvHQkZ1fst0EmZnA5dFtiQdWCNCFYzb+uE2vqVgvx0= +github.com/Shopify/sarama v1.31.0 h1:gObk7jCPutDxf+E6GA5G21noAZsi1SvP9ftCQYqpzus= +github.com/Shopify/sarama v1.31.0/go.mod h1:BeW3gXRc/CxgAsrSly2RE9nIXUfC9ezb7QHBPVhvzjI= +github.com/Shopify/toxiproxy/v2 v2.3.0 h1:62YkpiP4bzdhKMH+6uC5E95y608k3zDwdzuBMsnn3uQ= +github.com/Shopify/toxiproxy/v2 v2.3.0/go.mod h1:KvQTtB6RjCJY4zqNJn7C7JDFgsG5uoHYDirfUfpIm0c= 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.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -16,12 +16,12 @@ github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= +github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= @@ -39,10 +39,12 @@ github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJz github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/klauspost/compress v1.14.1 h1:hLQYb23E8/fO+1u53d02A97a8UnsddcvYzq4ERRU4ds= +github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -53,6 +55,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -68,34 +72,37 @@ github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+ github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210920023735-84f357641f63 h1:kETrAMYZq6WVGPa8IIixL0CaEcIUNi+1WX7grUoi3y8= -golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce h1:Roh6XWxHFKrPgC/EQhVubSAGQ6Ozk6IdxHSzt1mR0EI= +golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ= -golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220105145211-5b0dc2dfae98/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba h1:6u6sik+bn/y7vILcYkK3iwTBWN7WtBvB0+SZswQnbf8= +golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= 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-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8pY/4yfcXrddB8qAbU0= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -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= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= 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= From 4dbfa6a5c62f34e8a94096c317382745dc72f0e2 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Mon, 18 Jul 2022 23:12:53 +0200 Subject: [PATCH 13/42] adds common info logging func. - less noisy output by default, -verbose for more noise cf #130 - standardizes the way fmt.Fprint* is used. - baseCmd allows for re-use, should use it for more --- admin.go | 39 +++++++++++++++++++++----- common.go | 74 +++++++++++++++++------------------------------- consume.go | 29 +++++++++---------- group.go | 37 +++++++++++------------- produce.go | 76 +++++++++++++++++++++++++++++++++----------------- system_test.go | 15 ++++++---- topic.go | 17 ++++++----- 7 files changed, 159 insertions(+), 128 deletions(-) diff --git a/admin.go b/admin.go index 9459ffb..b48cbc1 100644 --- a/admin.go +++ b/admin.go @@ -15,8 +15,9 @@ import ( ) type adminCmd struct { + baseCmd + brokers []string - verbose bool version sarama.KafkaVersion timeout *time.Duration auth authConfig @@ -45,14 +46,25 @@ type adminArgs struct { func (cmd *adminCmd) parseArgs(as []string) { var ( args = cmd.parseFlags(as) + err error ) cmd.verbose = args.verbose - cmd.version = kafkaVersion(args.version) + cmd.version, err = kafkaVersion(args.version) + if err != nil { + failf("failed to read kafka version err=%v", err) + } + + cmd.timeout, err = parseTimeout(os.Getenv(ENV_ADMIN_TIMEOUT)) + if err != nil { + failf("failed to read timeout from env var err=%v", err) + } - cmd.timeout = parseTimeout(os.Getenv(ENV_ADMIN_TIMEOUT)) if args.timeout != "" { - cmd.timeout = parseTimeout(args.timeout) + cmd.timeout, err = parseTimeout(args.timeout) + if err != nil { + failf("failed to read timeout from args err=%v", err) + } } readAuthFile(args.auth, os.Getenv(ENV_AUTH), &cmd.auth) @@ -90,6 +102,18 @@ func (cmd *adminCmd) parseArgs(as []string) { } } +func parseTimeout(s string) (*time.Duration, error) { + if s == "" { + return nil, nil + } + + v, err := time.ParseDuration(s) + if err != nil { + return nil, err + } + return &v, nil +} + func (cmd *adminCmd) run(args []string) { var err error @@ -136,9 +160,10 @@ func (cmd *adminCmd) saramaConfig() *sarama.Config { cfg.Version = cmd.version if usr, err = user.Current(); err != nil { - fmt.Fprintf(os.Stderr, "Failed to read current user err=%v", err) + cmd.infof("Failed to read current user err=%v", err) } cfg.ClientID = "kt-admin-" + sanitizeUsername(usr.Username) + cmd.infof("sarama client configuration %#v\n", cfg) if cmd.timeout != nil { cfg.Admin.Timeout = *cmd.timeout @@ -167,9 +192,9 @@ func (cmd *adminCmd) parseFlags(as []string) adminArgs { flags.StringVar(&args.deleteTopic, "deletetopic", "", "Name of the topic that should be deleted.") flags.Usage = func() { - fmt.Fprintln(os.Stderr, "Usage of admin:") + warnf("Usage of admin:") flags.PrintDefaults() - fmt.Fprintln(os.Stderr, adminDocString) + warnf(adminDocString + "\n") } err := flags.Parse(as) diff --git a/common.go b/common.go index 4e011b7..272784b 100644 --- a/common.go +++ b/common.go @@ -1,7 +1,6 @@ package main import ( - "bufio" "crypto/tls" "crypto/x509" "encoding/json" @@ -10,7 +9,6 @@ import ( "io/ioutil" "math/rand" "os" - "os/signal" "regexp" "strings" "syscall" @@ -37,49 +35,41 @@ type command interface { run(args []string) } -func listenForInterrupt(q chan struct{}) { - signals := make(chan os.Signal, 1) - signal.Notify(signals, os.Kill, os.Interrupt) - sig := <-signals - fmt.Fprintf(os.Stderr, "received signal %s\n", sig) - close(q) +type baseCmd struct { + verbose bool } -func kafkaVersion(s string) sarama.KafkaVersion { - ev := os.Getenv(ENV_KAFKA_VERSION) - if s == "" && ev != "" { - s = ev - } - - if s == "" { - return sarama.V3_0_0_0 +func (b *baseCmd) infof(msg string, args ...interface{}) { + if b.verbose { + warnf(msg, args...) } +} - v, err := sarama.ParseKafkaVersion(strings.TrimPrefix(s, "v")) - if err != nil { - failf(err.Error()) - } +func warnf(msg string, args ...interface{}) { + fmt.Fprintf(os.Stderr, msg, args...) +} - return v +func outf(msg string, args ...interface{}) { + fmt.Fprintf(os.Stdout, msg, args...) } -func parseTimeout(s string) *time.Duration { - if s == "" { - return nil +func logClose(name string, c io.Closer) { + if err := c.Close(); err != nil { + warnf("failed to close %#v err=%v", name, err) } +} - v, err := time.ParseDuration(s) - if err != nil { - failf(err.Error()) +func kafkaVersion(s string) (sarama.KafkaVersion, error) { + ev := os.Getenv(ENV_KAFKA_VERSION) + if s == "" && ev != "" { + s = ev } - return &v -} - -func logClose(name string, c io.Closer) { - if err := c.Close(); err != nil { - fmt.Fprintf(os.Stderr, "failed to close %#v err=%v", name, err) + if s == "" { + return sarama.V3_0_0_0, nil } + + return sarama.ParseKafkaVersion(strings.TrimPrefix(s, "v")) } type printContext struct { @@ -119,27 +109,13 @@ func failf(msg string, args ...interface{}) { func exitf(code int, msg string, args ...interface{}) { if code == 0 { - fmt.Fprintf(os.Stdout, msg+"\n", args...) + outf(msg+"\n", args...) } else { - fmt.Fprintf(os.Stderr, msg+"\n", args...) + warnf(msg+"\n", args...) } os.Exit(code) } -func readStdinLines(max int, out chan string) { - scanner := bufio.NewScanner(os.Stdin) - scanner.Buffer(make([]byte, max), max) - - for scanner.Scan() { - out <- scanner.Text() - } - - if err := scanner.Err(); err != nil { - fmt.Fprintf(os.Stderr, "scanning input failed err=%v\n", err) - } - close(out) -} - // hashCode imitates the behavior of the JDK's String#hashCode method. // https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#hashCode() // diff --git a/consume.go b/consume.go index a8b8c91..17b0864 100644 --- a/consume.go +++ b/consume.go @@ -18,13 +18,13 @@ import ( type consumeCmd struct { sync.Mutex + baseCmd topic string brokers []string auth authConfig offsets map[int32]interval timeout time.Duration - verbose bool version sarama.KafkaVersion encodeValue string encodeKey string @@ -97,7 +97,7 @@ type consumeArgs struct { } func (cmd *consumeCmd) failStartup(msg string) { - fmt.Fprintln(os.Stderr, msg) + warnf(msg) failf("use \"kt consume -help\" for more information") } @@ -119,8 +119,11 @@ func (cmd *consumeCmd) parseArgs(as []string) { cmd.timeout = args.timeout cmd.verbose = args.verbose cmd.pretty = args.pretty - cmd.version = kafkaVersion(args.version) cmd.group = args.group + cmd.version, err = kafkaVersion(args.version) + if err != nil { + failf("failed to read kafka version err=%v", err) + } readAuthFile(args.auth, os.Getenv(ENV_AUTH), &cmd.auth) @@ -393,12 +396,10 @@ func (cmd *consumeCmd) setupClient() { ) cfg.Version = cmd.version if usr, err = user.Current(); err != nil { - fmt.Fprintf(os.Stderr, "Failed to read current user err=%v", err) + cmd.infof("Failed to read current user err=%v", err) } cfg.ClientID = "kt-consume-" + sanitizeUsername(usr.Username) - if cmd.verbose { - fmt.Fprintf(os.Stderr, "sarama client configuration %#v\n", cfg) - } + cmd.infof("sarama client configuration %#v\n", cfg) if err = setupAuth(cmd.auth, cfg); err != nil { failf("failed to setup auth err=%v", err) @@ -476,17 +477,17 @@ func (cmd *consumeCmd) consumePartition(out chan printContext, partition int32) } if start, err = cmd.resolveOffset(offsets.start, partition); err != nil { - fmt.Fprintf(os.Stderr, "Failed to read start offset for partition %v err=%v\n", partition, err) + warnf("Failed to read start offset for partition %v err=%v\n", partition, err) return } if end, err = cmd.resolveOffset(offsets.end, partition); err != nil { - fmt.Fprintf(os.Stderr, "Failed to read end offset for partition %v err=%v\n", partition, err) + warnf("Failed to read end offset for partition %v err=%v\n", partition, err) return } if pcon, err = cmd.consumer.ConsumePartition(cmd.topic, partition, start); err != nil { - fmt.Fprintf(os.Stderr, "Failed to consume partition %v err=%v\n", partition, err) + warnf("Failed to consume partition %v err=%v\n", partition, err) return } @@ -538,7 +539,7 @@ func (cmd *consumeCmd) closePOMs() { cmd.Lock() for p, pom := range cmd.poms { if err := pom.Close(); err != nil { - fmt.Fprintf(os.Stderr, "failed to close partition offset manager for partition %v err=%v", p, err) + warnf("failed to close partition offset manager for partition %v err=%v", p, err) } } cmd.Unlock() @@ -588,14 +589,14 @@ func (cmd *consumeCmd) partitionLoop(out chan printContext, pc sarama.PartitionC select { case <-timeout: - fmt.Fprintf(os.Stderr, "consuming from partition %v timed out after %s\n", p, cmd.timeout) + warnf("consuming from partition %v timed out after %s\n", p, cmd.timeout) return case err := <-pc.Errors(): - fmt.Fprintf(os.Stderr, "partition %v consumer encountered err %s", p, err) + warnf("partition %v consumer encountered err %s", p, err) return case msg, ok := <-pc.Messages(): if !ok { - fmt.Fprintf(os.Stderr, "unexpected closed messages chan") + warnf("unexpected closed messages chan") return } diff --git a/group.go b/group.go index 6b4fbda..7c5eb4d 100644 --- a/group.go +++ b/group.go @@ -16,6 +16,8 @@ import ( ) type groupCmd struct { + baseCmd + brokers []string auth authConfig group string @@ -24,7 +26,6 @@ type groupCmd struct { topic string partitions []int32 reset int64 - verbose bool pretty bool version sarama.KafkaVersion offsets bool @@ -63,7 +64,7 @@ func (cmd *groupCmd) run(args []string) { } brokers := cmd.client.Brokers() - fmt.Fprintf(os.Stderr, "found %v brokers\n", len(brokers)) + cmd.infof("found %v brokers\n", len(brokers)) groups := []string{cmd.group} if cmd.group == "" { @@ -74,7 +75,7 @@ func (cmd *groupCmd) run(args []string) { } } } - fmt.Fprintf(os.Stderr, "found %v groups\n", len(groups)) + cmd.infof("found %v groups\n", len(groups)) topics := []string{cmd.topic} if cmd.topic == "" { @@ -85,7 +86,7 @@ func (cmd *groupCmd) run(args []string) { } } } - fmt.Fprintf(os.Stderr, "found %v topics\n", len(topics)) + cmd.infof("found %v topics\n", len(topics)) out := make(chan printContext) go print(out, cmd.pretty) @@ -96,9 +97,7 @@ func (cmd *groupCmd) run(args []string) { out <- ctx <-ctx.done - if cmd.verbose { - fmt.Fprintf(os.Stderr, "%v/%v\n", i+1, len(groups)) - } + cmd.infof("%v/%v\n", i+1, len(groups)) } return } @@ -108,7 +107,7 @@ func (cmd *groupCmd) run(args []string) { parts := cmd.partitions if len(parts) == 0 { parts = cmd.fetchPartitions(topic) - fmt.Fprintf(os.Stderr, "found partitions=%v for topic=%v\n", parts, topic) + cmd.infof("found partitions=%v for topic=%v\n", parts, topic) } topicPartitions[topic] = parts } @@ -164,9 +163,7 @@ func (cmd *groupCmd) resolveOffset(top string, part int32, off int64) int64 { failf("failed to get offset to reset to for partition=%d err=%v", part, err) } - if cmd.verbose { - fmt.Fprintf(os.Stderr, "resolved offset %v for topic=%s partition=%d to %v\n", off, top, part, resolvedOff) - } + cmd.infof("resolved offset %v for topic=%s partition=%d to %v\n", off, top, part, resolvedOff) return resolvedOff } @@ -174,9 +171,7 @@ func (cmd *groupCmd) resolveOffset(top string, part int32, off int64) int64 { func (cmd *groupCmd) fetchGroupOffset(wg *sync.WaitGroup, grp, top string, part int32, results chan<- groupOffset) { defer wg.Done() - if cmd.verbose { - fmt.Fprintf(os.Stderr, "fetching offset information for group=%v topic=%v partition=%v\n", grp, top, part) - } + cmd.infof("fetching offset information for group=%v topic=%v partition=%v\n", grp, top, part) offsetManager, err := sarama.NewOffsetManagerFromClient(grp, cmd.client) if err != nil { @@ -323,9 +318,10 @@ func (cmd *groupCmd) saramaConfig() *sarama.Config { cfg.Version = cmd.version if usr, err = user.Current(); err != nil { - fmt.Fprintf(os.Stderr, "Failed to read current user err=%v", err) + cmd.infof("Failed to read current user err=%v", err) } cfg.ClientID = "kt-group-" + sanitizeUsername(usr.Username) + cmd.infof("sarama client configuration %#v\n", cfg) setupAuth(cmd.auth, cfg) @@ -333,7 +329,7 @@ func (cmd *groupCmd) saramaConfig() *sarama.Config { } func (cmd *groupCmd) failStartup(msg string) { - fmt.Fprintln(os.Stderr, msg) + warnf(msg) failf("use \"kt group -help\" for more information") } @@ -353,7 +349,10 @@ func (cmd *groupCmd) parseArgs(as []string) { cmd.verbose = args.verbose cmd.pretty = args.pretty cmd.offsets = args.offsets - cmd.version = kafkaVersion(args.version) + cmd.version, err = kafkaVersion(args.version) + if err != nil { + failf("failed to read kafka version err=%v", err) + } readAuthFile(args.auth, os.Getenv(ENV_AUTH), &cmd.auth) @@ -398,9 +397,7 @@ func (cmd *groupCmd) parseArgs(as []string) { default: cmd.reset, err = strconv.ParseInt(args.reset, 10, 64) if err != nil { - if cmd.verbose { - fmt.Fprintf(os.Stderr, "failed to parse set %#v err=%v", args.reset, err) - } + warnf("failed to parse set %#v err=%v", args.reset, err) cmd.failStartup(fmt.Sprintf(`set value %#v not valid. either newest, oldest or specific offset expected.`, args.reset)) } } diff --git a/produce.go b/produce.go index d9620ad..86b9cf7 100644 --- a/produce.go +++ b/produce.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "encoding/base64" "encoding/hex" "encoding/json" @@ -8,6 +9,7 @@ import ( "fmt" "log" "os" + "os/signal" "os/user" "strings" "time" @@ -59,9 +61,9 @@ func (cmd *produceCmd) read(as []string) produceArgs { flags.IntVar(&args.bufferSize, "buffersize", 16777216, "Buffer size for scanning stdin, defaults to 16777216=16*1024*1024.") flags.Usage = func() { - fmt.Fprintln(os.Stderr, "Usage of produce:") + warnf("Usage of produce:") flags.PrintDefaults() - fmt.Fprintln(os.Stderr, produceDocString) + warnf(produceDocString + "\n") } err := flags.Parse(as) @@ -75,7 +77,7 @@ func (cmd *produceCmd) read(as []string) produceArgs { } func (cmd *produceCmd) failStartup(msg string) { - fmt.Fprintln(os.Stderr, msg) + warnf(msg) failf("use \"kt produce -help\" for more information") } @@ -120,7 +122,6 @@ func (cmd *produceCmd) parseArgs(as []string) { return } cmd.decodeKey = args.decodeKey - cmd.batch = args.batch cmd.timeout = args.timeout cmd.verbose = args.verbose @@ -128,7 +129,13 @@ func (cmd *produceCmd) parseArgs(as []string) { cmd.literal = args.literal cmd.partition = int32(args.partition) cmd.partitioner = args.partitioner - cmd.version = kafkaVersion(args.version) + + var err error + cmd.version, err = kafkaVersion(args.version) + if err != nil { + failf("failed to read kafka version err=%v", err) + } + cmd.compression = kafkaCompression(args.compression) cmd.bufferSize = args.bufferSize } @@ -161,12 +168,10 @@ func (cmd *produceCmd) findLeaders() { cfg.Producer.RequiredAcks = sarama.WaitForAll cfg.Version = cmd.version if usr, err = user.Current(); err != nil { - fmt.Fprintf(os.Stderr, "Failed to read current user err=%v", err) + cmd.infof("Failed to read current user err=%v", err) } cfg.ClientID = "kt-produce-" + sanitizeUsername(usr.Username) - if cmd.verbose { - fmt.Fprintf(os.Stderr, "sarama client configuration %#v\n", cfg) - } + cmd.infof("sarama client configuration %#v\n", cfg) if err = setupAuth(cmd.auth, cfg); err != nil { failf("failed to setup auth err=%v", err) @@ -176,16 +181,16 @@ loop: for _, addr := range cmd.brokers { broker := sarama.NewBroker(addr) if err = broker.Open(cfg); err != nil { - fmt.Fprintf(os.Stderr, "Failed to open broker connection to %v. err=%s\n", addr, err) + cmd.infof("Failed to open broker connection to %v. err=%s\n", addr, err) continue loop } if connected, err := broker.Connected(); !connected || err != nil { - fmt.Fprintf(os.Stderr, "Failed to open broker connection to %v. err=%s\n", addr, err) + cmd.infof("Failed to open broker connection to %v. err=%s\n", addr, err) continue loop } if res, err = broker.GetMetadata(&req); err != nil { - fmt.Fprintf(os.Stderr, "Failed to get metadata from %#v. err=%v\n", addr, err) + cmd.infof("Failed to get metadata from %#v. err=%v\n", addr, err) continue loop } @@ -197,7 +202,7 @@ loop: for _, tm := range res.Topics { if tm.Name == cmd.topic { if tm.Err != sarama.ErrNoError { - fmt.Fprintf(os.Stderr, "Failed to get metadata from %#v. err=%v\n", addr, tm.Err) + cmd.infof("Failed to get metadata from %#v. err=%v\n", addr, tm.Err) continue loop } @@ -226,12 +231,13 @@ loop: } type produceCmd struct { + baseCmd + topic string brokers []string auth authConfig batch int timeout time.Duration - verbose bool pretty bool literal bool partition int32 @@ -260,16 +266,38 @@ func (cmd *produceCmd) run(as []string) { out := make(chan printContext) q := make(chan struct{}) - go readStdinLines(cmd.bufferSize, stdin) + go cmd.readStdinLines(cmd.bufferSize, stdin) go print(out, cmd.pretty) - go listenForInterrupt(q) + go cmd.listenForInterrupt(q) go cmd.readInput(q, stdin, lines) go cmd.deserializeLines(lines, messages, int32(len(cmd.leaders))) go cmd.batchRecords(messages, batchedMessages) cmd.produce(batchedMessages, out) } +func (cmd *produceCmd) readStdinLines(max int, out chan string) { + scanner := bufio.NewScanner(os.Stdin) + scanner.Buffer(make([]byte, max), max) + + for scanner.Scan() { + out <- scanner.Text() + } + + if err := scanner.Err(); err != nil { + warnf("scanning input failed err=%v\n", err) + } + close(out) +} + +func (cmd *produceCmd) listenForInterrupt(q chan struct{}) { + signals := make(chan os.Signal, 1) + signal.Notify(signals, os.Kill, os.Interrupt) + sig := <-signals + warnf("received signal %s - triggering shutdown\n", sig) + close(q) +} + func (cmd *produceCmd) close() { for _, b := range cmd.leaders { var ( @@ -278,7 +306,7 @@ func (cmd *produceCmd) close() { ) if connected, err = b.Connected(); err != nil { - fmt.Fprintf(os.Stderr, "Failed to check if broker is connected. err=%s\n", err) + cmd.infof("Failed to check if broker is connected. err=%s\n", err) continue } @@ -287,7 +315,7 @@ func (cmd *produceCmd) close() { } if err = b.Close(); err != nil { - fmt.Fprintf(os.Stderr, "Failed to close broker %v connection. err=%s\n", b, err) + cmd.infof("Failed to close broker %v connection. err=%s\n", b, err) } } } @@ -308,9 +336,7 @@ func (cmd *produceCmd) deserializeLines(in chan string, out chan message, partit msg.Partition = &cmd.partition default: if err := json.Unmarshal([]byte(l), &msg); err != nil { - if cmd.verbose { - fmt.Fprintf(os.Stderr, "Failed to unmarshal input [%v], falling back to defaults. err=%v\n", l, err) - } + cmd.infof("Failed to unmarshal input [%v], falling back to defaults. err=%v\n", l, err) var v *string = &l if len(l) == 0 { v = nil @@ -436,7 +462,7 @@ func (cmd *produceCmd) produceBatch(leaders map[int32]*sarama.Broker, batch []me return fmt.Errorf("failed to send request to broker %#v. err=%s", broker, err) } - offsets, err := readPartitionOffsetResults(resp) + offsets, err := cmd.readPartitionOffsetResults(resp) if err != nil { return fmt.Errorf("failed to read producer response err=%s", err) @@ -453,12 +479,12 @@ func (cmd *produceCmd) produceBatch(leaders map[int32]*sarama.Broker, batch []me return nil } -func readPartitionOffsetResults(resp *sarama.ProduceResponse) (map[int32]partitionProduceResult, error) { +func (cmd *produceCmd) readPartitionOffsetResults(resp *sarama.ProduceResponse) (map[int32]partitionProduceResult, error) { offsets := map[int32]partitionProduceResult{} for _, blocks := range resp.Blocks { for partition, block := range blocks { if block.Err != sarama.ErrNoError { - fmt.Fprintf(os.Stderr, "Failed to send message. err=%s\n", block.Err.Error()) + warnf("Failed to send message. err=%s\n", block.Err.Error()) return offsets, block.Err } @@ -480,7 +506,7 @@ func (cmd *produceCmd) produce(in chan []message, out chan printContext) { return } if err := cmd.produceBatch(cmd.leaders, b, out); err != nil { - fmt.Fprintln(os.Stderr, err.Error()) // TODO: failf + warnf(err.Error()) // TODO: failf return } } diff --git a/system_test.go b/system_test.go index 80017cb..cac41c3 100644 --- a/system_test.go +++ b/system_test.go @@ -152,9 +152,10 @@ func TestSystem(t *testing.T) { status, stdOut, stdErr = newCmd(). run("./kt", "group", + "-verbose", "-topic", topicName) - fmt.Printf(">> system test kt group -topic %v stdout:\n%s\n", topicName, stdOut) - fmt.Printf(">> system test kt group -topic %v stderr:\n%s\n", topicName, stdErr) + fmt.Printf(">> system test kt group -verbose -topic %v stdout:\n%s\n", topicName, stdOut) + fmt.Printf(">> system test kt group -verbose -topic %v stderr:\n%s\n", topicName, stdErr) require.Zero(t, status) require.Contains(t, stdErr, fmt.Sprintf("found partitions=[0] for topic=%v", topicName)) require.Contains(t, stdOut, fmt.Sprintf(`{"name":"hans","topic":"%v","offsets":[{"partition":0,"offset":1,"lag":0}]}`, topicName)) @@ -220,12 +221,13 @@ func TestSystem(t *testing.T) { status, stdOut, stdErr = newCmd(). run("./kt", "group", + "-verbose", "-topic", topicName, "-partitions", "0", "-group", "hans", "-reset", "0") - fmt.Printf(">> system test kt group -topic %v -partitions 0 -group hans -reset 0 stdout:\n%s\n", topicName, stdOut) - fmt.Printf(">> system test kt group -topic %v -partitions 0 -group hans -reset 0 stderr:\n%s\n", topicName, stdErr) + fmt.Printf(">> system test kt group -verbose -topic %v -partitions 0 -group hans -reset 0 stdout:\n%s\n", topicName, stdOut) + fmt.Printf(">> system test kt group -verbose -topic %v -partitions 0 -group hans -reset 0 stderr:\n%s\n", topicName, stdErr) require.Zero(t, status) lines = strings.Split(stdOut, "\n") @@ -249,9 +251,10 @@ func TestSystem(t *testing.T) { status, stdOut, stdErr = newCmd(). run("./kt", "group", + "-verbose", "-topic", topicName) - fmt.Printf(">> system test kt group -topic %v stdout:\n%s\n", topicName, stdOut) - fmt.Printf(">> system test kt group -topic %v stderr:\n%s\n", topicName, stdErr) + fmt.Printf(">> system test kt group -verbose -topic %v stdout:\n%s\n", topicName, stdOut) + fmt.Printf(">> system test kt group -verbose -topic %v stderr:\n%s\n", topicName, stdErr) require.Zero(t, status) require.Contains(t, stdErr, fmt.Sprintf("found partitions=[0] for topic=%v", topicName)) require.Contains(t, stdOut, fmt.Sprintf(`{"name":"hans","topic":"%v","offsets":[{"partition":0,"offset":0,"lag":2}]}`, topicName)) diff --git a/topic.go b/topic.go index 0e61422..280eb37 100644 --- a/topic.go +++ b/topic.go @@ -27,6 +27,8 @@ type topicArgs struct { } type topicCmd struct { + baseCmd + brokers []string auth authConfig filter *regexp.Regexp @@ -34,7 +36,6 @@ type topicCmd struct { leaders bool replicas bool config bool - verbose bool pretty bool version sarama.KafkaVersion @@ -124,7 +125,11 @@ func (cmd *topicCmd) parseArgs(as []string) { cmd.config = args.config cmd.pretty = args.pretty cmd.verbose = args.verbose - cmd.version = kafkaVersion(args.version) + + cmd.version, err = kafkaVersion(args.version) + if err != nil { + failf("failed to read kafka version err=%v", err) + } } func (cmd *topicCmd) connect() { @@ -137,12 +142,10 @@ func (cmd *topicCmd) connect() { cfg.Version = cmd.version if usr, err = user.Current(); err != nil { - fmt.Fprintf(os.Stderr, "Failed to read current user err=%v", err) + cmd.infof("Failed to read current user err=%v", err) } cfg.ClientID = "kt-topic-" + sanitizeUsername(usr.Username) - if cmd.verbose { - fmt.Fprintf(os.Stderr, "sarama client configuration %#v\n", cfg) - } + cmd.infof("sarama client configuration %#v\n", cfg) setupAuth(cmd.auth, cfg) @@ -201,7 +204,7 @@ func (cmd *topicCmd) print(name string, out chan printContext) { ) if top, err = cmd.readTopic(name); err != nil { - fmt.Fprintf(os.Stderr, "failed to read info for topic %s. err=%v\n", name, err) + warnf("failed to read info for topic %s. err=%v\n", name, err) return } From d528fcb4fe37831aa0cc0a325348dbbebe794e29 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Wed, 27 Jul 2022 16:34:54 +0200 Subject: [PATCH 14/42] update dependencies and go version. go get -u && go mod tidy. --- go.mod | 28 ++-- go.sum | 501 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 482 insertions(+), 47 deletions(-) diff --git a/go.mod b/go.mod index c412773..b61835a 100644 --- a/go.mod +++ b/go.mod @@ -1,31 +1,33 @@ module github.com/fgeller/kt require ( - github.com/Shopify/sarama v1.31.0 + github.com/Shopify/sarama v1.35.0 github.com/davecgh/go-spew v1.1.1 - github.com/stretchr/testify v1.7.0 - golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce + github.com/stretchr/testify v1.8.0 + golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa ) require ( - github.com/eapache/go-resiliency v1.2.0 // indirect + github.com/eapache/go-resiliency v1.3.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/hashicorp/go-uuid v1.0.2 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect - github.com/jcmturner/gofork v1.0.0 // indirect + github.com/jcmturner/gofork v1.7.6 // indirect github.com/jcmturner/gokrb5/v8 v8.4.2 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect - github.com/klauspost/compress v1.14.1 // indirect - github.com/pierrec/lz4 v2.6.1+incompatible // indirect + github.com/klauspost/compress v1.15.9 // indirect + github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba // indirect - golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + golang.org/x/net v0.0.0-20220726230323-06994584191e // indirect + golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 // indirect + golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.17 +go 1.18 diff --git a/go.sum b/go.sum index 435b8ad..e8ce2e9 100644 --- a/go.sum +++ b/go.sum @@ -1,111 +1,544 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Shopify/sarama v1.31.0 h1:gObk7jCPutDxf+E6GA5G21noAZsi1SvP9ftCQYqpzus= -github.com/Shopify/sarama v1.31.0/go.mod h1:BeW3gXRc/CxgAsrSly2RE9nIXUfC9ezb7QHBPVhvzjI= -github.com/Shopify/toxiproxy/v2 v2.3.0 h1:62YkpiP4bzdhKMH+6uC5E95y608k3zDwdzuBMsnn3uQ= -github.com/Shopify/toxiproxy/v2 v2.3.0/go.mod h1:KvQTtB6RjCJY4zqNJn7C7JDFgsG5uoHYDirfUfpIm0c= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Shopify/sarama v1.35.0 h1:opEGHcK8s5OpQF99wW0D4ol7A3qUpfSFigrDXnWmOcs= +github.com/Shopify/sarama v1.35.0/go.mod h1:n8obse6Cz5NjjXjKwR1JeYr7CkQn4KG+HENJ8n/T9oQ= +github.com/Shopify/toxiproxy/v2 v2.4.0 h1:O1e4Jfvr/hefNTNu+8VtdEG5lSeamJRo4aKhMOKNM64= +github.com/Shopify/toxiproxy/v2 v2.4.0/go.mod h1:3ilnjng821bkozDRxNoo64oI/DKqM+rOyJzb564+bvg= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= 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.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 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/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= -github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-resiliency v1.3.0 h1:RRL0nge+cWGlxXbUzJ7yMcq6w2XBEr19dCN6HECGaT0= +github.com/eapache/go-resiliency v1.3.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= -github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +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/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +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/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +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/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg= +github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA= github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.14.1 h1:hLQYb23E8/fO+1u53d02A97a8UnsddcvYzq4ERRU4ds= -github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.15.8/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/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/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= -github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +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/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +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/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 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/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +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/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= 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.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= 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.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +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-20190605123033-f99c8df09eb5/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/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce h1:Roh6XWxHFKrPgC/EQhVubSAGQ6Ozk6IdxHSzt1mR0EI= -golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +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-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/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-20190108225652-1e06a53dbb7e/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-20190501004415-9ce7a6920f09/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-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-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/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-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220105145211-5b0dc2dfae98/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba h1:6u6sik+bn/y7vILcYkK3iwTBWN7WtBvB0+SZswQnbf8= -golang.org/x/net v0.0.0-20220121210141-e204ce36a2ba/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220726230323-06994584191e h1:wOQNKh1uuDGRnmgF0jDxh7ctgGy/3P4rYWQRVJD4/Yg= +golang.org/x/net v0.0.0-20220726230323-06994584191e/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +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-20190227155943-e225da77a7e6/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-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/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-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-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8pY/4yfcXrddB8qAbU0= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 h1:dyU22nBWzrmTQxtNrr4dzVOvaw35nUYE279vF9UmsI8= +golang.org/x/sys v0.0.0-20220727055044-e65921a090b8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= +golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/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/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +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-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/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.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +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-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +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/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/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-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +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/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +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.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 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= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/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= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From c95b1d08013f161a0ec7d9dae88d0150b3fa16b9 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Wed, 27 Jul 2022 16:40:34 +0200 Subject: [PATCH 15/42] updates mocks to new sarama version --- consume_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/consume_test.go b/consume_test.go index 308819f..c928798 100644 --- a/consume_test.go +++ b/consume_test.go @@ -583,6 +583,10 @@ func (pc tPartitionConsumer) Errors() <-chan *sarama.ConsumerError { return pc.errors } +func (pc tPartitionConsumer) IsPaused() bool { return false } +func (pc tPartitionConsumer) Pause() {} +func (pc tPartitionConsumer) Resume() {} + type tConsumer struct { topics []string topicsErr error @@ -616,6 +620,12 @@ func (c tConsumer) HighWaterMarks() map[string]map[int32]int64 { return nil } +func (c tConsumer) Pause(topicPartitions map[string][]int32) {} +func (c tConsumer) PauseAll() {} + +func (c tConsumer) Resume(topicPartitions map[string][]int32) {} +func (c tConsumer) ResumeAll() {} + func TestConsumeParseArgs(t *testing.T) { topic := "test-topic" givenBroker := "hans:9092" From d62cbca763a5ee69c3fd4cfc06a9642df6917999 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Thu, 28 Jul 2022 14:40:35 +0200 Subject: [PATCH 16/42] no need for parseArgs on main. --- main.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 58c73e1..b5e78f8 100644 --- a/main.go +++ b/main.go @@ -58,22 +58,23 @@ You can find more details at https://github.com/fgeller/kt %s`, ENV_AUTH, versionMessage) -func parseArgs() command { +func main() { if len(os.Args) < 2 { failf(usageMessage) } + var cmd command switch os.Args[1] { case "consume": - return &consumeCmd{} + cmd = &consumeCmd{} case "produce": - return &produceCmd{} + cmd = &produceCmd{} case "topic": - return &topicCmd{} + cmd = &topicCmd{} case "group": - return &groupCmd{} + cmd = &groupCmd{} case "admin": - return &adminCmd{} + cmd = &adminCmd{} case "-h", "-help", "--help": quitf(usageMessage) case "-version", "--version": @@ -81,10 +82,6 @@ func parseArgs() command { default: failf(usageMessage) } - return nil -} -func main() { - cmd := parseArgs() cmd.run(os.Args[2:]) } From 9fd8caf85e9ae432aee50e163e38297452bf5c3e Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Thu, 28 Jul 2022 14:40:14 +0200 Subject: [PATCH 17/42] updates golang and use of docker-compose --- .github/workflows/go.yml | 4 ++-- Makefile | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index ce35b6d..e91eb5b 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: ^1.17 + go-version: ^1.18 - name: Check out code into the Go module directory uses: actions/checkout@v2 @@ -31,7 +31,7 @@ jobs: fi - name: Bring up containers - run: docker-compose -f test-dependencies.yml up -d && sleep 15 + run: docker compose -f test-dependencies.yml up -d - name: Test run: make test diff --git a/Makefile b/Makefile index 9ad1eb9..434f5af 100644 --- a/Makefile +++ b/Makefile @@ -19,11 +19,10 @@ release-darwin: release: testing clean release-linux release-darwin dep-up: - docker-compose -f ./test-dependencies.yml up -d - sleep 4 + docker compose -f ./test-dependencies.yml up -d dep-down: - docker-compose -f ./test-dependencies.yml down + docker compose -f ./test-dependencies.yml down testing: dep-up test dep-down From 44f80f63dddf27d2f847b254448fdd12340e26f9 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Fri, 29 Jul 2022 13:41:56 +0200 Subject: [PATCH 18/42] linter: drop redundant type declarations --- consume_test.go | 84 ++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/consume_test.go b/consume_test.go index c928798..55a28d5 100644 --- a/consume_test.go +++ b/consume_test.go @@ -21,7 +21,7 @@ func TestParseOffsets(t *testing.T) { testName: "empty", input: "", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{start: 1<<63 - 1}, }, @@ -31,7 +31,7 @@ func TestParseOffsets(t *testing.T) { testName: "single-comma", input: ",", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{start: 1<<63 - 1}, }, @@ -41,7 +41,7 @@ func TestParseOffsets(t *testing.T) { testName: "all", input: "all", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -51,7 +51,7 @@ func TestParseOffsets(t *testing.T) { testName: "oldest", input: "oldest", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -61,7 +61,7 @@ func TestParseOffsets(t *testing.T) { testName: "resume", input: "resume", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: offsetResume}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -71,7 +71,7 @@ func TestParseOffsets(t *testing.T) { testName: "all-with-space", input: " all ", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -81,7 +81,7 @@ func TestParseOffsets(t *testing.T) { testName: "all-with-zero-initial-offset", input: "all=+0:", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 0}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -91,15 +91,15 @@ func TestParseOffsets(t *testing.T) { testName: "several-partitions", input: "1,2,4", expected: map[int32]interval{ - 1: interval{ + 1: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, - 2: interval{ + 2: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, - 4: interval{ + 4: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -109,7 +109,7 @@ func TestParseOffsets(t *testing.T) { testName: "one-partition,empty-offsets", input: "0=", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -119,7 +119,7 @@ func TestParseOffsets(t *testing.T) { testName: "one-partition,one-offset", input: "0=1", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: false, start: 1}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -129,7 +129,7 @@ func TestParseOffsets(t *testing.T) { testName: "one-partition,empty-after-colon", input: "0=1:", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: false, start: 1}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -139,15 +139,15 @@ func TestParseOffsets(t *testing.T) { testName: "multiple-partitions", input: "0=4:,2=1:10,6", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: false, start: 4}, end: offset{relative: false, start: 1<<63 - 1}, }, - 2: interval{ + 2: { start: offset{relative: false, start: 1}, end: offset{relative: false, start: 10}, }, - 6: interval{ + 6: { start: offset{relative: true, start: sarama.OffsetOldest}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -157,7 +157,7 @@ func TestParseOffsets(t *testing.T) { testName: "newest-relative", input: "0=-1", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetNewest, diff: -1}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -167,7 +167,7 @@ func TestParseOffsets(t *testing.T) { testName: "newest-relative,empty-after-colon", input: "0=-1:", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetNewest, diff: -1}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -177,7 +177,7 @@ func TestParseOffsets(t *testing.T) { testName: "resume-relative", input: "0=resume-10", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: offsetResume, diff: -10}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -187,7 +187,7 @@ func TestParseOffsets(t *testing.T) { testName: "oldest-relative", input: "0=+1", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 1}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -197,7 +197,7 @@ func TestParseOffsets(t *testing.T) { testName: "oldest-relative,empty-after-colon", input: "0=+1:", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 1}, end: offset{relative: false, start: 1<<63 - 1}, }, @@ -207,7 +207,7 @@ func TestParseOffsets(t *testing.T) { testName: "oldest-relative-to-newest-relative", input: "0=+1:-1", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 1}, end: offset{relative: true, start: sarama.OffsetNewest, diff: -1}, }, @@ -217,11 +217,11 @@ func TestParseOffsets(t *testing.T) { testName: "specific-partition-with-all-partitions", input: "0=+1:-1,all=1:10", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 1}, end: offset{relative: true, start: sarama.OffsetNewest, diff: -1}, }, - -1: interval{ + -1: { start: offset{relative: false, start: 1, diff: 0}, end: offset{relative: false, start: 10, diff: 0}, }, @@ -231,7 +231,7 @@ func TestParseOffsets(t *testing.T) { testName: "oldest-to-newest", input: "0=oldest:newest", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 0}, end: offset{relative: true, start: sarama.OffsetNewest, diff: 0}, }, @@ -241,7 +241,7 @@ func TestParseOffsets(t *testing.T) { testName: "oldest-to-newest-with-offsets", input: "0=oldest+10:newest-10", expected: map[int32]interval{ - 0: interval{ + 0: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 10}, end: offset{relative: true, start: sarama.OffsetNewest, diff: -10}, }, @@ -251,7 +251,7 @@ func TestParseOffsets(t *testing.T) { testName: "newest", input: "newest", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetNewest, diff: 0}, end: offset{relative: false, start: 1<<63 - 1, diff: 0}, }, @@ -261,7 +261,7 @@ func TestParseOffsets(t *testing.T) { testName: "single-partition", input: "10", expected: map[int32]interval{ - 10: interval{ + 10: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 0}, end: offset{relative: false, start: 1<<63 - 1, diff: 0}, }, @@ -271,7 +271,7 @@ func TestParseOffsets(t *testing.T) { testName: "single-range,all-partitions", input: "10:20", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{start: 10}, end: offset{start: 20}, }, @@ -281,7 +281,7 @@ func TestParseOffsets(t *testing.T) { testName: "single-range,all-partitions,open-end", input: "10:", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{start: 10}, end: offset{start: 1<<63 - 1}, }, @@ -291,7 +291,7 @@ func TestParseOffsets(t *testing.T) { testName: "all-newest", input: "all=newest:", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetNewest, diff: 0}, end: offset{relative: false, start: 1<<63 - 1, diff: 0}, }, @@ -301,7 +301,7 @@ func TestParseOffsets(t *testing.T) { testName: "implicit-all-newest-with-offset", input: "newest-10:", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetNewest, diff: -10}, end: offset{relative: false, start: 1<<63 - 1, diff: 0}, }, @@ -311,7 +311,7 @@ func TestParseOffsets(t *testing.T) { testName: "implicit-all-oldest-with-offset", input: "oldest+10:", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 10}, end: offset{relative: false, start: 1<<63 - 1, diff: 0}, }, @@ -321,7 +321,7 @@ func TestParseOffsets(t *testing.T) { testName: "implicit-all-neg-offset-empty-colon", input: "-10:", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetNewest, diff: -10}, end: offset{relative: false, start: 1<<63 - 1, diff: 0}, }, @@ -331,7 +331,7 @@ func TestParseOffsets(t *testing.T) { testName: "implicit-all-pos-offset-empty-colon", input: "+10:", expected: map[int32]interval{ - -1: interval{ + -1: { start: offset{relative: true, start: sarama.OffsetOldest, diff: 10}, end: offset{relative: false, start: 1<<63 - 1, diff: 0}, }, @@ -429,7 +429,7 @@ func TestFindPartitionsToConsume(t *testing.T) { consumer: tConsumer{ topics: []string{"a"}, topicsErr: nil, - partitions: map[string][]int32{"a": []int32{0, 10}}, + partitions: map[string][]int32{"a": {0, 10}}, partitionsErr: map[string]error{"a": nil}, consumePartition: map[tConsumePartition]tPartitionConsumer{}, consumePartitionErr: map[tConsumePartition]error{}, @@ -445,7 +445,7 @@ func TestFindPartitionsToConsume(t *testing.T) { consumer: tConsumer{ topics: []string{"a"}, topicsErr: nil, - partitions: map[string][]int32{"a": []int32{0, 10}}, + partitions: map[string][]int32{"a": {0, 10}}, partitionsErr: map[string]error{"a": nil}, consumePartition: map[tConsumePartition]tPartitionConsumer{}, consumePartitionErr: map[tConsumePartition]error{}, @@ -486,8 +486,8 @@ func TestConsume(t *testing.T) { calls := make(chan tConsumePartition) consumer := tConsumer{ consumePartition: map[tConsumePartition]tPartitionConsumer{ - tConsumePartition{"hans", 1, 1}: tPartitionConsumer{messages: messageChan}, - tConsumePartition{"hans", 2, 1}: tPartitionConsumer{messages: messageChan}, + {"hans", 1, 1}: {messages: messageChan}, + {"hans", 2, 1}: {messages: messageChan}, }, calls: calls, } @@ -496,7 +496,7 @@ func TestConsume(t *testing.T) { target.topic = "hans" target.brokers = []string{"localhost:9092"} target.offsets = map[int32]interval{ - -1: interval{start: offset{false, 1, 0}, end: offset{false, 5, 0}}, + -1: {start: offset{false, 1, 0}, end: offset{false, 5, 0}}, } go target.consume(partitions) @@ -506,8 +506,8 @@ func TestConsume(t *testing.T) { go func(c chan tConsumePartition, e chan struct{}) { actual := []tConsumePartition{} expected := []tConsumePartition{ - tConsumePartition{"hans", 1, 1}, - tConsumePartition{"hans", 2, 1}, + {"hans", 1, 1}, + {"hans", 2, 1}, } for { select { From f76caed8015dfa2b05758f1b860236419be07176 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Fri, 29 Jul 2022 14:48:06 +0200 Subject: [PATCH 19/42] align kafka version parsing --- admin.go | 2 +- common.go | 16 +++++++--------- common_test.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ consume.go | 3 ++- group.go | 2 +- produce.go | 2 +- topic.go | 2 +- 7 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 common_test.go diff --git a/admin.go b/admin.go index b48cbc1..61049b7 100644 --- a/admin.go +++ b/admin.go @@ -50,7 +50,7 @@ func (cmd *adminCmd) parseArgs(as []string) { ) cmd.verbose = args.verbose - cmd.version, err = kafkaVersion(args.version) + cmd.version, err = chooseKafkaVersion(args.version, os.Getenv(ENV_KAFKA_VERSION)) if err != nil { failf("failed to read kafka version err=%v", err) } diff --git a/common.go b/common.go index 272784b..d8fa054 100644 --- a/common.go +++ b/common.go @@ -59,17 +59,15 @@ func logClose(name string, c io.Closer) { } } -func kafkaVersion(s string) (sarama.KafkaVersion, error) { - ev := os.Getenv(ENV_KAFKA_VERSION) - if s == "" && ev != "" { - s = ev - } - - if s == "" { +func chooseKafkaVersion(arg, env string) (sarama.KafkaVersion, error) { + switch { + case arg != "": + return sarama.ParseKafkaVersion(strings.TrimPrefix(arg, "v")) + case env != "": + return sarama.ParseKafkaVersion(strings.TrimPrefix(env, "v")) + default: return sarama.V3_0_0_0, nil } - - return sarama.ParseKafkaVersion(strings.TrimPrefix(s, "v")) } type printContext struct { diff --git a/common_test.go b/common_test.go new file mode 100644 index 0000000..2e6830e --- /dev/null +++ b/common_test.go @@ -0,0 +1,49 @@ +package main + +import ( + "fmt" + "testing" + + "github.com/Shopify/sarama" + "github.com/stretchr/testify/require" +) + +func TestChooseKafkaVersion(t *testing.T) { + td := map[string]struct { + arg string + env string + err error + expected sarama.KafkaVersion + }{ + "default": { + expected: sarama.V3_0_0_0, + }, + "arg v1": { + arg: "v1.0.0", + expected: sarama.V1_0_0_0, + }, + "env v2": { + env: "v2.0.0", + expected: sarama.V2_0_0_0, + }, + "arg v1 wins over env v2": { + arg: "v1.0.0", + env: "v2.0.0", + expected: sarama.V1_0_0_0, + }, + "invalid": { + arg: "234", + err: fmt.Errorf("invalid version `234`"), + }, + } + + for tn, tc := range td { + actual, err := chooseKafkaVersion(tc.arg, tc.env) + if tc.err == nil { + require.Equal(t, tc.expected, actual, tn) + require.NoError(t, err) + } else { + require.Equal(t, tc.err, err) + } + } +} diff --git a/consume.go b/consume.go index 17b0864..b97d667 100644 --- a/consume.go +++ b/consume.go @@ -120,7 +120,8 @@ func (cmd *consumeCmd) parseArgs(as []string) { cmd.verbose = args.verbose cmd.pretty = args.pretty cmd.group = args.group - cmd.version, err = kafkaVersion(args.version) + + cmd.version, err = chooseKafkaVersion(args.version, os.Getenv(ENV_KAFKA_VERSION)) if err != nil { failf("failed to read kafka version err=%v", err) } diff --git a/group.go b/group.go index 7c5eb4d..09cb1a7 100644 --- a/group.go +++ b/group.go @@ -349,7 +349,7 @@ func (cmd *groupCmd) parseArgs(as []string) { cmd.verbose = args.verbose cmd.pretty = args.pretty cmd.offsets = args.offsets - cmd.version, err = kafkaVersion(args.version) + cmd.version, err = chooseKafkaVersion(args.version, os.Getenv(ENV_KAFKA_VERSION)) if err != nil { failf("failed to read kafka version err=%v", err) } diff --git a/produce.go b/produce.go index 86b9cf7..dbfc3b7 100644 --- a/produce.go +++ b/produce.go @@ -131,7 +131,7 @@ func (cmd *produceCmd) parseArgs(as []string) { cmd.partitioner = args.partitioner var err error - cmd.version, err = kafkaVersion(args.version) + cmd.version, err = chooseKafkaVersion(args.version, os.Getenv(ENV_KAFKA_VERSION)) if err != nil { failf("failed to read kafka version err=%v", err) } diff --git a/topic.go b/topic.go index 280eb37..26ccfcf 100644 --- a/topic.go +++ b/topic.go @@ -126,7 +126,7 @@ func (cmd *topicCmd) parseArgs(as []string) { cmd.pretty = args.pretty cmd.verbose = args.verbose - cmd.version, err = kafkaVersion(args.version) + cmd.version, err = chooseKafkaVersion(args.version, os.Getenv(ENV_KAFKA_VERSION)) if err != nil { failf("failed to read kafka version err=%v", err) } From 834c58545c5ccf446779e39e896ff57ff05294e4 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Mon, 8 Aug 2022 10:15:22 +0200 Subject: [PATCH 20/42] update app version string fixes #133 --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index b5e78f8..c356f2c 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,7 @@ import ( "os" ) -const AppVersion = "v13.0.0+" +const AppVersion = "v13.1.0+" var buildVersion, buildTime string From 25d996fe4bc7d9d053658f452831ec9ff8d39167 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Thu, 18 Aug 2022 18:04:04 +0200 Subject: [PATCH 21/42] adds major version suffix to module path; +1.19 ref #134 --- go.mod | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index b61835a..2996453 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/fgeller/kt +module github.com/fgeller/kt/v13 require ( github.com/Shopify/sarama v1.35.0 @@ -30,4 +30,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -go 1.18 +go 1.19 From 8267e4e1731d36a4b597725b794d683e45d31b75 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Thu, 18 Aug 2022 18:11:35 +0200 Subject: [PATCH 22/42] create v13.1.1 --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index c356f2c..03e344d 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,7 @@ import ( "os" ) -const AppVersion = "v13.1.0+" +const AppVersion = "v13.1.1+" var buildVersion, buildTime string From df537ed8d31f4d2c0849273abcd4f830c0afa4a1 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Thu, 18 Aug 2022 20:43:00 +0200 Subject: [PATCH 23/42] formatting: moves go version in go.mod --- go.mod | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 2996453..b449d93 100644 --- a/go.mod +++ b/go.mod @@ -1,5 +1,7 @@ module github.com/fgeller/kt/v13 +go 1.19 + require ( github.com/Shopify/sarama v1.35.0 github.com/davecgh/go-spew v1.1.1 @@ -29,5 +31,3 @@ require ( golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) - -go 1.19 From 988810623815f17cd9618385dc569667e8875ede Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Thu, 18 Aug 2022 21:14:15 +0200 Subject: [PATCH 24/42] adds v14-pre: fix go.mod & go install ref #134 --- go.mod | 2 +- main.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index b449d93..8702770 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/fgeller/kt/v13 +module github.com/fgeller/kt/v14 go 1.19 diff --git a/main.go b/main.go index 03e344d..f7622d6 100644 --- a/main.go +++ b/main.go @@ -5,7 +5,7 @@ import ( "os" ) -const AppVersion = "v13.1.1+" +const AppVersion = "v14.0.0-pre" var buildVersion, buildTime string From 58fcea9593ac7235b0c81d6c6a250c3a41a9b455 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sun, 4 Sep 2022 19:32:27 +0200 Subject: [PATCH 25/42] updates installation incantation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e66164..97a2fb4 100644 --- a/README.md +++ b/README.md @@ -213,7 +213,7 @@ You can download kt via the [Releases](https://github.com/fgeller/kt/releases) s Alternatively, the usual way via the go tool, for example: - $ go get -u github.com/fgeller/kt + $ go install github.com/fgeller/kt/v14@latest Or via Homebrew on OSX: From 0c7a8927bc9a64ca4437bec3c752a0a68a973e20 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sun, 4 Sep 2022 19:37:26 +0200 Subject: [PATCH 26/42] include -race for tests --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 434f5af..4cfb0d1 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ dep-down: testing: dep-up test dep-down test: clean - go test -v -vet=all -failfast + go test -v -vet=all -failfast -race clean: rm -f kt From 8a5c33e43ee563eb200b1216d0603cc405ff9ab2 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sun, 4 Sep 2022 19:37:36 +0200 Subject: [PATCH 27/42] updates shopify/sarama to v1.36.0 --- go.mod | 8 ++++---- go.sum | 28 ++++++++++++---------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index 8702770..e3f5bc5 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/fgeller/kt/v14 go 1.19 require ( - github.com/Shopify/sarama v1.35.0 + github.com/Shopify/sarama v1.36.0 github.com/davecgh/go-spew v1.1.1 github.com/stretchr/testify v1.8.0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa @@ -20,14 +20,14 @@ require ( github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect github.com/jcmturner/gofork v1.7.6 // indirect - github.com/jcmturner/gokrb5/v8 v8.4.2 // indirect + github.com/jcmturner/gokrb5/v8 v8.4.3 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/klauspost/compress v1.15.9 // indirect github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - golang.org/x/net v0.0.0-20220726230323-06994584191e // indirect - golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 // indirect + golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced // indirect + golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index e8ce2e9..fde7111 100644 --- a/go.sum +++ b/go.sum @@ -33,8 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Shopify/sarama v1.35.0 h1:opEGHcK8s5OpQF99wW0D4ol7A3qUpfSFigrDXnWmOcs= -github.com/Shopify/sarama v1.35.0/go.mod h1:n8obse6Cz5NjjXjKwR1JeYr7CkQn4KG+HENJ8n/T9oQ= +github.com/Shopify/sarama v1.36.0 h1:0OJs3eCcnezkWniVjwBbCJVaa0B1k7ImCRS3WN6NsSk= +github.com/Shopify/sarama v1.36.0/go.mod h1:9glG3eX83tgVYJ5aVtrjVUnEsOPqQIBGx1BWfN+X51I= github.com/Shopify/toxiproxy/v2 v2.4.0 h1:O1e4Jfvr/hefNTNu+8VtdEG5lSeamJRo4aKhMOKNM64= github.com/Shopify/toxiproxy/v2 v2.4.0/go.mod h1:3ilnjng821bkozDRxNoo64oI/DKqM+rOyJzb564+bvg= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -152,13 +152,12 @@ github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFK github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg= github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA= -github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= +github.com/jcmturner/gokrb5/v8 v8.4.3 h1:iTonLeSJOn7MVUtyMT+arAn5AKAPrkilzhGw8wE/Tq8= +github.com/jcmturner/gokrb5/v8 v8.4.3/go.mod h1:dqRwJGXznQrzw6cWmyo6kH+E7jksEQG/CyVWsJEsJO0= github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= @@ -171,7 +170,6 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.8/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -235,7 +233,6 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS 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.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -257,8 +254,6 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/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/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -321,9 +316,9 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220726230323-06994584191e h1:wOQNKh1uuDGRnmgF0jDxh7ctgGy/3P4rYWQRVJD4/Yg= -golang.org/x/net v0.0.0-20220726230323-06994584191e/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= +golang.org/x/net v0.0.0-20220725212005-46097bf591d3/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= +golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced h1:3dYNDff0VT5xj+mbj2XucFst9WKk6PdGOrb9n+SbIvw= +golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -338,8 +333,9 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/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-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -378,9 +374,9 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 h1:dyU22nBWzrmTQxtNrr4dzVOvaw35nUYE279vF9UmsI8= -golang.org/x/sys v0.0.0-20220727055044-e65921a090b8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= From 6008ad3fa73000c07f6549c1d7743175c9480e46 Mon Sep 17 00:00:00 2001 From: Shane Warden <55407805+swagile1@users.noreply.github.com> Date: Wed, 16 Nov 2022 18:45:45 -0800 Subject: [PATCH 28/42] Fix documentation typo in groups.go Minor typo fix --- group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/group.go b/group.go index 09cb1a7..79fba43 100644 --- a/group.go +++ b/group.go @@ -447,7 +447,7 @@ func (cmd *groupCmd) parseFlags(as []string) groupArgs { flags.BoolVar(&args.pretty, "pretty", true, "Control output pretty printing.") flags.StringVar(&args.version, "version", "", "Kafka protocol version") flags.StringVar(&args.partitions, "partitions", allPartitionsHuman, "comma separated list of partitions to limit offsets to, or all") - flags.BoolVar(&args.offsets, "offsets", true, "Controls if offsets should be fetched (defauls to true)") + flags.BoolVar(&args.offsets, "offsets", true, "Controls if offsets should be fetched (defaults to true)") flags.Usage = func() { fmt.Fprintln(os.Stderr, "Usage of group:") From d31f6ff1a8737529d11a10cb20738636522d4d8a Mon Sep 17 00:00:00 2001 From: Jakob van Santen Date: Fri, 8 Sep 2023 14:37:25 +0200 Subject: [PATCH 29/42] Accept times in group -reset --- go.mod | 12 +++++++++++- go.sum | 22 ++++++++++++++++++++++ group.go | 25 ++++++++++++++++++++----- 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index e3f5bc5..fce80c7 100644 --- a/go.mod +++ b/go.mod @@ -13,21 +13,31 @@ require ( github.com/eapache/go-resiliency v1.3.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect + github.com/elliotchance/pie/v2 v2.7.0 // indirect github.com/golang/snappy v0.0.4 // indirect + github.com/hablullah/go-hijri v1.0.2 // indirect + github.com/hablullah/go-juliandays v1.0.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect + github.com/jalaali/go-jalaali v0.0.0-20210801064154-80525e88d958 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect github.com/jcmturner/gofork v1.7.6 // indirect github.com/jcmturner/gokrb5/v8 v8.4.3 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/klauspost/compress v1.15.9 // indirect + github.com/magefile/mage v1.14.0 // indirect + github.com/markusmobius/go-dateparser v1.2.1 // indirect github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/tetratelabs/wazero v1.2.1 // indirect + github.com/wasilibs/go-re2 v1.3.0 // indirect + golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 // indirect golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced // indirect - golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect + golang.org/x/sys v0.5.0 // indirect golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect + golang.org/x/text v0.10.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index fde7111..2b9e376 100644 --- a/go.sum +++ b/go.sum @@ -64,6 +64,8 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8 github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/elliotchance/pie/v2 v2.7.0 h1:FqoIKg4uj0G/CrLGuMS9ejnFKa92lxE1dEgBD3pShXg= +github.com/elliotchance/pie/v2 v2.7.0/go.mod h1:18t0dgGFH006g4eVdDtWfgFZPQEgl10IoEO8YWEq3Og= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -137,6 +139,10 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= +github.com/hablullah/go-hijri v1.0.2 h1:drT/MZpSZJQXo7jftf5fthArShcaMtsal0Zf/dnmp6k= +github.com/hablullah/go-hijri v1.0.2/go.mod h1:OS5qyYLDjORXzK4O1adFw9Q5WfhOcMdAKglDkcTxgWQ= +github.com/hablullah/go-juliandays v1.0.0 h1:A8YM7wIj16SzlKT0SRJc9CD29iiaUzpBLzh5hr0/5p0= +github.com/hablullah/go-juliandays v1.0.0/go.mod h1:0JOYq4oFOuDja+oospuc61YoX+uNEn7Z6uHYTbBzdGc= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -148,6 +154,8 @@ github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jalaali/go-jalaali v0.0.0-20210801064154-80525e88d958 h1:qxLoi6CAcXVzjfvu+KXIXJOAsQB62LXjsfbOaErsVzE= +github.com/jalaali/go-jalaali v0.0.0-20210801064154-80525e88d958/go.mod h1:Wqfu7mjUHj9WDzSSPI5KfBclTTEnLveRUFr/ujWnTgE= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= @@ -183,6 +191,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo= +github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= +github.com/markusmobius/go-dateparser v1.2.1 h1:mYRRdu3TzpAeE6fSl2Gn3arfxEtoTRvFOKlumlVsUtg= +github.com/markusmobius/go-dateparser v1.2.1/go.mod h1:5xYsZ1h7iB3sE1BSu8bkjYpbFST7EU1/AFxcyO3mgYg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -236,7 +248,11 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/tetratelabs/wazero v1.2.1 h1:J4X2hrGzJvt+wqltuvcSjHQ7ujQxA9gb6PeMs4qlUWs= +github.com/tetratelabs/wazero v1.2.1/go.mod h1:wYx2gNRg8/WihJfSDxA1TIL8H+GkfLYm+bIfbblu9VQ= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/wasilibs/go-re2 v1.3.0 h1:LFhBNzoStM3wMie6rN2slD1cuYH2CGiHpvNL3UtcsMw= +github.com/wasilibs/go-re2 v1.3.0/go.mod h1:AafrCXVvGRJJOImMajgJ2M7rVmWyisVK7sFshbxnVrg= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= @@ -266,6 +282,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 h1:ba9YlqfDGTTQ5aZ2fwOoQ1hf32QySyQkR6ODGDzHlnE= +golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -377,6 +395,8 @@ golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= @@ -388,6 +408,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/group.go b/group.go index 79fba43..7d849e0 100644 --- a/group.go +++ b/group.go @@ -13,6 +13,7 @@ import ( "sync" "github.com/Shopify/sarama" + dps "github.com/markusmobius/go-dateparser" ) type groupCmd struct { @@ -26,6 +27,7 @@ type groupCmd struct { topic string partitions []int32 reset int64 + resetTime bool pretty bool version sarama.KafkaVersion offsets bool @@ -157,13 +159,13 @@ awaitGroupOffsets: } } -func (cmd *groupCmd) resolveOffset(top string, part int32, off int64) int64 { - resolvedOff, err := cmd.client.GetOffset(top, part, off) +func (cmd *groupCmd) resolveOffset(top string, part int32, time int64) int64 { + resolvedOff, err := cmd.client.GetOffset(top, part, time) if err != nil { failf("failed to get offset to reset to for partition=%d err=%v", part, err) } - cmd.infof("resolved offset %v for topic=%s partition=%d to %v\n", off, top, part, resolvedOff) + cmd.infof("resolved offset %v for topic=%s partition=%d to %v\n", time, top, part, resolvedOff) return resolvedOff } @@ -185,7 +187,7 @@ func (cmd *groupCmd) fetchGroupOffset(wg *sync.WaitGroup, grp, top string, part } defer logClose("partition offset manager", pom) - specialOffset := cmd.reset == sarama.OffsetNewest || cmd.reset == sarama.OffsetOldest + specialOffset := cmd.resetTime || cmd.reset == sarama.OffsetNewest || cmd.reset == sarama.OffsetOldest groupOff, _ := pom.NextOffset() if cmd.reset >= 0 || specialOffset { @@ -386,6 +388,8 @@ func (cmd *groupCmd) parseArgs(as []string) { failf("group and topic are required to reset offsets.") } + cmd.resetTime = false + switch args.reset { case "newest": cmd.reset = sarama.OffsetNewest @@ -396,9 +400,19 @@ func (cmd *groupCmd) parseArgs(as []string) { cmd.reset = resetNotSpecified default: cmd.reset, err = strconv.ParseInt(args.reset, 10, 64) + if err != nil { + var dt, derr = dps.Parse(nil, args.reset) + if derr == nil { + err = nil + cmd.reset = dt.Time.UnixMilli() + cmd.resetTime = true + } else { + err = derr + } + } if err != nil { warnf("failed to parse set %#v err=%v", args.reset, err) - cmd.failStartup(fmt.Sprintf(`set value %#v not valid. either newest, oldest or specific offset expected.`, args.reset)) + cmd.failStartup(fmt.Sprintf(`set value %#v not valid. either "newest", "oldest", a time, or a specific offset expected. See https://github.com/markusmobius/go-dateparser for supported time formats. `, args.reset)) } } @@ -427,6 +441,7 @@ type groupArgs struct { filterGroups string filterTopics string reset string + resetTime bool verbose bool pretty bool version string From 64e62283361f5e10df8f956f44113f664b6a1fdd Mon Sep 17 00:00:00 2001 From: Jakob van Santen Date: Fri, 8 Sep 2023 14:41:12 +0200 Subject: [PATCH 30/42] Emit correct offsets on reset The previous comment appears misleading; if specialOffset is true, then the offset _was_ reset --- group.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/group.go b/group.go index 7d849e0..5e5b4fa 100644 --- a/group.go +++ b/group.go @@ -204,12 +204,6 @@ func (cmd *groupCmd) fetchGroupOffset(wg *sync.WaitGroup, grp, top string, part groupOff = resolvedOff } - // we haven't reset it, and it wasn't set before - lag depends on client's config - if specialOffset { - results <- groupOffset{Partition: part} - return - } - partOff := cmd.resolveOffset(top, part, sarama.OffsetNewest) lag := partOff - groupOff results <- groupOffset{Partition: part, Offset: &groupOff, Lag: &lag} From f477b1949d23d4741f11a69aab5067f55eef4dbe Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 11:26:13 +0200 Subject: [PATCH 31/42] regenerate test secrets --- Makefile | 4 ++ test-secrets/broker1-ca1-signed.crt | 36 +++++++------- test-secrets/broker1.csr | 35 ++++++++------ test-secrets/create-certs.sh | 4 ++ test-secrets/kafka.broker1.keystore.jks | Bin 4554 -> 5322 bytes test-secrets/kafka.broker1.truststore.jks | Bin 1238 -> 1238 bytes test-secrets/kt-test.crt | 33 ++++++------- test-secrets/kt-test.csr | 26 +++++----- test-secrets/kt-test.key | 55 ++++++++++----------- test-secrets/snakeoil-ca-1.crt | 32 ++++++------- test-secrets/snakeoil-ca-1.key | 56 +++++++++++----------- test-secrets/snakeoil-ca-1.srl | 2 +- 12 files changed, 151 insertions(+), 132 deletions(-) diff --git a/Makefile b/Makefile index 4cfb0d1..8942c46 100644 --- a/Makefile +++ b/Makefile @@ -29,6 +29,10 @@ testing: dep-up test dep-down test: clean go test -v -vet=all -failfast -race +.PHONY: test-secrets +test-secrets: + cd test-secrets ; /usr/bin/env bash create-certs.sh + clean: rm -f kt rm -f kt-*.txz diff --git a/test-secrets/broker1-ca1-signed.crt b/test-secrets/broker1-ca1-signed.crt index d9bda95..fd1fe92 100644 --- a/test-secrets/broker1-ca1-signed.crt +++ b/test-secrets/broker1-ca1-signed.crt @@ -1,19 +1,23 @@ -----BEGIN CERTIFICATE----- -MIIDBjCCAe6gAwIBAgIUQLTARfFpFqJ02GybrjTPme2jKzYwDQYJKoZIhvcNAQEL +MIIDyDCCArCgAwIBAgIULxF6KJKCcA9Uqd8v73k/6ZoJgcgwDQYJKoZIhvcNAQEL BQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNUMQswCQYDVQQK -DAJLVDAeFw0yMTExMTgyMTI0MTdaFw00OTA0MDQyMTI0MTdaMDAxCzAJBgNVBAoT -AktUMQ0wCwYDVQQLEwRURVNUMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDd4OJqo0bLyV071DOTC9GirhiMXnfo8zcz -0TX8pVquCv34sPTIRJHdJQ6LGVG0nhpwPc7sr0ws7sadpVj043FBeDizxc4G4boP -1c/yITGm7FVNcNJ5xj/jO5jnrLnI0ObjpT+IuLzX6Gb3HuheH1Dik8s1PzHW/YOC -wURCaIrRe4b/1w2Mor5t9BFSSQaVRXqSeEVukU2HCLFoe237FuXGGb+ojLvEpxQR -N3598RvCgCpJHlX9nVuhOedLvI35uf89ycfcyEj2hrZzLgybLcABazkDlGTgGQFx -BuVOy/qvtH4bAvitbo/MNjYWnOfIjYBL9MBBe5J39a2jM56iN18NAgMBAAGjGDAW -MBQGA1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAPlj6zu1d -G2aCB4v0cs+kftDhmBTbIj+QuyoSbjcqclbFDy6duxAOspjzqckCFsRPQE1b3LfE -l7ml0Q0W3E+DgpRilH65vSmMOUxoJNF+ZnOxgrHk47SKhS6MyVT+ixg1dx/nwfNh -+HLMdthMs7csgbRkmckXkWlfhL3SUQPlqEho11rgArFIg54Qy6sLiZkeH7P+JV59 -QNXPbaU3wcWfy8IqHe4+CAysZfhYgyJGcbWzLVQONArrPeOhvwg5RaacVBv5LFdN -SQK56P8JatNwuNmyF6ohdhK32H0DSJAThRtf+FormFVcoM54pw74HOvvzqtW5Y+A -4xVXYYw1WXKVpA== +DAJLVDAgFw0yMzA5MDkwOTI0MzNaGA8yMDUxMDEyNDA5MjQzM1owMDELMAkGA1UE +ChMCS1QxDTALBgNVBAsTBFRFU1QxEjAQBgNVBAMTCWxvY2FsaG9zdDCCAaIwDQYJ +KoZIhvcNAQEBBQADggGPADCCAYoCggGBAJCo4CkX3xYZ0eHO1lhaIU5OFmnmw/7L +gn4w+Zz5HFarzrdmwA/jEJJG8QZc4NrKD9l8KoWqI+ilmGyQYBwwTxe3+Z/YDmpa +1v9eClCy7ITEO67rCpifFlQ1X6V3i6xY5/m0zJCO6xdRGwJCXKcq0QW5l3ulZkuq +jqneqV0DmQFDNwl8+Gq6oqI86XU9dZQaOCeVXgq2HRlpErefqAzIfcowdNUTRyt0 +6irgPwkGU5YnvIfGSjZZIgekybQHuVs0kKzkQQ7uo8pQQoYLCOG4MveAkl6f9BhJ +pVnxoa42KExIMbxL7Lx4rLTTy7BrWBh6WeTZTmncOVc3/ZfBUqCAdMvwmN7wNiJu +tOEsfCUTX8vbMKUHIAuLyjM4TYi4K5/hYdw5Mu6W8GDnz2OuuRcqtmTn2d+m7ha/ +Xys+Ulv10nuqxljjlncAZ4uZhAZ5nGcU8Ly2e/2BHND7Sj5BQsCdLDqBELcil0ef +uLiT1PsZRvdb+HDYXuRHCmR50F9GkHI49wIDAQABo1gwVjAUBgNVHREEDTALggls +b2NhbGhvc3QwHQYDVR0OBBYEFBzpPQpZk8jnAi78U33bOdtLDOARMB8GA1UdIwQY +MBaAFP74c8JMNP2DEvyjWf4rkS1ez16nMA0GCSqGSIb3DQEBCwUAA4IBAQBF+N2d +ng85nfowXjf5QpCFfAVSFn8wyNrH6OLth7Qyjim0e+X1G7sbvy4nb3glv/lrqHqw +p30SqXZnLUq6PANeOOELwfeqwEtEC1eVezzx525wbAZycKoo216w+ff5rAFn2kaM +MuOCVgQWbOhBwEELMIZdBjl+NhZMcGH5sLwwTms7vatoJTZMhSYq6VS9NTb9PiGF +WC9H8KmC3cxXVy/c3n8H4//fbJGFIznmjggJZcnbjHIUfnIRLN1HpcEKwLKlfldq +e3oT9llbazrobGGn9xb4tQhIi03Hb//jpLMdaZgyYQuSkzEd6KNi7T5Ua7Mvna5y +LRWgZhcu5S/l7VLJ -----END CERTIFICATE----- diff --git a/test-secrets/broker1.csr b/test-secrets/broker1.csr index 5133a63..87cd90c 100644 --- a/test-secrets/broker1.csr +++ b/test-secrets/broker1.csr @@ -1,17 +1,22 @@ -----BEGIN NEW CERTIFICATE REQUEST----- -MIICpTCCAY0CAQAwMDELMAkGA1UEChMCS1QxDTALBgNVBAsTBFRFU1QxEjAQBgNV -BAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN3g -4mqjRsvJXTvUM5ML0aKuGIxed+jzNzPRNfylWq4K/fiw9MhEkd0lDosZUbSeGnA9 -zuyvTCzuxp2lWPTjcUF4OLPFzgbhug/Vz/IhMabsVU1w0nnGP+M7mOesucjQ5uOl -P4i4vNfoZvce6F4fUOKTyzU/Mdb9g4LBREJoitF7hv/XDYyivm30EVJJBpVFepJ4 -RW6RTYcIsWh7bfsW5cYZv6iMu8SnFBE3fn3xG8KAKkkeVf2dW6E550u8jfm5/z3J -x9zISPaGtnMuDJstwAFrOQOUZOAZAXEG5U7L+q+0fhsC+K1uj8w2Nhac58iNgEv0 -wEF7knf1raMznqI3Xw0CAwEAAaAwMC4GCSqGSIb3DQEJDjEhMB8wHQYDVR0OBBYE -FHHoMG6vGRAYMB4rvjLJpquFMG7lMA0GCSqGSIb3DQEBCwUAA4IBAQA20Dtm38lA -mxDH+0tMDATOZC21gCRvLVAWKUXjiaJE3kLSBpj3ftQvf4lMX/+8/aRrp81l9lxi -sLDd4EqdiGTy02GlFq6agvWUCWAaTV60XDU2KEKuk0DHqaRtvvx77eQGtvHkDnhv -3HSNOl4LfRrgt+M33Ge/OaKQKg18gvXwufH8MyLB6n81f41TF4gDcMIhXxip6/QL -atBdi8FTOakiaMeYEIzCwEyp/sAxBqyY8rkBe9C63RXUJ/Z6CDHsxWfd7W2ohBsx -YZNSc2kCSAL2EgilLMNVBazBPh/gYuvT9EkIgdjMCjizL2CtK0QUhvd3o0Ji73P4 -FZZSKXmmAxPP +MIIDpTCCAg0CAQAwMDELMAkGA1UEChMCS1QxDTALBgNVBAsTBFRFU1QxEjAQBgNV +BAMTCWxvY2FsaG9zdDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAJCo +4CkX3xYZ0eHO1lhaIU5OFmnmw/7Lgn4w+Zz5HFarzrdmwA/jEJJG8QZc4NrKD9l8 +KoWqI+ilmGyQYBwwTxe3+Z/YDmpa1v9eClCy7ITEO67rCpifFlQ1X6V3i6xY5/m0 +zJCO6xdRGwJCXKcq0QW5l3ulZkuqjqneqV0DmQFDNwl8+Gq6oqI86XU9dZQaOCeV +Xgq2HRlpErefqAzIfcowdNUTRyt06irgPwkGU5YnvIfGSjZZIgekybQHuVs0kKzk +QQ7uo8pQQoYLCOG4MveAkl6f9BhJpVnxoa42KExIMbxL7Lx4rLTTy7BrWBh6WeTZ +TmncOVc3/ZfBUqCAdMvwmN7wNiJutOEsfCUTX8vbMKUHIAuLyjM4TYi4K5/hYdw5 +Mu6W8GDnz2OuuRcqtmTn2d+m7ha/Xys+Ulv10nuqxljjlncAZ4uZhAZ5nGcU8Ly2 +e/2BHND7Sj5BQsCdLDqBELcil0efuLiT1PsZRvdb+HDYXuRHCmR50F9GkHI49wID +AQABoDAwLgYJKoZIhvcNAQkOMSEwHzAdBgNVHQ4EFgQUHOk9ClmTyOcCLvxTfds5 +20sM4BEwDQYJKoZIhvcNAQEMBQADggGBACarwzOjCatZECC11vzm/2oVP3x9S5xQ +7i9u6id0ps/hdgj3mne1RjTjFbae35TqIp/ZvcfTq0Bba/8S3Z4RDpdqBymPhCWV +87R2hnLQAkayeIWJonbRczS/PpbpCwOJ5I+JPO1FC8Z92hZr6WY5yi6cD5Qhwhxd +GtprEGOAVPLm+1GdeeyAwcGRisVDSSxHLvTdluq1bt3h7zhYfrCcXgW+toqiKNGB +Yvuj+g8pD/ApNXvqO1DHwbnzc75y5fmZihtgNLc8Ivr2QUzSLP1eVIUJ5HYT3cV4 +j5kUBVaaVkMDipY/JUYCz1Xoy/ZI74cMUWvdNFgFNddNsFYYQGdiQUEoy3Ob6Ol6 +0aL9mIk2r7jEedkKdjLOh0hIf/+3tw+a7/1FiDZ9/QShvUF57FIh3ioaIxOfEsIA +cHdcH3xGbqDv3NDmYJ+hGuIyrbOlQldljfWgwGWmqItu3E4f61CWAW30Nc+YGv45 +Ku/uMtSx8aOmYsKeAyv9YxJu8z02br3nUw== -----END NEW CERTIFICATE REQUEST----- diff --git a/test-secrets/create-certs.sh b/test-secrets/create-certs.sh index f4e387e..5bdb917 100755 --- a/test-secrets/create-certs.sh +++ b/test-secrets/create-certs.sh @@ -5,6 +5,10 @@ set -o nounset \ -o verbose \ -o xtrace +rm -f kt-test.* +rm -f kafka.*.jks +rm -f snakeoil-ca-* + # Generate CA key openssl req -new -x509 -keyout snakeoil-ca-1.key -out snakeoil-ca-1.crt -days 365 -subj '/CN=localhost/OU=TEST/O=KT' -addext 'subjectAltName = DNS:localhost' -passin pass:ktktkt -passout pass:ktktkt diff --git a/test-secrets/kafka.broker1.keystore.jks b/test-secrets/kafka.broker1.keystore.jks index 78eb9f3c6fb05f6f44713eaa3ca810a4a833e966..48b69d133b5e2b76093c08c06879091ea253a3d9 100644 GIT binary patch delta 5184 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 delta 4428 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 S@avR~3g+V}da~sL0w)mRkY|+u diff --git a/test-secrets/kafka.broker1.truststore.jks b/test-secrets/kafka.broker1.truststore.jks index 076ea1b9302ce31a783bc0ea8d0f36d3aa887bc4..410f78b0b2d92dc4b8e996fde9266db7fb84bf04 100644 GIT binary patch delta 1114 zcmV-g1f~1d3DyaaYZNabM0tI2KZ_EbOL>{kGg8S*mV%LgB!8^o!u^s7q3>@Km0U}9 z-c*2s1JGznBtSPOC(?CfocTN^J1&G}MZF}E$@UR|VKgLz_d{Oto6MLvilV)A$TxK@ zfx!%R>ZwMP!ZpxntG4tBiNwDM_7$>qTkp8-_mqdZ_P!Ug!^Zs~)?7)2+X_L_?T2^$JMRidycG3cHL6|3&qDZ(X zJ+y?11w3KgltrZp>%laCC8$E$x_7@V1U>%@mFjb`iGLYF(g*_yaduVnP7iABWJj9w zFU+BFtN?F;A(D7c>4v4`KS1h^9iB~aunX%hZ=br`lU`yvi@33)MeE5wV5|oN7$wrg zo<_f7Vb+qlzULObX4Ls3--6+`yO%z|yjX_bm+b_Y=#nq)S>ZWl$0_4A>Mo&v2~;T) z(sw_r@P94-7qHF$iuHd&S=x-rwlAqqGYkf5%di?tU@$yh4)F#*Bf13 ztQeZ(xlN+G?c2mK`}y9wVnJ?ZZPiJa8h@C-{<^MtKwt)bocJx{i5{?T(VluX@PI>) zON$YmJ+7&MaRU~)D9UKs7I!a!;PqREs0VHVLizhqDS&&0k631%#J0Ti9zs-bPcid` zJ5^+`vtF7@i#0jAu5&>=XG#mBHgt`HtKXw<8uP@J~=ORWo$7w}S{3dXE| zw=hjGF)$4V31Egu0c8UO0s#d81Un!Y7Zzb6AN~Y|4v<>qV0?okjQ0Br>TLxnpNc)D g>(YM&6hOf3H~KuFc0a4~-UA9Nd`%N1=K=yJ5G2tHv;Y7A delta 1114 zcmV-g1f~1d3DyaaYZOBH)cM+2BVR?=5tkhI z7(0N11JJ`NWB%qMg)C`tjS5S@*L2ER=Japx7LSi1n8JP2$P(kYAV);aVig(?0>`O2 zp!1a(cz0@Dk3tu>h1!+a$#64AVFDlqp>9Mi?G8^Q49q|nd{zcSPN-9r5-(Au==Amp zXiEJgWU+u~)PHe%Z>lP*--?PoGOg|p(q*H&s^)6iC|Wn|U+cN=>kuzsKf~>r#R=5v zPoD!E;N~$c#~JtMTYuamgk)MIam*W!_Tq9>d#uO}LNOPaW4dOYgVOJkF%1*nckRByii{H_WcDOH2QXGqLw}7kTJyJ|+r@fWN#GC?3YB?uH`X_v zne%eW{G>~)atv%gnK{(ubvM1*AKtPEjXB6Z8^7_%2G5Q=B9@ARgPs~fpUlta8cyeaLogOe?P8(0%RM5@9wA)Q;@sYegZUmm1O&Lvs6`|dEfO=e| zffml*NAJif0x`WTVa1~13H)Dn${}Lo%@>A=7k`7Op{R}xrflUY;^b8?))w`36lNdG zcz!8M4SM$%y6q2zOjtKM=8|#6?Cfn?u(VF$6R)`~+i)<}?KI6>TMb0-{4u|S73}8c zp3gF&xc=yDtgy7|EzTiTFwS3^#4b_g1il8vErS`9F4?T)=%hGY)N(x;Q@g2kK{@01 z;D0u?QZMkfu1_E)XJ#1NG+}%Nrk9$1pf@m;>xW|Xak`nlnph|95kUY`(p*wzQ?E{RAZ)6onvvUeKB z@wJC5t?j8Ufh_SjNrwVsAi6w6mY?}+PQ=G z@pUn++fTxw{Qup_eyIy723eoBTB;nOyeKzEzBZEJn+a diff --git a/test-secrets/kt-test.crt b/test-secrets/kt-test.crt index f1697f9..21c75ba 100644 --- a/test-secrets/kt-test.crt +++ b/test-secrets/kt-test.crt @@ -1,19 +1,20 @@ -----BEGIN CERTIFICATE----- -MIIDBjCCAe6gAwIBAgIUQLTARfFpFqJ02GybrjTPme2jKzcwDQYJKoZIhvcNAQEL +MIIDSDCCAjCgAwIBAgIULxF6KJKCcA9Uqd8v73k/6ZoJgckwDQYJKoZIhvcNAQEL BQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNUMQswCQYDVQQK -DAJLVDAeFw0yMTExMTgyMTI0MjNaFw00OTA0MDQyMTI0MjNaMDAxEjAQBgNVBAMM -CWxvY2FsaG9zdDENMAsGA1UECwwEVEVTVDELMAkGA1UECgwCS1QwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9SK4B7cRCRdz69snq3ucd4oo0eqFvXYfO -iKfGAcAtGc4rhmqBYYILvZMKqE+SWWQvz0k/vZ/S3UpvSSdYH3gducJ235Durqn5 -5wzEoRvoZnDBB97b23mWrbmsLnzhQ+4pfLJ5i4k95H+Uv43fagj2fiKIBGnp6WW0 -5w8zpI/98/bEQpR49U87m2oEQ+SAymRN3kSbNjiCw2JAbkfWBbAPatp0TRwVJp37 -2/X0G47EmMuWssZwVips7M0b5sncoRaz+Mx82N50H4eDydGxRu2hy5TJsi1VrlEH -IS8wKsIIrROuhuudQUb4EGtZmMWBdoT9DLELOtRukYJVtoxOx2a7AgMBAAGjGDAW -MBQGA1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEANidhoETV -/wTfQOs2b8boTd8O62YCtCCFowgzzUYt/dDGE6s5bZN7zzZ6kz7TFuIoVvsedXzu -RZDkzpBfPu1v0drAh5J5RnFnyv8sx6OctN6Z0LtwxlNB5hbheMqhLa6XLQttzgLB -pF5H7n/eE5C5z85OITIgOc7K8ZIW0NVDlpsbAeGtaxSV2E9Vc5p1/QdYkJfHBQ7G -yuVj49XhMjgWtNZKmGabmoLLeYMbZBjDCIAZzvbjnnismFq+JIomkAaqHaAqtfuq -pEAsoJfIbkFqasfRpa/13LCSRCWuS5pbaqx23U6SXUiCGHWSflvFRocfVcECahnr -XynNQOAi5VWPTA== +DAJLVDAgFw0yMzA5MDkwOTI0MzhaGA8yMDUxMDEyNDA5MjQzOFowMDESMBAGA1UE +AwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNUMQswCQYDVQQKDAJLVDCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMWUZ/gXqWddzVsm7t5k5kscMpELT2/s +CS8j7pYvujpyGh0Ehv/kbq9ICo87bj2LbpZ7bfOR+Mzq+8kfN97pYvT2m3A85nWx +ANLExvLuVr5psFUG61I12TvfOI+YxtX2zmy3KgJyiP/ijQC9580V3d8iZfCQtw06 +Q31SQcRycnQYjpRisMKZAtbO3j4IfENVpuEUo7Fv+vv8mQJ2wEVtgCoG95P5UvFb +UsVil7dr0d8qsdiF5oIacR0FlTErVE/PaIwm1X/jg39MQ6TKfi9pqQ+nMaLBGeHB +QqOVIOMvN9TjgbJXiIaUY+uRCJyGYy5Dc1ZTiVS1vr2DLDO9LPajelUCAwEAAaNY +MFYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MB0GA1UdDgQWBBROxHij48253g4hpWAe +1kW5HqhUczAfBgNVHSMEGDAWgBT++HPCTDT9gxL8o1n+K5EtXs9epzANBgkqhkiG +9w0BAQsFAAOCAQEAK4zIgCsN9T7pcEhZr+sEuXgjZjfs6xLmxriE3jgWEGuR1wd4 +L5NV1usCbDI4wl/9RhMZ0+CnZvnqKgP+CiI6T93aaUMyVEQa2BCsz3gr81KGH/Ha +x5oqMTLUyQgphotOK9Sr3Z5WCN3t8kqx1uJsgetQfmsX3FZ8ADgdABelPZBDgSEC ++UX8pGKmHWF4eUmkHv58TJZX2vcD8eccsffXbdUZzxxCsnmqveIzNYHpwr1n/s8V +asPGatsOYGD9emkhRstod48WPXWI5ld9fB1BpL1WIerXBHchk5GQZuZEVWZzXuC4 +GyXiFNgL2YNURgKKaNb6hJEEBKpWfX8doYzylA== -----END CERTIFICATE----- diff --git a/test-secrets/kt-test.csr b/test-secrets/kt-test.csr index 52c7275..3270100 100644 --- a/test-secrets/kt-test.csr +++ b/test-secrets/kt-test.csr @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE REQUEST----- MIICnDCCAYQCAQAwMDESMBAGA1UEAwwJbG9jYWxob3N0MQ0wCwYDVQQLDARURVNU -MQswCQYDVQQKDAJLVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL1I -rgHtxEJF3Pr2yere5x3iijR6oW9dh86Ip8YBwC0ZziuGaoFhggu9kwqoT5JZZC/P -ST+9n9LdSm9JJ1gfeB25wnbfkO6uqfnnDMShG+hmcMEH3tvbeZatuawufOFD7il8 -snmLiT3kf5S/jd9qCPZ+IogEaenpZbTnDzOkj/3z9sRClHj1TzubagRD5IDKZE3e -RJs2OILDYkBuR9YFsA9q2nRNHBUmnfvb9fQbjsSYy5ayxnBWKmzszRvmydyhFrP4 -zHzY3nQfh4PJ0bFG7aHLlMmyLVWuUQchLzAqwgitE66G651BRvgQa1mYxYF2hP0M -sQs61G6RglW2jE7HZrsCAwEAAaAnMCUGCSqGSIb3DQEJDjEYMBYwFAYDVR0RBA0w -C4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQCCr4wpCaFQolGsIxUV6K9p -gIVsxCT3GGMaW+xulH+q+UV+VVH9CAkbkL7BJZ75HEsmJs2foZrI63aiS0QMRc0M -QL+TQC0c2m/c/1ck0gsiIFdG8umUXkkQDvffrYW/o/Lz+hUcfsAhBXGWKHh+1gki -xbk3+0EH3GubTYhADaOEPsemc1rnqp4FFGJ82fPqHpMXZKVoet8alyygp/rVpQ+V -460r51vGNRJFGmUp5MUBRDGAsVJa0YhR7UE0GiUQXom90mcYLRwjHt2XXhQwvJua -ek2WfBxfKrugH5DrI2byPanVrtzA3mWOLhosFGgNK59pKVZTqqnNSwUJpw+vKJxI +MQswCQYDVQQKDAJLVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMWU +Z/gXqWddzVsm7t5k5kscMpELT2/sCS8j7pYvujpyGh0Ehv/kbq9ICo87bj2LbpZ7 +bfOR+Mzq+8kfN97pYvT2m3A85nWxANLExvLuVr5psFUG61I12TvfOI+YxtX2zmy3 +KgJyiP/ijQC9580V3d8iZfCQtw06Q31SQcRycnQYjpRisMKZAtbO3j4IfENVpuEU +o7Fv+vv8mQJ2wEVtgCoG95P5UvFbUsVil7dr0d8qsdiF5oIacR0FlTErVE/PaIwm +1X/jg39MQ6TKfi9pqQ+nMaLBGeHBQqOVIOMvN9TjgbJXiIaUY+uRCJyGYy5Dc1ZT +iVS1vr2DLDO9LPajelUCAwEAAaAnMCUGCSqGSIb3DQEJDjEYMBYwFAYDVR0RBA0w +C4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQBuLVaJnFEfv4JVqeoNTOe1 +YNe/hHyVtCkv/f2xt9sPvGnUmV1j15j1G1O3MUS+vf01wfRaHabFqvmd1KFMQHrN +fMaWGTYcdX0Sus8OJpNRVpqu7marAkLVHs2w2GGmicTd4sZa0Q5Ik7r8J3o6+drS +4TYK+33TtK/ujp67ryYEDypl/eh7sIUGLNlRjCHvX14k4nGyL+GYiOZ2rnoO0K75 +oWYutCVbtCrtC08bLFhSPmCkWCH3lPIP+sZIYncQyQ2eyyBvEqdI7ypySRDujkw2 +cWOHMc30WJ0NJry46o7Nd9TofK3LAdNGxwDNk3BQYW9Z9kvXOI6Ea5frYVCGIEv9 -----END CERTIFICATE REQUEST----- diff --git a/test-secrets/kt-test.key b/test-secrets/kt-test.key index 7e1d764..831ecea 100644 --- a/test-secrets/kt-test.key +++ b/test-secrets/kt-test.key @@ -1,27 +1,28 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAvUiuAe3EQkXc+vbJ6t7nHeKKNHqhb12HzoinxgHALRnOK4Zq -gWGCC72TCqhPkllkL89JP72f0t1Kb0knWB94HbnCdt+Q7q6p+ecMxKEb6GZwwQfe -29t5lq25rC584UPuKXyyeYuJPeR/lL+N32oI9n4iiARp6elltOcPM6SP/fP2xEKU -ePVPO5tqBEPkgMpkTd5EmzY4gsNiQG5H1gWwD2radE0cFSad+9v19BuOxJjLlrLG -cFYqbOzNG+bJ3KEWs/jMfNjedB+Hg8nRsUbtocuUybItVa5RByEvMCrCCK0Trobr -nUFG+BBrWZjFgXaE/QyxCzrUbpGCVbaMTsdmuwIDAQABAoIBAH59GiMZ06QB8ckX -sBkvObzjzT2CkWzNUNq4wXz1YIoDC55UZcnt8iyMU720efAvol68o5Nf0XTlAj/Z -39vos6kRoJ01izGlMNtaBlND4lVsV373FntPcDI8B67DJhqW/Yll1hKZJ25fys4J -L/KTdkfaRJMmd+yjVp8MJUF6f+rQu7YG/Z4kIqjyB56nq9/3aZuYYyDpzuAxuVTr -tNIq5RRhmtLA4JZ3/LG5FJmi7ONdDdmRmMzszjDwT3nTw16oIykmiAmijNqsz+AO -ET1YllExu+63UFCDdRoidFUqDxV27IbWQqVnKiK2eKgm2veA38kyUQnzdNfsy7Fu -yKDqGTECgYEA+Mq7ghaCjeKqDioyTUYWipUXqsdrsfodSlechl7B0N8MYcHkuqyV -/F+VBTqE+qQ3wIwPeKqsyHRHXFxFI09OzvO269TzGTwO0nRenmGubkHu+CYzJmSG -hw0t1ZZDiWYAYxTInak6TLtAdpyjiPkk5GaiKhaLoAIBCG+lSrqpp4kCgYEAwsSU -4vi8QDdDadd9OyGMTApguQXFES/h9YXfr9Y7Phfv4X9NkkkqdtLeZ6VQL1+KBKwY -7c+K7ulehvpV54/y6dM+u0v8k4sYcwCAZ+fSsk0Oh+560XgaohhxX9umcN2DtSrP -cMDCGojAnw7m36KSURtmE9KqwfN5C0vW0zUKxyMCgYEAxyv15PUEW3ZkUaayUm6T -ySoGom+35emn3UY6RtBBNWf7T5+b714PTNVwRZlNsCIbiAgYsq9gV7HPFz+/Eb+C -BefSPwZh/4e3DgCfZwgoTph2KS7bsBa2JBQG54C+XJbOJIQU/zLlO1yFBO/tc9CR -GlCX7j3SVayFCy3mE+dPvpECgYEAtY+Vj2P58Q7TPAZSSl4CsBv4gGIdi+EMDdmn -ZP4bKc4coyQOBvFHsY7vHsVfU1oHikV307BmPkK0CLWygPOSqWBwGR9Dq7K9ru7n -xHS519a3VgX83enNQg/xGD/lD0+f6LGowN4f06ZpkZzNoeml5g/Zf18iKT0zOFGR -SEAo9OsCgYACNMYSD6X0xTBwI0f/MRLElB64RGjFk7d4yKKBMQQebzUJYqkT/G2T -F9eQJnE4GSLYUNfOM/2OikIS94vEyU7SpMcCNTpvMyFFlejA+95EhugGM5Ll5shM -tags0wtiouEpMOqquG0IVyyH37BarufTjuqUvJC8oV2iHMRS8TFcMA== ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFlGf4F6lnXc1b +Ju7eZOZLHDKRC09v7AkvI+6WL7o6chodBIb/5G6vSAqPO249i26We23zkfjM6vvJ +Hzfe6WL09ptwPOZ1sQDSxMby7la+abBVButSNdk73ziPmMbV9s5styoCcoj/4o0A +vefNFd3fImXwkLcNOkN9UkHEcnJ0GI6UYrDCmQLWzt4+CHxDVabhFKOxb/r7/JkC +dsBFbYAqBveT+VLxW1LFYpe3a9HfKrHYheaCGnEdBZUxK1RPz2iMJtV/44N/TEOk +yn4vaakPpzGiwRnhwUKjlSDjLzfU44GyV4iGlGPrkQichmMuQ3NWU4lUtb69gywz +vSz2o3pVAgMBAAECggEAA/YEVpSiMO5lg72bqGLlSnoHKEVqTdx4kP90OGX3RitL +0nJh3z/vtctFMOyGrGV32FkxLj9N1iKGMop8ptcV6DRdyI1kAQ6+AnSZ2MrGJkB9 +VpPurvdFHykhKfZCC8bMNK9czppdY5ZTfmTzzq+NSjyI40IsyqEDQcAtDYbOLhnJ +c5I6QYrRovviqR+MNiFdkhIdfUatcDVHYWiyPBlSr/Q5NPFw2z/JQGiVHlAnZCFs +coJPKDNgDA5Xgo/1oMI7j63PpUU0cxdl0MpNtsf4PzmFmjRhLlSSOvjZNSqkIetJ +VAqWknsuM4m79/ZR9D6heOzlHdZPuPPTZXqe6mbyAQKBgQDv2me0QbZ7fytmrjoQ +aa4rGbgS4/GMEiPK17IVo0NlIdMLAuaEVZnBBiPuFNDLY25bh5T826Z7VT0YWbO6 +hLZjzltve8Bj1TRHmOuYPJs2DYMuWl/qs6bFNU4ZYnYvrEJwRlxR4s39ZPLaUKz/ +M0XBul1YSUwQYAwBN4GXC0ekVQKBgQDS4Xd6RFldqCCKYP9VKiuEZZgXDmYpB40O +35HoiAs+GVbtVHE7iIqeCHldjVYD/22HU9oGHKnwKjk0Kq13LTPbDmYbis9eG9vv +pdtNuD2/0iEUniRqLsu7xHszutZ+IaFqOqnsqoYSQYDqMocnrIcIqs0b3/XGNvle +1KHpMJJ+AQKBgQC/ned9nYXwsY710Dj5BcSsEDb7eHlvospPcfSGztC3ycb1pBKP +JGfaSlKIEL8hzcTLgMypGb2uCFHv0zH/z6h6odBwhxgTabADhwqoq7p/+1mSvYal +VXLlWAmVxBCRU3gchEma7awNRQmzGgKrOsX+2Clcr+oBpwnQKwzvo4ZPpQKBgEri +6FPR+85Hiy643VN4AzYkAcuGQH8ngE8c06q4zQ1DYFwtVXyns1oFdlvjef03csTQ +4Sa0fSCdTe0Zjro4oiaTSW1UcOlhiUvkISnLWJpK25Z/xjyy24SVdI7dNZhbBwA7 +TuaNc8j92/LO+LH9EYLhbK8ObC/0i7/CULEHn64BAoGALoZhyoww72GZhDnK7iOy +4BA6hffMrg0TSTr9w5WKLiZ5cCreTt4FwycyyCJ77k3J9W8yVo6t1GQ/5185befI +1H6NuJFVzQwweEPxNw66rNBbg+0CO01lZx2BGw5FB6dbaDrNrWP2lgSeXiihtJDk +y/zSwljPZCDAsp8Tscsw9OE= +-----END PRIVATE KEY----- diff --git a/test-secrets/snakeoil-ca-1.crt b/test-secrets/snakeoil-ca-1.crt index 14fcb6a..6398d65 100644 --- a/test-secrets/snakeoil-ca-1.crt +++ b/test-secrets/snakeoil-ca-1.crt @@ -1,20 +1,20 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff --git a/test-secrets/snakeoil-ca-1.key b/test-secrets/snakeoil-ca-1.key index ac85997..5573774 100644 --- a/test-secrets/snakeoil-ca-1.key +++ b/test-secrets/snakeoil-ca-1.key @@ -1,30 +1,30 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIIRv5EihzOf4CAggA -MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECP3WKRr/LDp4BIIEyGdYtrDZ2O33 -uWN539uy8cTCqcbwwgvH/0zYOqacKDvf6wAHAPI24lTIqo9yct0uv10j3sVSnQPe -3bcB6jZ90r9nLsKgUZG6RJB/JEDIgVt1VNyvSuc1dez3U2ypSRtqcDIYKcctRL4v -sbB1nOhMcF6gEHaRtI3Sggmh1QmJKK0fO9r6F7GCviF3ku9Ftv+EViJVcWC19HH/ -/aFWg/E44uGLvZUALVnq+ZeyiEFmWtVPKz9rFRjNnvoNw5LTJXV/wNBvSU/YpwRP -Z2Ct/89YTpMqRVwxWKf1rU0hMujbIBP43pXZwLioAZ7Gii6eighNYwxgLflv+0dX -4UL49380DPU7TIZaOcTjviVI4U0aTA9IUjNPYNY9qUSwyIo9nr4Uqik5nMLxN6nD -p5q9wWwljrSn+L7S27X853n0a1pqQGavLOHw2Zb1RHoymFFVyV6WcW/eJk3An2t4 -Ua1yKLVuIPZCaV1SQ6Ey2X8XjDUnNkXnYhrZlEv/BWO/hmx5KqMHyHu39WsEq2it -9B6DEmQ0n1+fZJAoD6Uu+QVsry9rRzAL4esGOty4npixr8XtGcNcWqrSlfuulPDy -MJdP2eHh5cVKbUUTKkCy0yscCzvKQsadc5fgQAKWJtQsvvinWf//N2pXOgXStnu/ -KAxlC5pE8scnlqUcxfucrhmZuqLfJQep9WOrmc+815u37lFezwCfgrQtl2hB+kcR -79JvCqLjtLcUg+boaa+Q2bN2V2OcoWpcy53z3yDi44yUFh1jnE+Y57J1KBm1AU5I -CTTrtVttgUDESKJ4Nj8HSMDxZ5px8sJ+a476R1vwm28N3G8Irp4CLXHrstOAfleO -E0aGCKpPS3ai9ci4sUX4IQtoWS2CWjwRKBwvz10zJdS0/F5J+fsIKHE3i09GH3SJ -rLy4177KpswrUwsSAjCPjXtf9uP57olR2WfS+GLfH0i9V71B1NqMdfpqt/Kg8qJH -/8nnq/C+MMmX/BBDkvyETIg0ene/rweswu+q1P26Px7g0EwKLhjNNZ+esNPAMK4S -RapRu50nkVqXvM0DISFqCG5RniaQ+TqXc8DmYo/v6qUZgoabuErCEUJ9+kA5Ylur -R5AltxodpFAVhjlbZLkFEAPsNaykr/RObb0AmQOzPofbL4zhDWhjoY5JiiuZIm4N -Ya3NG3wR/3UnGBZWjQPcrMTIRu22ynawKhXS5ne2F9xugMg6LV2Ju6YYeB7SEdjE -IiJZlWyMeYsHIkvutgqc55hsVVWkQt6SLZgR5h9A8GHm34O6TqR8Cn8zUULHy3MV -uKeyGwKhFMKIuN9sQERrE4To7HCdvUhds27UZGgKdacLJcfKSmHlXGSb3Jrz1e/L -0MHhE8Yp9haky7/yKDt+qTXh4fdGNWGVN8LLB3Gmdx6o7JCllIwRpf2JjKiuKW8Q -3yjtNteWM59Tc6eo0EEGSj6RV17iwI3oaJOTPsFa4T6bcivpvAzAfFSNXEh1oy54 -g8Q67mYCfu6soYwCrSsvNw/K+Dt6qDY9f/0KoMlbl4N4bBn4JIjo0+gfIKGd7XtR -eOFhOe0MwUltgSycXtIa+1W3N570sI2e/JoLHQT0aUVL+8ef4swGBcx1PQkKZ967 -CHsi4Fjvaqvc5ZFkPjjbZQ== +MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQISTm/5y6Y+fcCAggA +MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECHHoLuMkCMfJBIIEyM5sggx1BvrV +RppMyoQpWQ9ZTRHnmZTESwyIYm0Pn7ycpxSv/x9eKYwclRP0nKW/8xsBwImYoO1q +V3UBTCBYU3OfBn6GbFzO5ajXWwJa48NiAkjZ3UxycsCjJAWFVOHxAwWiUEbmO/52 +RoBlcAW2TuNRsMwBoZDMkky3YQr5VlSJaFKBXAWItr1XAPWECNVzXwIJVus3qFic +nYYhCYpunDIfWSlqjYjU4vQ946qvOY1yRU/dqTYYA+g3jHqDiW4sQhZocELqiLkR +aLsr+BUWaazB56PHvCNhmy21xUP2Ts2MiIbctXtpOtMFeYTNXqdisZhO0iJaRr0u +g0e1ilnzWypMigmmZwvZnG0lKN2qNS5Vl4lNUmJ3TFXVYmgweiryherqdzA0J9jS +hDBzwfGCWbAprt/HHliknssUnELTM6Ij0i0lyf6q/z1Ol/y0pwSmHUjx2CHHF8z1 +LSNdf8HTY8ugyGoMCFxDIenFDNzfT9ZRrE3MW6H4zcctxHnpy0r0O3FZsIpJEhqC +bpkAyLYn0KQyP97HpcJ4kterI3iOVisQE26nI7dB4SWZs69Pu6TCLqQQfSQqF/hL +e1ZH2VsJ7v/lQmBYMY4PlcygkrjL3DQMSAUzyJI50do9Wd61J6OtQ+ib8E8yXWBF +ORGH1KXoQT2U4vQ8M8Y6Pco0b2pUV4JHQz0exygUi9QrLGpw4nh6jnJcDsWhy9Dn +C8fn3PWtkzsrndq+yO3VNKOxvJKj4ESb6C7UtxK5vArqinLhM1CREO12kyS0593q +I5VE9fWavI7NIBnzRhBVz5Wc66KllKTssDQgDH9M/HINL4ggc4vzHGwc+tKMLwL0 +RQqf5Q4YuCgS817vK5fhMvfoz+GiokG7UNwEUuIxG8ujB2ZGIdNtEA8Z6s8Rix5o +EZvCR55waWJ4z9k8qEL5CL7OoOMiJ6hxOb1C3wNXHPH6goegd9Ll7dS83oA/zWVP +DyxQjkuwQJsMibzb3dFEcZbwZC9P2dDYjVcn+jwpVSkObOmtkAU59PFtlHYwz36v +vHS1UJ/5Z2dNtFSNR2AhZ8meFyDOQynmUKxDXtsTX3onYX6nmKvnzfyN/B4sClWe +QXxKbGN3QwEaahSXiGEDeJr9ToBl8xv1MAKXygM0F6UT/BVm/7Nc88E9GFHpzzPC +spHzQS0VohvCTGx6gjv0boIwX74CRd0HW9h5WIOf4VJJeXjDMJ1ODY8a5hpxocgm +m2lNnO2Wn+enh6DSGnSEcSGiH1qPcZSeokuKdMDkFaPr6NsCx6WMOt207LyWyC2S +VfazWiGgq9qEaSs2S40PECCykKJtRMm+RsxPZOcpjIwZjsSmT1UszxkqNkpXeaWR +aXFePr2o/7BjrFb5f+5yMzD+1GWPcDjflMh/v9uCq8zyU0UvdM3UF3my5a/h9ItJ +JwnqsgroOHRlecT0a6KuDBTfoZCm8bLy8elvatpcwEkYccpmflbCy3W1TkEBeh7D +wavUT6FJcfOejYV4iPj22R7nFBKVHbSbhOjua0iEVs21ZjBlrm6dmBvXwjz6ufNZ +6eH9nXyO0dGS9i65T3mx1AlorfR9v73m/elkvMEs5rIdOPvLIOhvzMyN15PnAgEj +NqEt1wSboT/b2LB+dyELLA== -----END ENCRYPTED PRIVATE KEY----- diff --git a/test-secrets/snakeoil-ca-1.srl b/test-secrets/snakeoil-ca-1.srl index d11f7f6..533afef 100644 --- a/test-secrets/snakeoil-ca-1.srl +++ b/test-secrets/snakeoil-ca-1.srl @@ -1 +1 @@ -40B4C045F16916A274D86C9BAE34CF99EDA32B37 +2F117A289282700F54A9DF2FEF793FE99A0981C9 From 5e75f1bf6dc2d94b4671ced4ed866ee8539ec699 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 11:30:11 +0200 Subject: [PATCH 32/42] switch branch name to main --- .github/workflows/go.yml | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index e91eb5b..7f4e456 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -3,9 +3,9 @@ name: Continuous Integration on: workflow_dispatch: push: - branches: [ master ] + branches: [ main ] pull_request: - branches: [ master ] + branches: [ main ] jobs: diff --git a/README.md b/README.md index 97a2fb4..da898dd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# kt - a Kafka tool that likes JSON [![Build Status](https://travis-ci.org/fgeller/kt.svg?branch=master)](https://travis-ci.org/fgeller/kt) +# kt - a Kafka tool that likes JSON [![Build Status](https://travis-ci.org/fgeller/kt.svg?branch=main)](https://travis-ci.org/fgeller/kt) Some reasons why you might be interested: From 486f3b86e2ce8b1e890949a4fcc100f7dfce92f9 Mon Sep 17 00:00:00 2001 From: Jakob van Santen Date: Fri, 2 Jun 2023 14:05:34 +0200 Subject: [PATCH 33/42] Raise auth errors on topic and group rather than silently failing --- group.go | 4 +++- topic.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/group.go b/group.go index 79fba43..fa6c930 100644 --- a/group.go +++ b/group.go @@ -323,7 +323,9 @@ func (cmd *groupCmd) saramaConfig() *sarama.Config { cfg.ClientID = "kt-group-" + sanitizeUsername(usr.Username) cmd.infof("sarama client configuration %#v\n", cfg) - setupAuth(cmd.auth, cfg) + if err = setupAuth(cmd.auth, cfg); err != nil { + failf("failed to setup auth err=%v", err) + } return cfg } diff --git a/topic.go b/topic.go index 26ccfcf..5c87397 100644 --- a/topic.go +++ b/topic.go @@ -147,7 +147,9 @@ func (cmd *topicCmd) connect() { cfg.ClientID = "kt-topic-" + sanitizeUsername(usr.Username) cmd.infof("sarama client configuration %#v\n", cfg) - setupAuth(cmd.auth, cfg) + if err = setupAuth(cmd.auth, cfg); err != nil { + failf("failed to setup auth err=%v", err) + } if cmd.client, err = sarama.NewClient(cmd.brokers, cfg); err != nil { failf("failed to create client err=%v", err) From 9d4c73ffa256c805fa6c7364236bc1be1d94f789 Mon Sep 17 00:00:00 2001 From: Jakob van Santen Date: Fri, 2 Jun 2023 14:10:02 +0200 Subject: [PATCH 34/42] Honor ca-certificate in 1-way TLS This lets you use kt with unauthenticated clusters exposed via a k8s ingress, e.g. as deployed by strimzi --- README.md | 7 ++++++- common.go | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index da898dd..9dd4534 100644 --- a/README.md +++ b/README.md @@ -283,11 +283,16 @@ Required fields: - `mode`: This needs to be set to `TLS-1way` +Optional fields: + + - `ca-certificate`: Path to your CA certificate + + Example: { - "mode": "TLS-1way", + "mode": "TLS-1way" } ### Other modes diff --git a/common.go b/common.go index d8fa054..7a7f5b3 100644 --- a/common.go +++ b/common.go @@ -238,6 +238,26 @@ func setupSASL(auth authConfig, saramaCfg *sarama.Config) error { func setupAuthTLS1Way(auth authConfig, saramaCfg *sarama.Config) error { saramaCfg.Net.TLS.Enable = true saramaCfg.Net.TLS.Config = &tls.Config{} + + if auth.CACert == "" { + return nil + } + + caString, err := ioutil.ReadFile(auth.CACert) + if err != nil { + return fmt.Errorf("failed to read ca-certificate err=%v", err) + } + + caPool := x509.NewCertPool() + ok := caPool.AppendCertsFromPEM(caString) + if !ok { + failf("unable to add ca-certificate at %s to certificate pool", auth.CACert) + } + + tlsCfg := &tls.Config{RootCAs: caPool} + tlsCfg.BuildNameToCertificate() + + saramaCfg.Net.TLS.Config = tlsCfg return nil } From 663b21ab72249da2d2357e43c010d1b66f6c947b Mon Sep 17 00:00:00 2001 From: Jakob van Santen Date: Fri, 8 Sep 2023 13:13:36 +0200 Subject: [PATCH 35/42] Allow relative paths in kt-auth.json --- common.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/common.go b/common.go index 7a7f5b3..9767dfa 100644 --- a/common.go +++ b/common.go @@ -9,6 +9,7 @@ import ( "io/ioutil" "math/rand" "os" + "path/filepath" "regexp" "strings" "syscall" @@ -291,6 +292,12 @@ func setupAuthTLS(auth authConfig, saramaCfg *sarama.Config) error { return nil } +func qualifyPath(argFN string, target *string) { + if *target != "" && !filepath.IsAbs(*target) { + *target = filepath.Join(filepath.Dir(argFN), *target) + } +} + func readAuthFile(argFN string, envFN string, target *authConfig) { if argFN == "" && envFN == "" { return @@ -309,4 +316,8 @@ func readAuthFile(argFN string, envFN string, target *authConfig) { if err := json.Unmarshal(byts, target); err != nil { failf("failed to unmarshal auth file err=%v", err) } + + qualifyPath(fn, &target.CACert) + qualifyPath(fn, &target.ClientCert) + qualifyPath(fn, &target.ClientCertKey) } From b833b09108d37ae9d735ccdf8910e7f21ab7da2a Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 11:41:19 +0200 Subject: [PATCH 36/42] don't attempt to qualify rel paths with dir-name --- common.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/common.go b/common.go index 9767dfa..18a4210 100644 --- a/common.go +++ b/common.go @@ -28,9 +28,7 @@ const ( ENV_KAFKA_VERSION = "KT_KAFKA_VERSION" ) -var ( - invalidClientIDCharactersRegExp = regexp.MustCompile(`[^a-zA-Z0-9_-]`) -) +var invalidClientIDCharactersRegExp = regexp.MustCompile(`[^a-zA-Z0-9_-]`) type command interface { run(args []string) @@ -293,7 +291,7 @@ func setupAuthTLS(auth authConfig, saramaCfg *sarama.Config) error { } func qualifyPath(argFN string, target *string) { - if *target != "" && !filepath.IsAbs(*target) { + if *target != "" && !filepath.IsAbs(*target) && filepath.Dir(*target) == "." { *target = filepath.Join(filepath.Dir(argFN), *target) } } From b3202f95400c2c6d2b2e7939f19e112a1c6e503c Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 11:43:54 +0200 Subject: [PATCH 37/42] update go to 1.21 --- .github/workflows/go.yml | 2 +- go.mod | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 7f4e456..0d929bf 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: ^1.18 + go-version: ^1.21 - name: Check out code into the Go module directory uses: actions/checkout@v2 diff --git a/go.mod b/go.mod index e3f5bc5..3b45ada 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/fgeller/kt/v14 -go 1.19 +go 1.21 require ( github.com/Shopify/sarama v1.36.0 From 805dff5b24d374ed51590b15768ac25d7fe24931 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 11:47:20 +0200 Subject: [PATCH 38/42] go get -u ; go mod tidy --- go.mod | 24 +-- go.sum | 515 +++++---------------------------------------------------- 2 files changed, 55 insertions(+), 484 deletions(-) diff --git a/go.mod b/go.mod index 3b45ada..1877343 100644 --- a/go.mod +++ b/go.mod @@ -3,15 +3,15 @@ module github.com/fgeller/kt/v14 go 1.21 require ( - github.com/Shopify/sarama v1.36.0 + github.com/Shopify/sarama v1.38.1 github.com/davecgh/go-spew v1.1.1 - github.com/stretchr/testify v1.8.0 - golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa + github.com/stretchr/testify v1.8.1 + golang.org/x/crypto v0.13.0 ) require ( - github.com/eapache/go-resiliency v1.3.0 // indirect - github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect + github.com/eapache/go-resiliency v1.4.0 // indirect + github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -20,14 +20,16 @@ require ( github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect github.com/jcmturner/gofork v1.7.6 // indirect - github.com/jcmturner/gokrb5/v8 v8.4.3 // indirect + github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect - github.com/klauspost/compress v1.15.9 // indirect - github.com/pierrec/lz4/v4 v4.1.15 // indirect + github.com/klauspost/compress v1.16.7 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced // indirect - golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect - golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect + golang.org/x/net v0.15.0 // indirect + golang.org/x/sys v0.12.0 // indirect + golang.org/x/term v0.12.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index fde7111..689b9a7 100644 --- a/go.sum +++ b/go.sum @@ -1,140 +1,21 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Shopify/sarama v1.36.0 h1:0OJs3eCcnezkWniVjwBbCJVaa0B1k7ImCRS3WN6NsSk= -github.com/Shopify/sarama v1.36.0/go.mod h1:9glG3eX83tgVYJ5aVtrjVUnEsOPqQIBGx1BWfN+X51I= -github.com/Shopify/toxiproxy/v2 v2.4.0 h1:O1e4Jfvr/hefNTNu+8VtdEG5lSeamJRo4aKhMOKNM64= -github.com/Shopify/toxiproxy/v2 v2.4.0/go.mod h1:3ilnjng821bkozDRxNoo64oI/DKqM+rOyJzb564+bvg= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/Shopify/sarama v1.38.1 h1:lqqPUPQZ7zPqYlWpTh+LQ9bhYNu2xJL6k1SJN4WVe2A= +github.com/Shopify/sarama v1.38.1/go.mod h1:iwv9a67Ha8VNa+TifujYoWGxWnu2kNVAQdSdZ4X2o5g= +github.com/Shopify/toxiproxy/v2 v2.5.0 h1:i4LPT+qrSlKNtQf5QliVjdP08GyAH8+BUIc9gT0eahc= +github.com/Shopify/toxiproxy/v2 v2.5.0/go.mod h1:yhM2epWtAmel9CB8r2+L+PCmhH6yH2pITaPAo7jxJl0= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 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/eapache/go-resiliency v1.3.0 h1:RRL0nge+cWGlxXbUzJ7yMcq6w2XBEr19dCN6HECGaT0= -github.com/eapache/go-resiliency v1.3.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/go-resiliency v1.4.0 h1:3OK9bWpPk5q6pbFAaYSEwD9CLUSHG8bnZuqX2yMt3B0= +github.com/eapache/go-resiliency v1.4.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= +github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 h1:Oy0F4ALJ04o5Qqpdz8XLIpNA3WM/iSIXqxtqo7UGVws= +github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3/go.mod h1:YvSRo5mw33fLEx1+DlK6L2VV43tJt5Eyel9n9XBcR+0= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -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/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -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/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -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/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -145,9 +26,6 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= @@ -156,385 +34,76 @@ github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVET github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.3 h1:iTonLeSJOn7MVUtyMT+arAn5AKAPrkilzhGw8wE/Tq8= -github.com/jcmturner/gokrb5/v8 v8.4.3/go.mod h1:dqRwJGXznQrzw6cWmyo6kH+E7jksEQG/CyVWsJEsJO0= +github.com/jcmturner/gokrb5/v8 v8.4.4 h1:x1Sv4HaTpepFkXbt2IkL29DXRf8sOfZXo8eRKh687T8= +github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/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/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -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/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -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/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= 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/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -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/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= 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.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -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/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= 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-20190605123033-f99c8df09eb5/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/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -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-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/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-20190108225652-1e06a53dbb7e/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-20190501004415-9ce7a6920f09/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-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/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-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220725212005-46097bf591d3/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= -golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced h1:3dYNDff0VT5xj+mbj2XucFst9WKk6PdGOrb9n+SbIvw= -golang.org/x/net v0.0.0-20220809184613-07c6da5e1ced/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -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-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/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-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/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/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 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-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/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.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 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-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -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/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/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-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -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/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -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.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/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= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From 2507fe06bc11d6fa0ecf283cc69c783d4be1a461 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 11:52:25 +0200 Subject: [PATCH 39/42] rename to IBM/sarama ; go get -u ; go mod tidy --- admin.go | 5 ++--- common.go | 2 +- common_test.go | 2 +- consume.go | 2 +- consume_test.go | 2 +- go.mod | 4 ++-- go.sum | 13 ++++++------- group.go | 4 ++-- produce.go | 2 +- system_test.go | 2 +- topic.go | 2 +- 11 files changed, 19 insertions(+), 21 deletions(-) diff --git a/admin.go b/admin.go index 61049b7..1d8ed20 100644 --- a/admin.go +++ b/admin.go @@ -11,7 +11,7 @@ import ( "strings" "time" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" ) type adminCmd struct { @@ -129,7 +129,6 @@ func (cmd *adminCmd) run(args []string) { if cmd.createTopic != "" { cmd.runCreateTopic() - } else if cmd.deleteTopic != "" { cmd.runDeleteTopic() } else { @@ -214,7 +213,7 @@ The value supplied on the command line wins over the environment variable value. If both -createtopic and deletetopic are supplied, -createtopic wins. The topic details should be passed via a JSON file that represents a sarama.TopicDetail struct. -cf https://godoc.org/github.com/Shopify/sarama#TopicDetail +cf https://godoc.org/github.com/IBM/sarama#TopicDetail A simple way to pass a JSON file is to use a tool like https://github.com/fgeller/jsonify and shell's process substition: diff --git a/common.go b/common.go index 18a4210..62f1198 100644 --- a/common.go +++ b/common.go @@ -16,7 +16,7 @@ import ( "time" "unicode/utf16" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "golang.org/x/crypto/ssh/terminal" ) diff --git a/common_test.go b/common_test.go index 2e6830e..c45c466 100644 --- a/common_test.go +++ b/common_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/stretchr/testify/require" ) diff --git a/consume.go b/consume.go index b97d667..be34be4 100644 --- a/consume.go +++ b/consume.go @@ -13,7 +13,7 @@ import ( "sync" "time" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" ) type consumeCmd struct { diff --git a/consume_test.go b/consume_test.go index 55a28d5..e45746f 100644 --- a/consume_test.go +++ b/consume_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" ) func TestParseOffsets(t *testing.T) { diff --git a/go.mod b/go.mod index 1877343..a7885c5 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module github.com/fgeller/kt/v14 go 1.21 require ( - github.com/Shopify/sarama v1.38.1 + github.com/IBM/sarama v1.41.1 github.com/davecgh/go-spew v1.1.1 - github.com/stretchr/testify v1.8.1 + github.com/stretchr/testify v1.8.4 golang.org/x/crypto v0.13.0 ) diff --git a/go.sum b/go.sum index 689b9a7..10b9c76 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,5 @@ -github.com/Shopify/sarama v1.38.1 h1:lqqPUPQZ7zPqYlWpTh+LQ9bhYNu2xJL6k1SJN4WVe2A= -github.com/Shopify/sarama v1.38.1/go.mod h1:iwv9a67Ha8VNa+TifujYoWGxWnu2kNVAQdSdZ4X2o5g= -github.com/Shopify/toxiproxy/v2 v2.5.0 h1:i4LPT+qrSlKNtQf5QliVjdP08GyAH8+BUIc9gT0eahc= -github.com/Shopify/toxiproxy/v2 v2.5.0/go.mod h1:yhM2epWtAmel9CB8r2+L+PCmhH6yH2pITaPAo7jxJl0= +github.com/IBM/sarama v1.41.1 h1:B4/TdHce/8Ipza+qrLIeNJ9D1AOxZVp/3uDv6H/dp2M= +github.com/IBM/sarama v1.41.1/go.mod h1:JFCPURVskaipJdKRFkiE/OZqQHw7jqliaJmRwXCmSSw= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 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= @@ -58,8 +56,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -77,8 +76,8 @@ golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/group.go b/group.go index fa6c930..f29ae6b 100644 --- a/group.go +++ b/group.go @@ -12,7 +12,7 @@ import ( "strings" "sync" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" ) type groupCmd struct { @@ -473,7 +473,7 @@ The values supplied on the command line win over environment variable values. The group command can be used to list groups, their offsets and lag and to reset a group's offset. -When an explicit offset hasn't been set yet, kt prints out the respective sarama constants, cf. https://godoc.org/github.com/Shopify/sarama#pkg-constants +When an explicit offset hasn't been set yet, kt prints out the respective sarama constants, cf. https://godoc.org/github.com/IBM/sarama#pkg-constants To simply list all groups: diff --git a/produce.go b/produce.go index dbfc3b7..6ff2809 100644 --- a/produce.go +++ b/produce.go @@ -14,7 +14,7 @@ import ( "strings" "time" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" ) type produceArgs struct { diff --git a/system_test.go b/system_test.go index cac41c3..9672c6a 100644 --- a/system_test.go +++ b/system_test.go @@ -13,7 +13,7 @@ import ( "testing" "time" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/stretchr/testify/require" ) diff --git a/topic.go b/topic.go index 5c87397..bae6544 100644 --- a/topic.go +++ b/topic.go @@ -10,7 +10,7 @@ import ( "strings" "sync" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" ) type topicArgs struct { From 7636118914ef591fa6250f32c62ce7d2d780c541 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 13:18:44 +0200 Subject: [PATCH 40/42] update badge to github workflow. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9dd4534..dccefbf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# kt - a Kafka tool that likes JSON [![Build Status](https://travis-ci.org/fgeller/kt.svg?branch=main)](https://travis-ci.org/fgeller/kt) +# kt - a Kafka tool that likes JSON [![Continuous Integration](https://github.com/fgeller/kt/actions/workflows/go.yml/badge.svg)](https://github.com/fgeller/kt/actions/workflows/go.yml) Some reasons why you might be interested: From a556286f964837d708867c82929aa529e1087ca5 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 13:26:00 +0200 Subject: [PATCH 41/42] try github alert syntax. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dccefbf..523605a 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,8 @@ Some reasons why you might be interested: * Support for TLS authentication. * Basic cluster admin functions: Create & delete topics. -I'm not using kt actively myself anymore, so if you think it's lacking some feature - please let me know by creating an issue! +> [!NOTE] +> I'm not using kt actively myself anymore, so if you think it's lacking some feature - please let me know by creating an issue. ## Examples From ba48c156115a3ecca3cb838f3f8dc11369946493 Mon Sep 17 00:00:00 2001 From: Felix Geller Date: Sat, 9 Sep 2023 14:01:42 +0200 Subject: [PATCH 42/42] fix up merge via go mod tidy and get -u --- go.mod | 14 +++---- go.sum | 114 +++++++-------------------------------------------------- 2 files changed, 21 insertions(+), 107 deletions(-) diff --git a/go.mod b/go.mod index aa98a5c..023a007 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.21 require ( github.com/IBM/sarama v1.41.1 github.com/davecgh/go-spew v1.1.1 + github.com/markusmobius/go-dateparser v1.2.1 github.com/stretchr/testify v1.8.4 golang.org/x/crypto v0.13.0 ) @@ -13,7 +14,7 @@ require ( github.com/eapache/go-resiliency v1.4.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect - github.com/elliotchance/pie/v2 v2.7.0 // indirect + github.com/elliotchance/pie/v2 v2.8.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/hablullah/go-hijri v1.0.2 // indirect github.com/hablullah/go-juliandays v1.0.0 // indirect @@ -26,20 +27,19 @@ require ( github.com/jcmturner/gofork v1.7.6 // indirect github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect - github.com/magefile/mage v1.14.0 // indirect - github.com/markusmobius/go-dateparser v1.2.1 // indirect - github.com/tetratelabs/wazero v1.2.1 // indirect - github.com/wasilibs/go-re2 v1.3.0 // indirect - golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 // indirect - golang.org/x/text v0.10.0 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/kr/text v0.2.0 // indirect + github.com/magefile/mage v1.15.0 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/tetratelabs/wazero v1.5.0 // indirect + github.com/wasilibs/go-re2 v1.4.0 // indirect + golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/net v0.15.0 // indirect golang.org/x/sys v0.12.0 // indirect golang.org/x/term v0.12.0 // indirect + golang.org/x/text v0.13.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 482afb9..de521cc 100644 --- a/go.sum +++ b/go.sum @@ -10,12 +10,8 @@ github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 h1:Oy0F4A github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3/go.mod h1:YvSRo5mw33fLEx1+DlK6L2VV43tJt5Eyel9n9XBcR+0= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/elliotchance/pie/v2 v2.7.0 h1:FqoIKg4uj0G/CrLGuMS9ejnFKa92lxE1dEgBD3pShXg= -github.com/elliotchance/pie/v2 v2.7.0/go.mod h1:18t0dgGFH006g4eVdDtWfgFZPQEgl10IoEO8YWEq3Og= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/elliotchance/pie/v2 v2.8.0 h1://QS43W8sEha8XV/fjngO5iMudN3XARJV5cpBayAcVY= +github.com/elliotchance/pie/v2 v2.8.0/go.mod h1:18t0dgGFH006g4eVdDtWfgFZPQEgl10IoEO8YWEq3Og= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -34,9 +30,6 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/jalaali/go-jalaali v0.0.0-20210801064154-80525e88d958 h1:qxLoi6CAcXVzjfvu+KXIXJOAsQB62LXjsfbOaErsVzE= github.com/jalaali/go-jalaali v0.0.0-20210801064154-80525e88d958/go.mod h1:Wqfu7mjUHj9WDzSSPI5KfBclTTEnLveRUFr/ujWnTgE= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= @@ -57,23 +50,10 @@ github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo= -github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= +github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= +github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= github.com/markusmobius/go-dateparser v1.2.1 h1:mYRRdu3TzpAeE6fSl2Gn3arfxEtoTRvFOKlumlVsUtg= github.com/markusmobius/go-dateparser v1.2.1/go.mod h1:5xYsZ1h7iB3sE1BSu8bkjYpbFST7EU1/AFxcyO3mgYg= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -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/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -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/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -88,82 +68,23 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/tetratelabs/wazero v1.2.1 h1:J4X2hrGzJvt+wqltuvcSjHQ7ujQxA9gb6PeMs4qlUWs= -github.com/tetratelabs/wazero v1.2.1/go.mod h1:wYx2gNRg8/WihJfSDxA1TIL8H+GkfLYm+bIfbblu9VQ= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/wasilibs/go-re2 v1.3.0 h1:LFhBNzoStM3wMie6rN2slD1cuYH2CGiHpvNL3UtcsMw= -github.com/wasilibs/go-re2 v1.3.0/go.mod h1:AafrCXVvGRJJOImMajgJ2M7rVmWyisVK7sFshbxnVrg= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -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-20190605123033-f99c8df09eb5/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/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 h1:ba9YlqfDGTTQ5aZ2fwOoQ1hf32QySyQkR6ODGDzHlnE= -golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -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-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/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-20190108225652-1e06a53dbb7e/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-20190501004415-9ce7a6920f09/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-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tetratelabs/wazero v1.5.0 h1:Yz3fZHivfDiZFUXnWMPUoiW7s8tC1sjdBtlJn08qYa0= +github.com/tetratelabs/wazero v1.5.0/go.mod h1:0U0G41+ochRKoPKCJlh0jMg1CHkyfK8kDqiirMmKY8A= +github.com/wasilibs/go-re2 v1.4.0 h1:Jp6BM8G/zajgY1BCQUm3i7oGMdR1gA5EBv87wGd2ysc= +github.com/wasilibs/go-re2 v1.4.0/go.mod h1:hLzlKjEgON+17hWjikLx8hJBkikyjQH/lsqCy9t6tIY= +github.com/wasilibs/nottinygc v0.4.0 h1:h1TJMihMC4neN6Zq+WKpLxgd9xCFMw7O9ETLwY2exJQ= +github.com/wasilibs/nottinygc v0.4.0/go.mod h1:oDcIotskuYNMpqMF23l7Z8uzD4TC0WXHK8jetlB3HIo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -182,10 +103,6 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -197,12 +114,9 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=