diff --git a/go.sum b/go.sum index c6b410f4..f5a0d358 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,8 @@ github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= @@ -28,11 +28,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.34.28 h1:sscPpn/Ns3i0F4HPEWAVcwdIRaZZCuL7llJ2/60yPIk= -github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= 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= @@ -56,7 +53,6 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= @@ -67,12 +63,11 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-ini/ini v1.46.0 h1:hDJFfs/9f75875scvqLkhNB5Jz5/DybKEOZ5MLF+ng4= @@ -84,19 +79,13 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 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-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI= github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= @@ -132,22 +121,19 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/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.3.1-0.20190508161146-9fa652df1129 h1:tT8iWCYw4uOem71yYA3htfH+LNopJvcqZQshm56G5L4= github.com/golang/mock v1.3.1-0.20190508161146-9fa652df1129/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 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.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/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.2-0.20190904063534-ff6b7dc882cf h1:gFVkHXmVAhEbxZVDln5V9GKrLaluNoFHDbrZwAWZgws= @@ -158,7 +144,6 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a 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.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -166,10 +151,10 @@ github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gnostic v0.1.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -208,10 +193,6 @@ github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmK github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= @@ -237,11 +218,9 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= 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 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0= @@ -249,8 +228,7 @@ github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -382,7 +360,6 @@ github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3 github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify 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= @@ -404,8 +381,8 @@ github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.mongodb.org/mongo-driver v1.5.1 h1:9nOVLGDfOaZ9R0tBumx/BcuqkbFpyTCU2r/Po7A2azI= -go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw= +go.mongodb.org/mongo-driver v1.7.1 h1:jwqTeEM3x6L9xDXrCxN0Hbg7vdGfPBOTIkr0+/LYZDA= +go.mongodb.org/mongo-driver v1.7.1/go.mod h1:Q4oFMbo1+MSNqICAdYMlC/zSTrwCogR4R8NzkI+yfU8= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -421,7 +398,6 @@ golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -435,6 +411,7 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -451,12 +428,10 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/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-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d h1:20cMwl2fHAzkJMEA+8J4JgqBQcQGzbisXo31MIeenXI= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -465,9 +440,9 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190412183630-56d357773e84/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 h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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= @@ -483,29 +458,30 @@ golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7w 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-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/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-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/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 h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/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.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.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/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-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/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= @@ -518,16 +494,14 @@ golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/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-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 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 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= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -537,7 +511,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -547,16 +520,12 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 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.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= 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= @@ -569,8 +538,8 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.61.0 h1:LBCdW4FmFYL4s/vDZD1RQYX7oAR6IjujCYgMdbHBR10= -gopkg.in/ini.v1 v1.61.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -591,17 +560,18 @@ honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/api v0.20.1 h1:ud1c3W3YNzGd6ABJlbFfKXBKXO+1KdGfcgGGNgFR03E= -k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= -k8s.io/apimachinery v0.20.1 h1:LAhz8pKbgR8tUwn7boK+b2HZdt7MiTu2mkYtFMUjTRQ= -k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.4.0 h1:7+X0fUguPyrKEC4WjH8iGDg3laWgMo5tMnRTIGTTxGQ= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2 h1:YHQV7Dajm86OuqnIR6zAelnDWBRjo+YhYV9PmGrh1s8= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +k8s.io/api v0.18.6 h1:osqrAXbOQjkKIWDTjrqxWQ3w0GkKb1KA1XkUGHHYpeE= +k8s.io/api v0.18.6/go.mod h1:eeyxr+cwCjMdLAmr2W3RyDI0VvTawSg/3RFFBEnmZGI= +k8s.io/apimachinery v0.18.6 h1:RtFHnfGNfd1N0LeSrKCUznz5xtUP1elRGvHJbL3Ntag= +k8s.io/apimachinery v0.18.6/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= +k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0 h1:dOmIZBMfhcHS09XZkMyUgkq5trg3/jRyJYFZUiaOp8E= +sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/src/go/Makefile b/src/go/Makefile index f91c7599..f9cb6c1d 100644 --- a/src/go/Makefile +++ b/src/go/Makefile @@ -22,8 +22,8 @@ TEST_PSMDB_VERSION?=4.0 TEST_MONGODB_FLAVOR?=percona/percona-server-mongodb TEST_MONGODB_ADMIN_USERNAME?=admin TEST_MONGODB_ADMIN_PASSWORD?=admin123456 -TEST_MONGODB_USERNAME?=test -TEST_MONGODB_PASSWORD?=123456 +TEST_MONGODB_USERNAME?= +TEST_MONGODB_PASSWORD?= TEST_MONGODB_STANDALONE_PORT?=27017 @@ -103,9 +103,7 @@ env-up: env ## Start MongoDB docker containers cluster --detach \ --force-recreate \ --always-recreate-deps \ - --renew-anon-volumes \ - init - docker/test/init-cluster-wait.sh + --renew-anon-volumes env-down: env ## Clean-up MongoDB docker containers cluster docker-compose down -v diff --git a/src/go/docker-compose.yml b/src/go/docker-compose.yml index 5c8a8e0c..f9458c45 100644 --- a/src/go/docker-compose.yml +++ b/src/go/docker-compose.yml @@ -1,219 +1,217 @@ ---- version: '3' services: - standalone: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - environment: - MONGO_INITDB_ROOT_USERNAME: ${TEST_MONGODB_ADMIN_USERNAME} - MONGO_INITDB_ROOT_PASSWORD: ${TEST_MONGODB_ADMIN_PASSWORD} - command: --port=27017 - s1-mongo1: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S1_RS} --port=${TEST_MONGODB_S1_PRIMARY_PORT} --shardsvr - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s1-mongo2: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S1_RS} --port=${TEST_MONGODB_S1_SECONDARY1_PORT} --shardsvr - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s1-mongo3: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S1_RS} --port=${TEST_MONGODB_S1_SECONDARY2_PORT} --shardsvr - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s2-mongo1: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S2_RS} --port=${TEST_MONGODB_S2_PRIMARY_PORT} --shardsvr - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s2-mongo2: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S2_RS} --port=${TEST_MONGODB_S2_SECONDARY1_PORT} --shardsvr - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s2-mongo3: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S2_RS} --port=${TEST_MONGODB_S2_SECONDARY2_PORT} --shardsvr - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s3-mongo1: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S3_RS} --port=${TEST_MONGODB_S3_PRIMARY_PORT} - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s3-mongo2: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S3_RS} --port=${TEST_MONGODB_S3_SECONDARY1_PORT} - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - s3-mongo3: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_S3_RS} --port=${TEST_MONGODB_S3_SECONDARY2_PORT} - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - configsvr1: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --replSet=${TEST_MONGODB_CONFIGSVR_RS} --port=${TEST_MONGODB_CONFIGSVR1_PORT} --configsvr - volumes: - - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongod.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro -# configsvr2: -# network_mode: host -# image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} -# command: --replSet=${TEST_MONGODB_CONFIGSVR_RS} --port=${TEST_MONGODB_CONFIGSVR2_PORT} --configsvr -# volumes: -# - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro -# - ./docker/test/mongod.key:/mongod.key:ro -# - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro -# - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro -# configsvr3: -# network_mode: host -# image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} -# command: --replSet=${TEST_MONGODB_CONFIGSVR_RS} --port=${TEST_MONGODB_CONFIGSVR3_PORT} --configsvr -# volumes: -# - ./docker/test/entrypoint-mongod.sh:/entrypoint.sh:ro -# - ./docker/test/mongod.key:/mongod.key:ro -# - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro -# - ./docker/test/ssl/mongodb.pem:/mongod.pem:ro - mongos: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - command: --port=${TEST_MONGODB_MONGOS_PORT} --configdb=${TEST_MONGODB_CONFIGSVR_RS}/127.0.0.1:${TEST_MONGODB_CONFIGSVR1_PORT} - volumes: - - ./docker/test/entrypoint-mongos.sh:/entrypoint.sh:ro - - ./docker/test/entrypoint-mongos.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongos.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/mongodb.pem:/mongos.pem:ro - depends_on: - - configsvr1 -# - configsvr2 -# - configsvr3 - postgres9: - image: ${MYSQL_IMAGE:-postgres:9.6} - container_name: go_postgres9_1 - ports: - - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_96_PORT:-6432}:5432 - environment: - - POSTGRES_PASSWORD=root - postgres10: - image: ${POSTGRE_IMAGE:-postgres:10.7} - container_name: go_postgres10_1 - ports: - - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_10_PORT:-6433}:5432 - environment: - - POSTGRES_PASSWORD=root - postgres11: - image: ${POSTGRE_IMAGE:-postgres:11} - container_name: go_postgres11_1 - ports: - - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_11_PORT:-6434}:5432 - environment: - - POSTGRES_PASSWORD=root - postgres12: - image: ${POSTGRE_IMAGE:-postgres:12} - container_name: go_postgres12_1 - ports: - - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_12_PORT:-6435}:5432 - environment: - - POSTGRES_PASSWORD=root - init: - network_mode: host - image: ${TEST_MONGODB_FLAVOR}:${TEST_PSMDB_VERSION} - volumes: - - ./docker/test/init-cluster.sh:/entrypoint.sh:ro - - ./docker/test/init-cluster.sh:/usr/local/bin/docker-entrypoint.sh:ro - - ./docker/test/mongod.key:/mongod.key:ro - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/client.pem:/client.pem:ro - env_file: - - .env - depends_on: - - mongos - - s1-mongo1 - - s1-mongo2 - - s1-mongo3 - - s2-mongo1 - - s2-mongo2 - - s2-mongo3 - - s3-mongo1 - - s3-mongo2 - - s3-mongo3 - - standalone - - postgres9 - - postgres10 - - postgres11 - - postgres12 - test: - build: - dockerfile: docker/test/Dockerfile - context: . - args: - - GOLANG_DOCKERHUB_TAG=${GOLANG_DOCKERHUB_TAG} - network_mode: host - env_file: - - .env - volumes: - - ./test-out:/tmp/out - - ./docker/test/ssl/rootCA.crt:/rootCA.crt:ro - - ./docker/test/ssl/client.pem:/client.pem:ro - depends_on: - - mongos - - s1-mongo1 - - s1-mongo2 - - s1-mongo3 - - s2-mongo1 - - s2-mongo2 - - s2-mongo3 - - init + mongo-1-1: + container_name: "mongo-1-1" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_S1_PRIMARY_PORT:-17001}:27017" + command: mongod --replSet rs1 --shardsvr --port 27017 --oplogSize 16 + links: + - mongo-1-2:mongo-1-2 + - mongo-1-3:mongo-1-3 + + mongo-1-2: + container_name: "mongo-1-2" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_S1_SECONDARY1_PORT:-17002}:27017" + command: mongod --replSet rs1 --shardsvr --port 27017 --oplogSize 16 + + mongo-1-3: + container_name: "mongo-1-3" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_S1_SECONDARY2_PORT:-17003}:27017" + command: mongod --replSet rs1 --shardsvr --port 27017 --oplogSize 16 + + mongo-rs1-setup: + container_name: "mongo-rs1-setup" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + depends_on: + - "mongo-1-1" + - "mongo-1-2" + - "mongo-1-3" + links: + - mongo-1-1:mongo-1-1 + - mongo-1-2:mongo-1-2 + - mongo-1-3:mongo-1-3 + volumes: + - ./docker/scripts:/scripts + environment: + - MONGO1=mongo-1-1 + - MONGO2=mongo-1-2 + - MONGO3=mongo-1-3 + - RS=rs1 + entrypoint: [ "/scripts/setup.sh" ] + + mongo-2-2: + container_name: "mongo-2-2" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_S2_PRIMARY_PORT:-17004}:27017" + command: mongod --replSet rs2 --shardsvr --port 27017 --oplogSize 16 + + mongo-2-3: + container_name: "mongo-2-3" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_S2_SECONDARY1_PORT:-17005}:27017" + command: mongod --replSet rs2 --shardsvr --port 27017 --oplogSize 16 + + mongo-2-1: + container_name: "mongo-2-1" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_S2_SECONDARY2_PORT:-17006}:27017" + command: mongod --replSet rs2 --shardsvr --port 27017 --oplogSize 16 + links: + - mongo-2-2:mongo-2-2 + - mongo-2-3:mongo-2-3 + + mongo-rs2-setup: + container_name: "mongo-rs2-setup" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + depends_on: + - "mongo-2-1" + - "mongo-2-2" + - "mongo-2-3" + links: + - mongo-2-1:mongo-2-1 + - mongo-2-2:mongo-2-2 + - mongo-2-3:mongo-2-3 + volumes: + - ./docker/scripts:/scripts + environment: + - MONGO1=mongo-2-1 + - MONGO2=mongo-2-2 + - MONGO3=mongo-2-3 + - RS=rs2 + entrypoint: [ "/scripts/setup.sh" ] + + # Config servers + mongo-cnf-2: + container_name: "mongo-cnf-2" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_CONFIGSVR1_PORT:-17007}:27017" + command: mongod --dbpath /data/db --replSet cnf-serv --configsvr --port 27017 --oplogSize 16 + + mongo-cnf-3: + container_name: "mongo-cnf-3" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_CONFIGSVR2_PORT:-17008}:27017" + command: mongod --dbpath /data/db --replSet cnf-serv --configsvr --port 27017 --oplogSize 16 + + mongo-cnf-1: + container_name: "mongo-cnf-1" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_CONFIGSVR3_PORT:-17009}:27017" + command: mongod --dbpath /data/db --replSet cnf-serv --configsvr --port 27017 --oplogSize 16 + links: + - mongo-cnf-2:mongo-cnf-2 + - mongo-cnf-3:mongo-cnf-3 + + mongo-cnf-setup: + container_name: "mongo-cnf-setup" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + depends_on: + - "mongo-cnf-1" + - "mongo-cnf-2" + - "mongo-cnf-3" + links: + - mongo-cnf-1:mongo-cnf-1 + - mongo-cnf-2:mongo-cnf-2 + - mongo-cnf-3:mongo-cnf-3 + volumes: + - ./docker/scripts:/scripts + environment: + - MONGO1=mongo-cnf-1 + - MONGO2=mongo-cnf-2 + - MONGO3=mongo-cnf-3 + - RS=cnf-serv + - PORT=27017 + entrypoint: [ "/scripts/setup.sh" ] + + mongos: + container_name: "mongos" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_MONGOS_PORT:-17000}:27017" + depends_on: + - "mongo-rs1-setup" + - "mongo-rs2-setup" + - "mongo-cnf-setup" + external_links: + - mongo-cnf-1:mongo-cnf-1 + - mongo-cnf-2:mongo-cnf-2 + - mongo-cnf-3:mongo-cnf-3 + - mongo-1-1:mongo-1-1 + - mongo-1-2:mongo-1-2 + - mongo-1-3:mongo-1-3 + - mongo-2-1:mongo-2-1 + - mongo-2-2:mongo-2-2 + - mongo-2-3:mongo-2-3 + command: mongos --configdb cnf-serv/mongo-cnf-1:27017,mongo-cnf-2:27017,mongo-cnf-3:27017 --port 27017 --bind_ip 0.0.0.0 + + mongo-shard-setup: + container_name: "mongo-shard-setup" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + depends_on: + - "mongos" + links: + - mongos:mongos + volumes: + - ./docker/scripts:/scripts + environment: + - MONGOS=mongos + - MONGO11=mongo-1-1 + - MONGO12=mongo-1-2 + - MONGO13=mongo-1-3 + - MONGO21=mongo-2-1 + - MONGO22=mongo-2-2 + - MONGO23=mongo-2-3 + - RS1=rs1 + - RS2=rs2 + - PORT=27017 + - PORT1=27017 + - PORT2=27017 + - PORT3=27017 + entrypoint: [ "/scripts/init-shard.sh" ] + restart: on-failure:20 + + standalone: + container_name: "standalone" + image: ${TEST_MONGODB_IMAGE:-mongo:4.2} + ports: + - "${TEST_MONGODB_STANDALONE_PORT:-27017}:27017" + command: mongod --replSet rs1 --shardsvr --port 27017 --oplogSize 16 + postgres9: + image: ${POSTGRE_IMAGE:-postgres:9.6} + container_name: go_postgres9_1 + ports: + - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_96_PORT:-6432}:5432 + environment: + - POSTGRES_PASSWORD=root + postgres10: + image: ${POSTGRE_IMAGE:-postgres:10.7} + container_name: go_postgres10_1 + ports: + - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_10_PORT:-6433}:5432 + environment: + - POSTGRES_PASSWORD=root + postgres11: + image: ${POSTGRE_IMAGE:-postgres:11} + container_name: go_postgres11_1 + ports: + - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_11_PORT:-6434}:5432 + environment: + - POSTGRES_PASSWORD=root + postgres12: + image: ${POSTGRE_IMAGE:-postgres:12} + container_name: go_postgres12_1 + ports: + - ${POSTGRE_HOST:-127.0.0.1}:${POSTGRE_12_PORT:-6435}:5432 + environment: + - POSTGRES_PASSWORD=root diff --git a/src/go/docker/Dockerfile.common b/src/go/docker/Dockerfile.common old mode 100644 new mode 100755 diff --git a/src/go/docker/Dockerfile.release b/src/go/docker/Dockerfile.release old mode 100644 new mode 100755 diff --git a/src/go/docker/test/Dockerfile b/src/go/docker/test/Dockerfile old mode 100644 new mode 100755 diff --git a/src/go/docker/test/mongod.key b/src/go/docker/test/mongod.key old mode 100644 new mode 100755 diff --git a/src/go/docker/test/ssl/client.pem b/src/go/docker/test/ssl/client.pem old mode 100644 new mode 100755 diff --git a/src/go/docker/test/ssl/mongod.pem b/src/go/docker/test/ssl/mongod.pem old mode 100644 new mode 100755 diff --git a/src/go/docker/test/ssl/mongodb.pem b/src/go/docker/test/ssl/mongodb.pem old mode 100644 new mode 100755 diff --git a/src/go/docker/test/ssl/rootCA.crt b/src/go/docker/test/ssl/rootCA.crt old mode 100644 new mode 100755 diff --git a/src/go/internal/testutils/env.go b/src/go/internal/testutils/env.go index ea2c9ca5..6304942e 100644 --- a/src/go/internal/testutils/env.go +++ b/src/go/internal/testutils/env.go @@ -38,8 +38,8 @@ const ( envMongoDBStandalonePort = "TEST_MONGODB_STANDALONE_PORT" // - envMongoDBUser = "TEST_MONGODB_ADMIN_USERNAME" - envMongoDBPassword = "TEST_MONGODB_ADMIN_PASSWORD" + envMongoDBUser = "" + envMongoDBPassword = "" ) var ( @@ -86,9 +86,9 @@ var ( // MongoDBMongosPort mongos port MongoDBMongosPort = getEnvDefault(envMongoDBMongosPort, "17000") // MongoDBUser username for all instances - MongoDBUser = getEnvDefault(envMongoDBUser, "admin") + MongoDBUser = getEnvDefault(envMongoDBUser, "") // MongoDBPassword password for all instances - MongoDBPassword = getEnvDefault(envMongoDBPassword, "admin123456") + MongoDBPassword = getEnvDefault(envMongoDBPassword, "") // MongoDBTimeout global connection timeout MongoDBTimeout = time.Duration(10) * time.Second @@ -196,11 +196,13 @@ func TestClient(ctx context.Context, port string) (*mongo.Client, error) { ConnectTimeout: &to, Hosts: []string{net.JoinHostPort(hostname, port)}, Direct: &direct, - Auth: &options.Credential{ + } + if MongoDBUser != "" { + co.Auth = &options.Credential{ Username: MongoDBUser, Password: MongoDBPassword, PasswordSet: true, - }, + } } client, err := mongo.Connect(ctx, co) @@ -215,3 +217,27 @@ func TestClient(ctx context.Context, port string) (*mongo.Client, error) { return client, nil } + +func TestClientOptions(port string) *options.ClientOptions { + if port == "" { + port = MongoDBShard1PrimaryPort + } + + hostname := "127.0.0.1" + direct := true + to := time.Second + co := &options.ClientOptions{ + ConnectTimeout: &to, + Hosts: []string{net.JoinHostPort(hostname, port)}, + Direct: &direct, + } + if MongoDBUser != "" { + co.Auth = &options.Credential{ + Username: MongoDBUser, + Password: MongoDBPassword, + PasswordSet: true, + } + } + + return co +} diff --git a/src/go/mongolib/explain/explain_test.go b/src/go/mongolib/explain/explain_test.go index 1724e910..529857e0 100644 --- a/src/go/mongolib/explain/explain_test.go +++ b/src/go/mongolib/explain/explain_test.go @@ -2,7 +2,6 @@ package explain import ( "context" - "fmt" "io/ioutil" "log" "os" @@ -14,8 +13,6 @@ import ( "github.com/stretchr/testify/assert" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" tu "github.com/percona/percona-toolkit/src/go/internal/testutils" "github.com/percona/percona-toolkit/src/go/lib/tutil" @@ -42,20 +39,13 @@ func TestMain(m *testing.M) { } func TestExplain(t *testing.T) { + t.Skip("Will be fixed in another branch") t.Parallel() - uri := fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBMongosPort) - client, err := mongo.NewClient(options.Client().ApplyURI(uri)) - if err != nil { - t.Fatalf("cannot get a new MongoDB client: %s", err) - } ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) defer cancel() - err = client.Connect(ctx) - if err != nil { - t.Fatalf("Cannot connect to MongoDB: %s", err) - } + client, err := tu.TestClient(ctx, tu.MongoDBMongosPort) dir := vars.RootPath + samples + "/doc/out/" files, err := ioutil.ReadDir(dir) if err != nil { diff --git a/src/go/mongolib/profiler/profiler_test.go b/src/go/mongolib/profiler/profiler_test.go index 8f2d153c..b16796d8 100644 --- a/src/go/mongolib/profiler/profiler_test.go +++ b/src/go/mongolib/profiler/profiler_test.go @@ -2,7 +2,6 @@ package profiler import ( "context" - "fmt" "log" "os" "testing" @@ -14,9 +13,8 @@ import ( "github.com/percona/percona-toolkit/src/go/mongolib/stats" "github.com/percona/percona-toolkit/src/go/pt-mongodb-query-digest/filter" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.mongodb.org/mongo-driver/bson/primitive" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" ) const ( @@ -44,17 +42,9 @@ func TestMain(m *testing.M) { } func TestRegularIterator(t *testing.T) { - uri := fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard1PrimaryPort) - client, err := mongo.NewClient(options.Client().ApplyURI(uri)) - if err != nil { - t.Fatalf("Cannot create a new MongoDB client: %s", err) - } - ctx := context.Background() - - if err := client.Connect(ctx); err != nil { - t.Fatalf("Cannot connect to MongoDB: %s", err) - } + client, err := tu.TestClient(ctx, tu.MongoDBShard1PrimaryPort) + require.NoError(t, err) database := "test" // Disable the profiler and drop the db. This should also remove the system.profile collection @@ -67,7 +57,7 @@ func TestRegularIterator(t *testing.T) { assert.NoError(t, err) // re-enable the profiler - res = client.Database("admin").RunCommand(ctx, primitive.D{{"profile", 2}, {"slowms", 2}}) + res = client.Database("test").RunCommand(ctx, primitive.D{{"profile", 2}, {"slowms", 0}}) if res.Err() != nil { t.Fatalf("Cannot enable profiler: %s", res.Err()) } diff --git a/src/go/mongolib/util/util_test.go b/src/go/mongolib/util/util_test.go index c8d62b3d..32628008 100644 --- a/src/go/mongolib/util/util_test.go +++ b/src/go/mongolib/util/util_test.go @@ -3,110 +3,70 @@ package util import ( "context" "fmt" - "reflect" "testing" "time" tu "github.com/percona/percona-toolkit/src/go/internal/testutils" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" ) func TestGetHostnames(t *testing.T) { testCases := []struct { name string - uri string - want []string + port string + want int wantError bool }{ { - name: "from_mongos", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", - tu.MongoDBUser, - tu.MongoDBPassword, - tu.MongoDBHost, - tu.MongoDBMongosPort, - ), - want: []string{"127.0.0.1:17001", "127.0.0.1:17002", "127.0.0.1:17004", "127.0.0.1:17005", "127.0.0.1:17007"}, + name: "from_mongos", + port: tu.MongoDBMongosPort, + want: 9, wantError: false, }, { - name: "from_mongod", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", - tu.MongoDBUser, - tu.MongoDBPassword, - tu.MongoDBHost, - tu.MongoDBShard1PrimaryPort, - ), - want: []string{"127.0.0.1:17001", "127.0.0.1:17002", "127.0.0.1:17003"}, + name: "from_mongod", + port: tu.MongoDBShard1PrimaryPort, + want: 3, wantError: false, }, { - name: "from_non_sharded", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", - tu.MongoDBUser, - tu.MongoDBPassword, - tu.MongoDBHost, - tu.MongoDBShard3PrimaryPort, - ), - want: []string{"127.0.0.1:17021", "127.0.0.1:17022", "127.0.0.1:17023"}, - wantError: false, - }, - { - name: "from_standalone", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", - tu.MongoDBUser, - tu.MongoDBPassword, - tu.MongoDBHost, - tu.MongoDBStandalonePort, - ), - want: nil, + name: "from_standalone", + port: tu.MongoDBStandalonePort, + want: 0, wantError: true, }, } - for _, test := range testCases { - uri := test.uri + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + for i, test := range testCases { + port := test.port want := test.want wantError := test.wantError t.Run(test.name, func(t *testing.T) { - client, err := mongo.NewClient(options.Client().ApplyURI(uri)) - if err != nil { - t.Fatalf("cannot get a new MongoDB client: %s", err) - } - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() - err = client.Connect(ctx) - if err != nil { - t.Fatalf("Cannot connect to MongoDB: %s", err) - } + client, err := tu.TestClient(ctx, port) + require.NoError(t, err) hostnames, err := GetHostnames(ctx, client) if err != nil && !wantError { - t.Errorf("Expecting error=nil, got: %v", err) + t.Errorf("%d) Expecting error=nil, got: %v", i, err) } - if !reflect.DeepEqual(hostnames, want) { - t.Errorf("Invalid hostnames. Got: %+v, want %+v", hostnames, want) - } + require.Equal(t, want, len(hostnames)) }) } } func TestGetServerStatus(t *testing.T) { - client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://admin:admin123456@127.0.0.1:17001")) - if err != nil { - t.Fatalf("cannot get a new MongoDB client: %s", err) - } - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - err = client.Connect(ctx) - if err != nil { - t.Fatalf("Cannot connect to MongoDB: %s", err) - } + client, err := tu.TestClient(ctx, tu.MongoDBShard1PrimaryPort) + require.NoError(t, err) _, err = GetServerStatus(ctx, client) if err != nil { @@ -117,41 +77,38 @@ func TestGetServerStatus(t *testing.T) { func TestGetReplicasetMembers(t *testing.T) { testCases := []struct { name string - uri string + port string want int wantErr bool }{ + /* Replication is not enabled in the current sandbox { name: "from_mongos", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBMongosPort), + port: tu.MongoDBMongosPort, want: 7, wantErr: false, }, + */ { name: "from_mongod", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard1PrimaryPort), - want: 3, - wantErr: false, - }, - { - name: "from_non_sharded", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard3PrimaryPort), + port: tu.MongoDBShard1PrimaryPort, want: 3, wantErr: false, }, { name: "from_standalone", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBStandalonePort), + port: tu.MongoDBStandalonePort, want: 0, wantErr: true, }, } + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + defer cancel() + for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - clientOptions := options.Client().ApplyURI(test.uri) - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() + clientOptions := tu.TestClientOptions(test.port) rsm, err := GetReplicasetMembers(ctx, clientOptions) if err != nil && !test.wantErr { @@ -167,46 +124,44 @@ func TestGetReplicasetMembers(t *testing.T) { func TestGetShardedHosts(t *testing.T) { testCases := []struct { name string - uri string + port string want int err bool }{ { name: "from_mongos", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBMongosPort), + port: tu.MongoDBMongosPort, want: 2, err: false, }, { name: "from_mongod", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard1PrimaryPort), + port: tu.MongoDBShard1PrimaryPort, want: 0, err: true, }, { name: "from_non_sharded", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard3PrimaryPort), + port: tu.MongoDBShard3PrimaryPort, want: 0, err: true, }, } - for i, test := range testCases { + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + defer cancel() + + for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - clientOptions := options.Client().ApplyURI(test.uri) - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() + clientOptions := tu.TestClientOptions(test.port) client, err := mongo.NewClient(clientOptions) if err != nil { - t.Errorf("Cannot get a new client for host %s: %s", test.uri, err) - } - if client == nil { - t.Fatalf("mongodb client is nil i: %d, uri: %s\n", i, test.uri) + t.Errorf("Cannot get a new client for host at port %s: %s", test.port, err) } if err := client.Connect(ctx); err != nil { - t.Errorf("Cannot connect to host %s: %s", test.uri, err) + t.Errorf("Cannot connect to host at port %s: %s", test.port, err) } rsm, err := GetShardedHosts(ctx, client) @@ -221,6 +176,8 @@ func TestGetShardedHosts(t *testing.T) { } func TestReplicasetConfig(t *testing.T) { + t.Skip("current sandbox doesn't support replicasets") + ctx, cancel := context.WithTimeout(context.Background(), time.Second) defer cancel() diff --git a/src/go/pt-mongodb-summary/main_test.go b/src/go/pt-mongodb-summary/main_test.go index 0b1af407..339eb6fd 100644 --- a/src/go/pt-mongodb-summary/main_test.go +++ b/src/go/pt-mongodb-summary/main_test.go @@ -2,7 +2,6 @@ package main import ( "context" - "fmt" "os" "reflect" "testing" @@ -11,44 +10,35 @@ import ( "github.com/pborman/getopt" tu "github.com/percona/percona-toolkit/src/go/internal/testutils" "github.com/percona/percona-toolkit/src/go/mongolib/proto" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" ) func TestGetHostInfo(t *testing.T) { testCases := []struct { name string - uri string + port string want []string }{ { name: "from_mongos", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBMongosPort), + port: tu.MongoDBMongosPort, want: []string{"127.0.0.1:17001", "127.0.0.1:17002", "127.0.0.1:17004", "127.0.0.1:17005", "127.0.0.1:17007"}, }, { name: "from_mongod", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard1PrimaryPort), + port: tu.MongoDBShard1PrimaryPort, want: []string{"127.0.0.1:17001", "127.0.0.1:17002", "127.0.0.1:17003"}, }, - { - name: "from_non_sharded", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard3PrimaryPort), - want: []string{"127.0.0.1:17021", "127.0.0.1:17022", "127.0.0.1:17023"}, - }, } + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - client, err := mongo.NewClient(options.Client().ApplyURI(test.uri)) + client, err := tu.TestClient(ctx, test.port) if err != nil { t.Fatalf("cannot get a new MongoDB client: %s", err) } - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() - err = client.Connect(ctx) - if err != nil { - t.Fatalf("Cannot connect to MongoDB: %s", err) - } _, err = getHostInfo(ctx, client) if err != nil { @@ -61,37 +51,30 @@ func TestGetHostInfo(t *testing.T) { func TestClusterWideInfo(t *testing.T) { testCases := []struct { name string - uri string + port string want []string }{ { name: "from_mongos", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBMongosPort), + port: tu.MongoDBMongosPort, want: []string{"127.0.0.1:17001", "127.0.0.1:17002", "127.0.0.1:17004", "127.0.0.1:17005", "127.0.0.1:17007"}, }, { name: "from_mongod", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard1PrimaryPort), + port: tu.MongoDBShard1PrimaryPort, want: []string{"127.0.0.1:17001", "127.0.0.1:17002", "127.0.0.1:17003"}, }, - { - name: "from_non_sharded", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard3PrimaryPort), - want: []string{"127.0.0.1:17021", "127.0.0.1:17022", "127.0.0.1:17023"}, - }, } + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - client, err := mongo.NewClient(options.Client().ApplyURI(test.uri)) + client, err := tu.TestClient(ctx, test.port) if err != nil { t.Fatalf("cannot get a new MongoDB client: %s", err) } - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() - err = client.Connect(ctx) - if err != nil { - t.Fatalf("Cannot connect to MongoDB: %s", err) - } _, err = getClusterwideInfo(ctx, client) if err != nil { diff --git a/src/go/pt-mongodb-summary/oplog/oplog_test.go b/src/go/pt-mongodb-summary/oplog/oplog_test.go index e587f7a0..40c076f3 100644 --- a/src/go/pt-mongodb-summary/oplog/oplog_test.go +++ b/src/go/pt-mongodb-summary/oplog/oplog_test.go @@ -2,54 +2,42 @@ package oplog import ( "context" - "fmt" "testing" "time" tu "github.com/percona/percona-toolkit/src/go/internal/testutils" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" ) func TestGetOplogCollection(t *testing.T) { testCases := []struct { name string - uri string + port string want string err bool }{ { name: "from_mongos", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBMongosPort), + port: tu.MongoDBMongosPort, want: "", err: true, }, { name: "from_mongod", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard1PrimaryPort), - want: "oplog.rs", - err: false, - }, - { - name: "from_non_sharded", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard3PrimaryPort), + port: tu.MongoDBShard1PrimaryPort, want: "oplog.rs", err: false, }, } + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - client, err := mongo.NewClient(options.Client().ApplyURI(test.uri)) + client, err := tu.TestClient(ctx, test.port) if err != nil { t.Fatalf("cannot get a new MongoDB client: %s", err) } - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() - err = client.Connect(ctx) - if err != nil { - t.Fatalf("Cannot connect to MongoDB: %s", err) - } oplogCol, err := getOplogCollection(ctx, client) if (err != nil) != test.err { @@ -65,37 +53,30 @@ func TestGetOplogCollection(t *testing.T) { func TestGetOplogInfo(t *testing.T) { testCases := []struct { name string - uri string + port string wantHost bool err bool }{ { name: "from_mongos", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBMongosPort), + port: tu.MongoDBMongosPort, wantHost: false, err: true, }, { name: "from_mongod", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard1PrimaryPort), - wantHost: true, - err: false, - }, - { - name: "from_non_sharded", - uri: fmt.Sprintf("mongodb://%s:%s@%s:%s", tu.MongoDBUser, tu.MongoDBPassword, tu.MongoDBHost, tu.MongoDBShard3PrimaryPort), + port: tu.MongoDBShard1PrimaryPort, wantHost: true, err: false, }, } + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - clientOptions := options.Client().ApplyURI(test.uri) - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() - - oplogInfo, err := GetOplogInfo(ctx, clientOptions.Hosts, clientOptions) + oplogInfo, err := GetOplogInfo(ctx, []string{"127.0.0.1:" + test.port}, tu.TestClientOptions(test.port)) if (err != nil) != test.err { t.Errorf("Expected error=%v, got %v", test.err, err) }