refactor: Update internal/db and oplog to use go-dbw package for database operations. (#1785)
* chore: Add new dbw dependency * refactor: Convert to use dbw.DB * refactor (db): Change GetTicket(...) signature * feature (db tests): Added TestDeleteWhere(...) Adding this allows us to eliminate a leak of the gorm library * refactor: Add ctx to ScanRows(...) signature This is required to refactor all the deprecated errors pkg calls. This refactor required adding a context to quite a few call chains and in particular the job scheduler bits * feature (db/tests): Add support for test opt: WithTestLogLevel(...) This test only option allows callers to specify a log level for the underlying db package (where supported/applicable) when calling TestSetup(...) * refactor (db): Simplify Db type Only store the underlying *DB and create the *RW on demand when needed. * refactor (oplog): Port to using dbw pkg for db operations * refactor (db): Remove gormDB(...) func * tests (db): Add unit tests for TestDeleteWhere(...) * chore: make fmt changes to formatting
This commit is contained in:
160 files changed
+4369
-3164
No files matched your search
@@ -8,7 +8,7 @@ replace github.com/hashicorp/boundary/sdk => ./sdk
|
||||
|
||||
require (
|
||||
github.com/armon/go-metrics v0.3.9
|
||||
github.com/bufbuild/buf v0.37.0
|
||||
github.com/bufbuild/buf v0.56.0
|
||||
github.com/fatih/color v1.13.0
|
||||
github.com/fatih/structs v1.1.0
|
||||
github.com/favadi/protoc-go-inject-tag v1.3.0
|
||||
@@ -28,7 +28,7 @@ require (
|
||||
github.com/hashicorp/eventlogger/filters/encrypt v0.1.6-0.20211027211326-5db60a48f239
|
||||
github.com/hashicorp/go-bexpr v0.1.10
|
||||
github.com/hashicorp/go-cleanhttp v0.5.2
|
||||
github.com/hashicorp/go-hclog v0.16.2
|
||||
github.com/hashicorp/go-hclog v1.0.0
|
||||
github.com/hashicorp/go-kms-wrapping v0.6.6
|
||||
github.com/hashicorp/go-multierror v1.1.1
|
||||
github.com/hashicorp/go-retryablehttp v0.7.0
|
||||
@@ -73,24 +73,26 @@ require (
|
||||
go.uber.org/atomic v1.9.0
|
||||
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871
|
||||
golang.org/x/term v0.0.0-20210916214954-140adaaadfaf
|
||||
golang.org/x/tools v0.1.6
|
||||
golang.org/x/tools v0.1.8-0.20211102182255-bb4add04ddef
|
||||
google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83
|
||||
google.golang.org/grpc v1.40.0
|
||||
google.golang.org/grpc v1.41.0-dev.0.20210907181116-2f3355d2244e
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0
|
||||
google.golang.org/protobuf v1.27.1
|
||||
gorm.io/driver/postgres v1.2.2
|
||||
gorm.io/gorm v1.22.3
|
||||
mvdan.cc/gofumpt v0.1.1
|
||||
mvdan.cc/gofumpt v0.2.0
|
||||
nhooyr.io/websocket v1.8.7
|
||||
)
|
||||
|
||||
require github.com/hashicorp/go-dbw v0.0.0-20211215222256-2ff0d37184ff // this is a branch and should be updated before merging
|
||||
|
||||
require (
|
||||
github.com/hashicorp/go-sockaddr v1.0.2
|
||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6
|
||||
golang.org/x/sys v0.0.0-20211210111614-af8b64212486
|
||||
)
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.65.0 // indirect
|
||||
cloud.google.com/go v0.81.0 // indirect
|
||||
github.com/AlecAivazis/survey/v2 v2.2.9 // indirect
|
||||
github.com/Azure/azure-sdk-for-go v58.0.0+incompatible // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
|
||||
@@ -132,7 +134,7 @@ require (
|
||||
github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b // indirect
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible // indirect
|
||||
github.com/ghodss/yaml v1.0.0 // indirect
|
||||
github.com/gofrs/flock v0.8.0 // indirect
|
||||
github.com/gofrs/flock v0.8.1 // indirect
|
||||
github.com/gofrs/uuid v4.0.0+incompatible // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/glog v1.0.0 // indirect
|
||||
@@ -159,18 +161,19 @@ require (
|
||||
github.com/jackc/pgtype v1.9.0 // indirect
|
||||
github.com/jefferai/go-libsecret v0.0.0-20210105015933-d08a58b018bc // indirect
|
||||
github.com/jefferai/isbadcipher v0.0.0-20190226160619-51d2077c035f // indirect
|
||||
github.com/jhump/protoreflect v1.8.1 // indirect
|
||||
github.com/jhump/protoreflect v1.9.1-0.20210817181203-db1a327a393e // indirect
|
||||
github.com/jinzhu/gorm v1.9.12 // indirect
|
||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||
github.com/jinzhu/now v1.1.3 // indirect
|
||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||
github.com/json-iterator/go v1.1.10 // indirect
|
||||
github.com/json-iterator/go v1.1.11 // indirect
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect
|
||||
github.com/klauspost/compress v1.11.7 // indirect
|
||||
github.com/klauspost/compress v1.13.5 // indirect
|
||||
github.com/klauspost/pgzip v1.2.5 // indirect
|
||||
github.com/lib/pq v1.10.2 // indirect
|
||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||
github.com/mattn/go-sqlite3 v2.0.1+incompatible // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
|
||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||
github.com/mitchellh/go-testing-interface v1.0.0 // indirect
|
||||
@@ -186,32 +189,36 @@ require (
|
||||
github.com/opencontainers/runc v1.0.0-rc9 // indirect
|
||||
github.com/oracle/oci-go-sdk v12.5.0+incompatible // indirect
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible // indirect
|
||||
github.com/pkg/profile v1.5.0 // indirect
|
||||
github.com/pkg/profile v1.6.0 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/rogpeppe/go-internal v1.6.2 // indirect
|
||||
github.com/rogpeppe/go-internal v1.8.1-0.20211023094830-115ce09fd6b4 // indirect
|
||||
github.com/russross/blackfriday/v2 v2.0.1 // indirect
|
||||
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
|
||||
github.com/sirupsen/logrus v1.7.0 // indirect
|
||||
github.com/spf13/cobra v1.1.1 // indirect
|
||||
github.com/spf13/cobra v1.2.1 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/twitchtv/twirp v7.1.0+incompatible // indirect
|
||||
github.com/twitchtv/twirp v8.1.0+incompatible // indirect
|
||||
github.com/urfave/cli/v2 v2.3.0 // indirect
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
||||
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
||||
go.opencensus.io v0.22.6 // indirect
|
||||
go.uber.org/multierr v1.6.0 // indirect
|
||||
go.uber.org/zap v1.16.0 // indirect
|
||||
golang.org/x/mod v0.4.2 // indirect
|
||||
github.com/xo/dburl v0.9.0 // indirect
|
||||
go.opencensus.io v0.23.0 // indirect
|
||||
go.uber.org/multierr v1.7.0 // indirect
|
||||
go.uber.org/zap v1.19.0 // indirect
|
||||
golang.org/x/mod v0.5.1 // indirect
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect
|
||||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f // indirect
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||
google.golang.org/api v0.30.0 // indirect
|
||||
google.golang.org/api v0.44.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
gopkg.in/ini.v1 v1.51.0 // indirect
|
||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||
gopkg.in/square/go-jose.v2 v2.5.1 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
|
||||
gorm.io/driver/sqlite v1.2.4 // indirect
|
||||
gotest.tools/v3 v3.0.3 // indirect
|
||||
)
|
||||
@@ -15,8 +15,13 @@ cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZ
|
||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
|
||||
cloud.google.com/go v0.63.0/go.mod h1:GmezbQc7T2snqkEXWfZ0sy0VfkB/ivI2DdtJL2DEmlg=
|
||||
cloud.google.com/go v0.64.0/go.mod h1:xfORb36jGvE+6EexW71nMEtL025s3x6xvuYUKM4JLv4=
|
||||
cloud.google.com/go v0.65.0 h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8=
|
||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
||||
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
|
||||
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
|
||||
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
|
||||
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
|
||||
cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8=
|
||||
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
|
||||
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=
|
||||
@@ -88,7 +93,6 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ
|
||||
github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
|
||||
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
|
||||
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
|
||||
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||
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/ClickHouse/clickhouse-go v1.3.12/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
|
||||
@@ -145,6 +149,8 @@ github.com/aws/aws-sdk-go v1.40.55 h1:l5xNBmafEAfdJIIe32QbTLG3j/JscH8fzZqYyMlntu
|
||||
github.com/aws/aws-sdk-go v1.40.55/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
|
||||
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
|
||||
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
|
||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||
@@ -154,10 +160,10 @@ github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQ
|
||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
||||
github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k=
|
||||
github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4=
|
||||
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
|
||||
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
|
||||
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
|
||||
github.com/bufbuild/buf v0.37.0 h1:11zJVA0D4uJVGOC9h+oOVHrKKoBgMYIqJJ0d1Xt6oeQ=
|
||||
github.com/bufbuild/buf v0.37.0/go.mod h1:lQ1m2HkIaGOFba6w/aC3KYBHhKEOESP3gaAEpS3dAFM=
|
||||
github.com/bufbuild/buf v0.56.0 h1:oBx0OPMc62HE73dXLQWu6AH+WzA0h0p8/TyA1JeVhks=
|
||||
github.com/bufbuild/buf v0.56.0/go.mod h1:IGK996ntty37odzh5iWRUrK7G16Y8GYE8484mhXZxak=
|
||||
github.com/c2h5oh/datasize v0.0.0-20200112174442-28bbd4740fee/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M=
|
||||
github.com/cenkalti/backoff/v3 v3.0.0 h1:ske+9nBpD9qZsTBoF41nW5L+AIuFBKMeze18XQ3eG1c=
|
||||
github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
|
||||
@@ -175,8 +181,10 @@ github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
|
||||
github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
|
||||
github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
|
||||
@@ -197,14 +205,12 @@ github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv
|
||||
github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
|
||||
github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
|
||||
github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
|
||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||
github.com/coreos/go-oidc/v3 v3.0.0 h1:/mAA0XMgYJw2Uqm7WKGCsKnjitE/+A0FFbOmiRJm7LQ=
|
||||
github.com/coreos/go-oidc/v3 v3.0.0/go.mod h1:rEJ/idjfUyfkBit1eI1fvyr+64/g9dcKpAm8MJMesvo=
|
||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
@@ -223,7 +229,6 @@ github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xb
|
||||
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec h1:NfhRXXFDPxcF5Cwo06DzeIaE7uuJtAUhsDwH3LNsjos=
|
||||
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||
github.com/dhui/dktest v0.3.3/go.mod h1:EML9sP4sqJELHn4jV7B0TY8oF6077nk83/tz7M56jcQ=
|
||||
github.com/dhui/dktest v0.3.4 h1:VbUEcaSP+U2/yUr9d2JhSThXYEnDlGabRSHe2rIE46E=
|
||||
github.com/dhui/dktest v0.3.4/go.mod h1:4m4n6lmXlmVfESth7mzdcv8nBI5mOb5UROPqjM02csU=
|
||||
@@ -250,8 +255,11 @@ github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt
|
||||
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/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
|
||||
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y=
|
||||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
|
||||
@@ -267,9 +275,11 @@ github.com/favadi/protoc-go-inject-tag v1.3.0 h1:JPrmsmc/uBShG85uY5xGZIa5WJ0IaNZ
|
||||
github.com/favadi/protoc-go-inject-tag v1.3.0/go.mod h1:SSkUBgfqw2IJ2p7NPNKWk0Idwxt/qIt2LQgFPUgRGtc=
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
|
||||
github.com/frankban/quicktest v1.10.0 h1:Gfh+GAJZOAoKZsIZeZbdn2JF10kN1XHNvjsvQK8gVkE=
|
||||
github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
|
||||
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/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/fsouza/fake-gcs-server v1.17.0/go.mod h1:D1rTE4YCyHFNa99oyJJ5HyclvN/0uQR+pM/VdlL83bw=
|
||||
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
|
||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
@@ -319,8 +329,8 @@ github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6
|
||||
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
|
||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/gofrs/flock v0.8.0 h1:MSdYClljsF3PbENUUEx85nkWfJSGfzYI9yEBZOJz6CY=
|
||||
github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
|
||||
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
|
||||
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
|
||||
github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
|
||||
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
@@ -336,7 +346,6 @@ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2V
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
|
||||
github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
|
||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/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-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
|
||||
@@ -348,6 +357,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
|
||||
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/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
|
||||
github.com/golang/protobuf v1.0.0/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=
|
||||
@@ -364,6 +374,7 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
|
||||
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.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
@@ -379,6 +390,7 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||
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.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.3/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=
|
||||
@@ -389,6 +401,7 @@ github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO
|
||||
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/martian/v3 v3.1.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=
|
||||
@@ -396,6 +409,10 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf
|
||||
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/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||
@@ -416,14 +433,10 @@ github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z
|
||||
github.com/gorilla/mux v1.7.4/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.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
||||
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
||||
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
|
||||
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.6.0 h1:rgxjzoDmDXw5q8HONgyHhBas4to0/XWRo/gPpJhsUNQ=
|
||||
@@ -451,14 +464,17 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng
|
||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
|
||||
github.com/hashicorp/go-dbw v0.0.0-20211215222256-2ff0d37184ff h1:jUa73mulKrSJaWD5AVpsvhWgoCCQy5NeGJdZrXggga8=
|
||||
github.com/hashicorp/go-dbw v0.0.0-20211215222256-2ff0d37184ff/go.mod h1:oh0okaxgqjJMPBSav3mSYPmyEbW7bVWQvRvkwJaQiIg=
|
||||
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
|
||||
github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
|
||||
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
|
||||
github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||
github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||
github.com/hashicorp/go-hclog v0.16.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||
github.com/hashicorp/go-hclog v0.16.2 h1:K4ev2ib4LdQETX5cSZBG0DVLk1jwGqSPXBjdah3veNs=
|
||||
github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||
github.com/hashicorp/go-hclog v1.0.0 h1:bkKf0BeBXcSYa7f5Fyi9gMuQ8gNsxeiNpZjR6VxNZeo=
|
||||
github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
|
||||
github.com/hashicorp/go-immutable-radix v1.1.0 h1:vN9wG1D6KG6YHRTWr8512cxGOVgTMEfgEdSj/hr8MPc=
|
||||
github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
|
||||
@@ -557,6 +573,7 @@ github.com/huaweicloud/golangsdk v0.0.0-20200304081349-45ec0797f2a4/go.mod h1:WQ
|
||||
github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0=
|
||||
github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
|
||||
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||
@@ -628,8 +645,8 @@ github.com/jefferai/isbadcipher v0.0.0-20190226160619-51d2077c035f h1:E87tDTVS5W
|
||||
github.com/jefferai/isbadcipher v0.0.0-20190226160619-51d2077c035f/go.mod h1:3J2qVK16Lq8V+wfiL2lPeDZ7UWMxk5LemerHa1p6N00=
|
||||
github.com/jefferai/keyring v1.1.7-0.20210105022822-8749b3d9ce79 h1:7opZgeTbZEBfZSK6OXO6HSnWIDUBn6wlxBuG13pSuEM=
|
||||
github.com/jefferai/keyring v1.1.7-0.20210105022822-8749b3d9ce79/go.mod h1:Y6M+VPkRv4aOcVNvvSWma4aMRLY+xvPhzZX3tDmPoPY=
|
||||
github.com/jhump/protoreflect v1.8.1 h1:z7Ciiz3Bz37zSd485fbiTW8ABafIasyOWZI0N9EUUdo=
|
||||
github.com/jhump/protoreflect v1.8.1/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg=
|
||||
github.com/jhump/protoreflect v1.9.1-0.20210817181203-db1a327a393e h1:Yb4fEGk+GtBSNuvy5rs0ZJt/jtopc/z9azQaj3xbies=
|
||||
github.com/jhump/protoreflect v1.9.1-0.20210817181203-db1a327a393e/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg=
|
||||
github.com/jinzhu/gorm v1.9.12 h1:Drgk1clyWT9t9ERbzHza6Mj/8FY/CqMyVzOiHviMo6Q=
|
||||
github.com/jinzhu/gorm v1.9.12/go.mod h1:vhTjlKSJUTWNtcbQtrMBFCxy7eXTzeCAzfL5fBZT/Qs=
|
||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
||||
@@ -645,13 +662,13 @@ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHW
|
||||
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/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
|
||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||
github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=
|
||||
github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=
|
||||
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
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/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
||||
@@ -669,13 +686,14 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg=
|
||||
github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/compress v1.13.5 h1:9O69jUPDcsT9fEm74W92rZL9FQY7rCdaXVneq+yyzl4=
|
||||
github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
||||
github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE=
|
||||
github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||
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.2/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/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||
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.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
@@ -701,7 +719,7 @@ github.com/lib/pq v1.6.0/go.mod h1:4vXEAYvW1fRQ2/FhZ78H73A60MHw1geSm145z2mdY1g=
|
||||
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
|
||||
github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/markbates/pkger v0.15.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
@@ -724,6 +742,7 @@ github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/mattn/go-sqlite3 v2.0.1+incompatible h1:xQ15muvnzGBHpIpdrNi1DA5x0+TcBZzsIDwmw9uTHzw=
|
||||
github.com/mattn/go-sqlite3 v2.0.1+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
@@ -783,7 +802,6 @@ github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba/go.mod h1:
|
||||
github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso=
|
||||
github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=
|
||||
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
|
||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
||||
github.com/oligot/go-mod-upgrade v0.6.1 h1:AZnCiEAOxOMxpKZWjFWFNm/i6QjZVBozuKjuB8EzRCk=
|
||||
github.com/oligot/go-mod-upgrade v0.6.1/go.mod h1:5Gyau3jUXqXrGhYxGkGqrxxgR90Lzd1yt/9YQp9sn1w=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
@@ -813,20 +831,23 @@ github.com/ory/dockertest/v3 v3.7.0/go.mod h1:PvCCgnP7AfBZeVrzwiUTjZx/IUXlGLC1zQ
|
||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||
github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
|
||||
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||
github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
|
||||
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI=
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pires/go-proxyproto v0.6.1 h1:EBupykFmo22SDjv4fQVQd2J9NOoLPmyZA/15ldOGkPw=
|
||||
github.com/pires/go-proxyproto v0.6.1/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY=
|
||||
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA=
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A=
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/profile v1.5.0 h1:042Buzk+NhDI+DeSAA62RwJL8VAuZUMQZUjCsRz1Mug=
|
||||
github.com/pkg/profile v1.5.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18=
|
||||
github.com/pkg/profile v1.6.0 h1:hUDfIISABYI59DyeB3OTay/HxSRwTQ8rB/H83k6r5dM=
|
||||
github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18=
|
||||
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
|
||||
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/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
||||
@@ -834,33 +855,28 @@ github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXq
|
||||
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
|
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||
github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=
|
||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
||||
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
|
||||
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.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
||||
github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
||||
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
|
||||
github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.6.2 h1:aIihoIOHCiLZHxyoNQ+ABL4NKhFTgKLBdMLyEAh98m0=
|
||||
github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.8.1-0.20211023094830-115ce09fd6b4 h1:Ha8xCaq6ln1a+R91Km45Oq6lPXj2Mla6CRJYcuV2h1w=
|
||||
github.com/rogpeppe/go-internal v1.8.1-0.20211023094830-115ce09fd6b4/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o=
|
||||
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
|
||||
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
|
||||
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
|
||||
@@ -895,20 +911,18 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9
|
||||
github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs=
|
||||
github.com/snowflakedb/glog v0.0.0-20180824191149-f5055e6f21ce/go.mod h1:EB/w24pR5VKI60ecFnKqXzxX3dOorz1rnVicQTQrGM0=
|
||||
github.com/snowflakedb/gosnowflake v1.3.5/go.mod h1:13Ky+lxzIm3VqNDZJdyvu9MCGy+WgRdYFdXp96UcLZU=
|
||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
||||
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||
github.com/spf13/cobra v1.0.1-0.20201006035406-b97b5ead31f7/go.mod h1:yk5b0mALVusDL5fMM6Rd1wgnoO5jUPhwsQ6LQAJTidQ=
|
||||
github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4=
|
||||
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
|
||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
|
||||
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
|
||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||
github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||
github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
|
||||
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 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||
@@ -933,10 +947,9 @@ github.com/tj/go-buffer v1.1.0/go.mod h1:iyiJpfFcR2B9sXu7KvjbT9fpM4mOelRSDTbntVj
|
||||
github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=
|
||||
github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=
|
||||
github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
|
||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
||||
github.com/twitchtv/twirp v7.1.0+incompatible h1:3fNSDoSPyq+fTrifIvGue9XM/tptzuhiGY83rxPVNUg=
|
||||
github.com/twitchtv/twirp v7.1.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A=
|
||||
github.com/twitchtv/twirp v8.1.0+incompatible h1:KGXanpa9LXdVE/V5P/tA27rkKFmXRGCtSNT7zdeeVOY=
|
||||
github.com/twitchtv/twirp v8.1.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A=
|
||||
github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=
|
||||
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
|
||||
github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
|
||||
@@ -954,7 +967,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
|
||||
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
|
||||
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
github.com/xo/dburl v0.9.0 h1:ME8QfRqZz/YDwf+VVEe9sq4wgEZCAOdYcUTeuAf+wQQ=
|
||||
github.com/xo/dburl v0.9.0/go.mod h1:7Uupe87dIDxNrbKFRrpw6bAf2l3/rqU42iwlpq1nyjY=
|
||||
github.com/yandex-cloud/go-genproto v0.0.0-20200722140432-762fe965ce77/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE=
|
||||
github.com/yandex-cloud/go-sdk v0.0.0-20200722140627-2194e5077f13/go.mod h1:LEdAMqa1v/7KYe4b13ALLkonuDxLph57ibUb50ctvJk=
|
||||
github.com/yhat/scrape v0.0.0-20161128144610-24b7890b0945/go.mod h1:4vRFPPNYllgCacoj+0FoKOjTW68rUhEfqPLiEJaK2w8=
|
||||
@@ -963,20 +977,24 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/zalando/go-keyring v0.1.1 h1:w2V9lcx/Uj4l+dzAf1m9s+DJ1O8ROkEHnynonHjTcYE=
|
||||
github.com/zalando/go-keyring v0.1.1/go.mod h1:OIC+OZ28XbmwFxU/Rp9V7eKzZjamBJwRzC8UFJH9+L8=
|
||||
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
|
||||
gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b/go.mod h1:T3BPAOm2cqquPa0MKWeNkmOM5RQsRhkrwMWonFMN7fE=
|
||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
|
||||
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
|
||||
go.mongodb.org/mongo-driver v1.1.0/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||
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=
|
||||
go.opencensus.io v0.22.6 h1:BdkrbWrzDlV9dnbzoP7sfN+dHheJ4J9JOaYxcUDL+ok=
|
||||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||
go.opencensus.io v0.22.6/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||
go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
|
||||
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
@@ -985,19 +1003,22 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
|
||||
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/goleak v1.0.0 h1:qsup4IcBdlmsnGfqyLl4Ntn3C2XCCuKAE7DwHpScyUo=
|
||||
go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
||||
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
|
||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
|
||||
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
|
||||
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||
go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec=
|
||||
go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
|
||||
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
|
||||
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
|
||||
go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM=
|
||||
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
|
||||
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
|
||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
||||
golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
@@ -1051,6 +1072,7 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
|
||||
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/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||
@@ -1062,8 +1084,10 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
|
||||
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/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
|
||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
|
||||
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
|
||||
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/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=
|
||||
@@ -1072,7 +1096,6 @@ golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73r
|
||||
golang.org/x/net v0.0.0-20181108082009-03003ca0c849/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-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-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-20190225153610-fe579d43d832/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@@ -1109,13 +1132,17 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R
|
||||
golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201029221708-28c70e62bb1d/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210907225631-ff17edfbf26d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
@@ -1125,7 +1152,13 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr
|
||||
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-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw=
|
||||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
@@ -1137,6 +1170,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
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-20201020160332-67f06af15bc9/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-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -1144,7 +1179,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -1164,6 +1198,7 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -1187,21 +1222,34 @@ golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201029080932-201ba4db2418/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/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-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 h1:foEbQz/B0Oz6YIqu/69kfXPYeFQAuuMYFkjaqXzl5Wo=
|
||||
golang.org/x/sys v0.0.0-20210908143011-c212e7322662/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211102192858-4dd72447c267/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211210111614-af8b64212486 h1:5hpz5aRr+W1erYCL5JRhSUBJRph7l9XkNveoExlrKYk=
|
||||
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.0.0-20210916214954-140adaaadfaf h1:Ihq/mm/suC88gF8WFcVwk+OV6Tq+wyA1O0E5UEvDglI=
|
||||
golang.org/x/term v0.0.0-20210916214954-140adaaadfaf/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
@@ -1279,12 +1327,19 @@ golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d/go.mod h1:njjCfa9FT2d7l9Bc
|
||||
golang.org/x/tools v0.0.0-20200817023811-d00afeaade8f/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200818005847-188abfa75333/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
|
||||
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210101214203-2dba1e4ea05c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.6 h1:SIasE1FVIQOWz2GEAHFOmoW7xchJcqlucjSULTL0Ag4=
|
||||
golang.org/x/tools v0.1.6/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
|
||||
golang.org/x/tools v0.1.8-0.20211102182255-bb4add04ddef h1:/DaKawnTFFxdq/mJT3pM+OkeJlq5gc3ZhkbGVYbqOCw=
|
||||
golang.org/x/tools v0.1.8-0.20211102182255-bb4add04ddef/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
|
||||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -1307,8 +1362,14 @@ google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/
|
||||
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 h1:yfrXXP61wVuLb0vBcG6qaOoIoqYEzOQS8jum51jkv2w=
|
||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
||||
google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
|
||||
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
|
||||
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
|
||||
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
|
||||
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
|
||||
google.golang.org/api v0.44.0 h1:URs6qR1lAxDsqWITsQXI4ZkGiYJ5dHtRNiCpfs2OeKA=
|
||||
google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8=
|
||||
google.golang.org/appengine v1.0.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
@@ -1354,10 +1415,20 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200911024640-645f7a48b24f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201030142918-24207fddd1c3/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
|
||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||
google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83 h1:3V2dxSZpz4zozWWUq36vUxXEKnSYitEH2LdsAx+RUmg=
|
||||
google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
@@ -1375,14 +1446,18 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa
|
||||
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/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc v1.35.0-dev.0.20201218190559-666aea1fb34c/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
|
||||
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
||||
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||
google.golang.org/grpc v1.41.0-dev.0.20210907181116-2f3355d2244e h1:HKKXKZmOaf1UtYn+/ga7+QSLvK7l6K5Mppj9yGgXYCo=
|
||||
google.golang.org/grpc v1.41.0-dev.0.20210907181116-2f3355d2244e/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE=
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
@@ -1396,7 +1471,6 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
|
||||
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.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/protobuf v1.25.1-0.20201208041424-160c7477e0e8/go.mod h1:hFxJC2f0epmp1elRCiEGJTKAWbwxZ2nvqZdHl3FQXCY=
|
||||
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=
|
||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||
@@ -1415,19 +1489,18 @@ gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKW
|
||||
gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
|
||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||
gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno=
|
||||
gopkg.in/ini.v1 v1.51.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/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo=
|
||||
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/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM=
|
||||
gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
|
||||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
||||
gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||
gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w=
|
||||
gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
@@ -1444,20 +1517,22 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gorm.io/driver/postgres v1.2.2 h1:Ka9W6feOU+rPM9m007eYLMD4QoZuYGBnQ3Jp0faGSwg=
|
||||
gorm.io/driver/postgres v1.2.2/go.mod h1:Ik3tK+a3FMp8ORZl29v4b3M0RsgXsaeMXh9s9eVMXco=
|
||||
gorm.io/driver/sqlite v1.2.4 h1:jx16ESo1WzNjgBJNSbhEDoMKJnlhkU8BuBR2C0GC7D8=
|
||||
gorm.io/driver/sqlite v1.2.4/go.mod h1:n8/CTEIEmo7lKrehQI4pd+rz6O514tMkBeCAR5UTXLs=
|
||||
gorm.io/gorm v1.22.2/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
|
||||
gorm.io/gorm v1.22.3 h1:/JS6z+GStEQvJNW3t1FTwJwG/gZ+A7crFdRqtvG5ehA=
|
||||
gorm.io/gorm v1.22.3/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
|
||||
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
||||
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
||||
gotest.tools/v3 v3.0.2 h1:kG1BFyqVHuQoVQiR1bWGnfz/fmHvvuiSPIV7rvl360E=
|
||||
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
|
||||
gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=
|
||||
gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
|
||||
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 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8=
|
||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
modernc.org/b v1.0.0/go.mod h1:uZWcZfRj1BpYzfN9JTerzlNUnnPsV9O2ZA8JsRcubNg=
|
||||
modernc.org/db v1.0.0/go.mod h1:kYD/cO29L/29RM0hXYl4i3+Q5VojL31kTUVpVJDw0s8=
|
||||
@@ -1471,8 +1546,9 @@ modernc.org/ql v1.0.0/go.mod h1:xGVyrLIatPcO2C1JvI/Co8c0sr6y91HKFNy4pt9JXEY=
|
||||
modernc.org/sortutil v1.1.0/go.mod h1:ZyL98OQHJgH9IEfN71VsamvJgrtRX9Dj2gX+vH86L1k=
|
||||
modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
|
||||
modernc.org/zappy v1.0.0/go.mod h1:hHe+oGahLVII/aTTyWK/b53VDHMAGCBYYeZ9sn83HC4=
|
||||
mvdan.cc/gofumpt v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
|
||||
mvdan.cc/gofumpt v0.1.1/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48=
|
||||
mvdan.cc/gofumpt v0.2.0 h1:AInyCTHfhp4bFrP2VYC5kR2wPwgWj7eGSb+7437zn7I=
|
||||
mvdan.cc/gofumpt v0.2.0/go.mod h1:TiGmrf914DAuT6+hDIxOqoDb4QXIzAuEUSXqEf9hGKY=
|
||||
nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g=
|
||||
nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
|
||||
@@ -68,7 +68,7 @@ select count(*) from test_auth_method where public_id = @public_id
|
||||
require.NoError(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rw.ScanRows(rows, &count)
|
||||
err := rw.ScanRows(ctx, rows, &count)
|
||||
require.NoError(err)
|
||||
}
|
||||
assert.Equal(1, count.Count)
|
||||
@@ -78,7 +78,7 @@ select count(*) from test_auth_method where public_id = @public_id
|
||||
require.NoError(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rw.ScanRows(rows, &count)
|
||||
err := rw.ScanRows(ctx, rows, &count)
|
||||
require.NoError(err)
|
||||
}
|
||||
assert.Equal(1, count.Count)
|
||||
@@ -150,7 +150,7 @@ values
|
||||
require.NoError(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rw.ScanRows(rows, &count)
|
||||
err := rw.ScanRows(ctx, rows, &count)
|
||||
require.NoError(err)
|
||||
}
|
||||
assert.Equal(1, count.Count)
|
||||
@@ -160,7 +160,7 @@ values
|
||||
require.NoError(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err := rw.ScanRows(rows, &count)
|
||||
err := rw.ScanRows(ctx, rows, &count)
|
||||
require.NoError(err)
|
||||
}
|
||||
assert.Equal(1, count.Count)
|
||||
|
||||
@@ -127,7 +127,7 @@ func TestAccountClaimMap_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
}
|
||||
found := AllocAccountClaimMap()
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and to_claim = ?", tt.args.authMethodId, tt.args.to))
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and to_claim = ?", []interface{}{tt.args.authMethodId, tt.args.to}))
|
||||
assert.Equal(got, &found)
|
||||
}
|
||||
})
|
||||
@@ -145,9 +145,8 @@ func TestAccountClaimMap_Delete(t *testing.T) {
|
||||
databaseWrapper, err := kmsCache.GetWrapper(context.Background(), org.PublicId, kms.KeyPurposeDatabase)
|
||||
require.NoError(t, err)
|
||||
|
||||
testAuthMethod :=
|
||||
TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithAudClaims("alice.com")) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
testAuthMethod := TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithAudClaims("alice.com")) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
|
||||
testResource := func(authMethodId string, fromClaim string, toClaim AccountToClaim) *AccountClaimMap {
|
||||
c, err := NewAccountClaimMap(context.TODO(), authMethodId, fromClaim, toClaim)
|
||||
@@ -209,7 +208,7 @@ func TestAccountClaimMap_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := AllocAccountClaimMap()
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and to_claim = ?", tt.AccountClaimMap.OidcMethodId, tt.AccountClaimMap.ToClaim)
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and to_claim = ?", []interface{}{tt.AccountClaimMap.OidcMethodId, tt.AccountClaimMap.ToClaim})
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -229,17 +229,16 @@ func TestAccount_Delete(t *testing.T) {
|
||||
databaseWrapper, err := kmsCache.GetWrapper(context.Background(), org.PublicId, kms.KeyPurposeDatabase)
|
||||
require.NoError(t, err)
|
||||
|
||||
testAuthMethod :=
|
||||
TestAuthMethod(
|
||||
t,
|
||||
conn,
|
||||
databaseWrapper,
|
||||
org.PublicId,
|
||||
InactiveState,
|
||||
"alice_rp",
|
||||
"my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]),
|
||||
WithIssuer(TestConvertToUrls(t, "https://alice.com")[0]))
|
||||
testAuthMethod := TestAuthMethod(
|
||||
t,
|
||||
conn,
|
||||
databaseWrapper,
|
||||
org.PublicId,
|
||||
InactiveState,
|
||||
"alice_rp",
|
||||
"my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]),
|
||||
WithIssuer(TestConvertToUrls(t, "https://alice.com")[0]))
|
||||
|
||||
testResource := func(authMethodId string, subject string) *Account {
|
||||
u, err := url.Parse(testAuthMethod.GetIssuer())
|
||||
|
||||
@@ -113,7 +113,7 @@ func TestAudClaim_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
}
|
||||
found := AllocAudClaim()
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and aud_claim = ?", tt.args.authMethodId, tt.args.aud))
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and aud_claim = ?", []interface{}{tt.args.authMethodId, tt.args.aud}))
|
||||
assert.Equal(got, &found)
|
||||
}
|
||||
})
|
||||
@@ -132,9 +132,8 @@ func TestAudClaim_Delete(t *testing.T) {
|
||||
databaseWrapper, err := kmsCache.GetWrapper(context.Background(), org.PublicId, kms.KeyPurposeDatabase)
|
||||
require.NoError(t, err)
|
||||
|
||||
testAuthMethod :=
|
||||
TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithAudClaims("alice.com")) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
testAuthMethod := TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithAudClaims("alice.com")) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
|
||||
testResource := func(authMethodId string, AudClaim string) *AudClaim {
|
||||
c, err := NewAudClaim(ctx, authMethodId, AudClaim)
|
||||
@@ -192,7 +191,7 @@ func TestAudClaim_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := AllocAudClaim()
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and aud_claim = ?", tt.AudClaim.OidcMethodId, tt.AudClaim.Aud)
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and aud_claim = ?", []interface{}{tt.AudClaim.OidcMethodId, tt.AudClaim.Aud})
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ func TestCertificate_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
}
|
||||
found := AllocCertificate()
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and certificate = ?", tt.args.authMethodId, tt.args.certificate))
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and certificate = ?", []interface{}{tt.args.authMethodId, tt.args.certificate}))
|
||||
assert.Equal(got, &found)
|
||||
}
|
||||
})
|
||||
@@ -133,8 +133,7 @@ func TestCertificate_Delete(t *testing.T) {
|
||||
|
||||
cert, _ := testGenerateCA(t, "localhost")
|
||||
|
||||
testAuthMethod :=
|
||||
TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name", WithApiUrl(TestConvertToUrls(t, "https://apiurl.com")[0]), WithCertificates(cert)) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
testAuthMethod := TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name", WithApiUrl(TestConvertToUrls(t, "https://apiurl.com")[0]), WithCertificates(cert)) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
|
||||
// make another test cert
|
||||
_, pem2 := testGenerateCA(t, "localhost")
|
||||
@@ -197,7 +196,7 @@ func TestCertificate_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := AllocCertificate()
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and certificate = ?", tt.Certificate.OidcMethodId, tt.Certificate.Cert)
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and certificate = ?", []interface{}{tt.Certificate.OidcMethodId, tt.Certificate.Cert})
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ func TestClaimsScope_Create(t *testing.T) {
|
||||
}
|
||||
assert.NoError(err)
|
||||
found := AllocClaimsScope()
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and scope = ?", tt.args.authMethodId, tt.args.claimsScope))
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and scope = ?", []interface{}{tt.args.authMethodId, tt.args.claimsScope}))
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -133,9 +133,8 @@ func TestClaimsScope_Delete(t *testing.T) {
|
||||
databaseWrapper, err := kmsCache.GetWrapper(context.Background(), org.PublicId, kms.KeyPurposeDatabase)
|
||||
require.NoError(t, err)
|
||||
|
||||
testAuthMethod :=
|
||||
TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithAudClaims("alice.com")) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
testAuthMethod := TestAuthMethod(t, conn, databaseWrapper, org.PublicId, InactiveState, "alice_rp", "my-dogs-name",
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithAudClaims("alice.com")) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
|
||||
testResource := func(authMethodId string, claimsScope string) *ClaimsScope {
|
||||
c, err := NewClaimsScope(ctx, authMethodId, claimsScope)
|
||||
@@ -193,7 +192,7 @@ func TestClaimsScope_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := AllocClaimsScope()
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and scope = ?", tt.claimsScope.OidcMethodId, tt.claimsScope.Scope)
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and scope = ?", []interface{}{tt.claimsScope.OidcMethodId, tt.claimsScope.Scope})
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ func TestAudClaim_ImmutableFields(t *testing.T) {
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithAudClaims("alice.com"))
|
||||
|
||||
new := AllocAudClaim()
|
||||
require.NoError(t, rw.LookupWhere(ctx, &new, "oidc_method_id = ? and aud_claim = ?", am.PublicId, "alice.com"))
|
||||
require.NoError(t, rw.LookupWhere(ctx, &new, "oidc_method_id = ? and aud_claim = ?", []interface{}{am.PublicId, "alice.com"}))
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -147,7 +147,7 @@ func TestAudClaim_ImmutableFields(t *testing.T) {
|
||||
|
||||
orig := new.Clone()
|
||||
orig.SetTableName(defaultAuthMethodTableName)
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and aud_claim = ?", orig.OidcMethodId, orig.Aud))
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and aud_claim = ?", []interface{}{orig.OidcMethodId, orig.Aud}))
|
||||
|
||||
require.NoError(err)
|
||||
|
||||
@@ -158,7 +158,7 @@ func TestAudClaim_ImmutableFields(t *testing.T) {
|
||||
|
||||
after := new.Clone()
|
||||
after.SetTableName(defaultAuthMethodTableName)
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and aud_claim = ?", after.OidcMethodId, after.Aud))
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and aud_claim = ?", []interface{}{after.OidcMethodId, after.Aud}))
|
||||
|
||||
assert.True(proto.Equal(orig, after))
|
||||
})
|
||||
@@ -186,7 +186,7 @@ func TestCertificate_ImmutableFields(t *testing.T) {
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithCertificates(x509))
|
||||
|
||||
new := AllocCertificate()
|
||||
require.NoError(t, rw.LookupWhere(ctx, &new, "oidc_method_id = ? and certificate = ?", am.PublicId, pem))
|
||||
require.NoError(t, rw.LookupWhere(ctx, &new, "oidc_method_id = ? and certificate = ?", []interface{}{am.PublicId, pem}))
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -228,7 +228,7 @@ func TestCertificate_ImmutableFields(t *testing.T) {
|
||||
|
||||
orig := new.Clone()
|
||||
orig.SetTableName(defaultAuthMethodTableName)
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and certificate = ?", orig.OidcMethodId, orig.Cert))
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and certificate = ?", []interface{}{orig.OidcMethodId, orig.Cert}))
|
||||
|
||||
require.NoError(err)
|
||||
|
||||
@@ -239,7 +239,7 @@ func TestCertificate_ImmutableFields(t *testing.T) {
|
||||
|
||||
after := new.Clone()
|
||||
after.SetTableName(defaultAuthMethodTableName)
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and certificate = ?", after.OidcMethodId, after.Cert))
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and certificate = ?", []interface{}{after.OidcMethodId, after.Cert}))
|
||||
|
||||
assert.True(proto.Equal(orig, after))
|
||||
})
|
||||
@@ -263,7 +263,7 @@ func TestSigningAlg_ImmutableFields(t *testing.T) {
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]), WithSigningAlgs(RS256))
|
||||
|
||||
new := AllocSigningAlg()
|
||||
require.NoError(t, rw.LookupWhere(ctx, &new, "oidc_method_id = ? and signing_alg_name = ?", am.PublicId, RS256))
|
||||
require.NoError(t, rw.LookupWhere(ctx, &new, "oidc_method_id = ? and signing_alg_name = ?", []interface{}{am.PublicId, RS256}))
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -305,7 +305,7 @@ func TestSigningAlg_ImmutableFields(t *testing.T) {
|
||||
|
||||
orig := new.Clone()
|
||||
orig.SetTableName(defaultAuthMethodTableName)
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and signing_alg_name = ?", orig.OidcMethodId, orig.Alg))
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and signing_alg_name = ?", []interface{}{orig.OidcMethodId, orig.Alg}))
|
||||
|
||||
require.NoError(err)
|
||||
|
||||
@@ -316,7 +316,7 @@ func TestSigningAlg_ImmutableFields(t *testing.T) {
|
||||
|
||||
after := new.Clone()
|
||||
after.SetTableName(defaultAuthMethodTableName)
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and signing_alg_name = ?", after.OidcMethodId, after.Alg))
|
||||
require.NoError(rw.LookupWhere(ctx, &new, "oidc_method_id = ? and signing_alg_name = ?", []interface{}{after.OidcMethodId, after.Alg}))
|
||||
|
||||
assert.True(proto.Equal(orig, after))
|
||||
})
|
||||
|
||||
@@ -947,7 +947,7 @@ func TestRepository_UpdateAccount(t *testing.T) {
|
||||
chgFn: combine(nonExistentPublicId(), changeName("updating-non-existent-Account-test-update-name-repo")),
|
||||
masks: []string{NameField},
|
||||
wantIsErr: errors.RecordNotFound,
|
||||
wantErrMsg: "oidc.(Repository).UpdateAccount: abcd_OOOOOOOOOO: db.DoTx: oidc.(Repository).UpdateAccount: db.Update: db.lookupAfterWrite: db.LookupById: record not found, search issue: error #1100",
|
||||
wantErrMsg: "oidc.(Repository).UpdateAccount: abcd_OOOOOOOOOO: db.DoTx: oidc.(Repository).UpdateAccount: db.Update: record not found, search issue: error #1100: dbw.Update: dbw.lookupAfterWrite: dbw.LookupById: record not found",
|
||||
},
|
||||
{
|
||||
name: "empty-field-mask",
|
||||
|
||||
@@ -176,7 +176,7 @@ func (r *Repository) upsertAccount(ctx context.Context, am *AuthMethod, IdTokenC
|
||||
var rowCnt int
|
||||
for rows.Next() {
|
||||
rowCnt += 1
|
||||
err = r.reader.ScanRows(rows, &result)
|
||||
err = r.reader.ScanRows(ctx, rows, &result)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to scan rows for account"))
|
||||
}
|
||||
@@ -184,7 +184,7 @@ func (r *Repository) upsertAccount(ctx context.Context, am *AuthMethod, IdTokenC
|
||||
if rowCnt > 1 {
|
||||
return errors.New(ctx, errors.MultipleRecords, op, fmt.Sprintf("expected 1 row but got: %d", rowCnt))
|
||||
}
|
||||
if err := reader.LookupWhere(ctx, &updatedAcct, "auth_method_id = ? and issuer = ? and subject = ?", am.PublicId, iss, sub); err != nil {
|
||||
if err := reader.LookupWhere(ctx, &updatedAcct, "auth_method_id = ? and issuer = ? and subject = ?", []interface{}{am.PublicId, iss, sub}); err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg(fmt.Sprintf("unable to look up auth oidc account for: %s / %s / %s", am.PublicId, iss, sub)))
|
||||
}
|
||||
// include the version incase of predictable account public ids based on a calculation using authmethod id and subject
|
||||
@@ -238,7 +238,7 @@ func upsertOplog(ctx context.Context, w db.Writer, oplogWrapper wrapping.Wrapper
|
||||
if operation == oplog.OpType_OP_TYPE_UPDATE && len(fieldMasks) == 0 && len(nullMasks) == 0 {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "update operations must specify field masks and/or null masks")
|
||||
}
|
||||
ticket, err := w.GetTicket(acct)
|
||||
ticket, err := w.GetTicket(ctx, acct)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ func (r *Repository) CreateAuthMethod(ctx context.Context, am *AuthMethod, opt .
|
||||
db.ExpBackoff{},
|
||||
func(_ db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 5)
|
||||
ticket, err := w.GetTicket(am)
|
||||
ticket, err := w.GetTicket(ctx, am)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ func (r *Repository) UpdateAuthMethod(ctx context.Context, am *AuthMethod, versi
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 7) // AuthMethod, Algs*2, Certs*2, Audiences*2
|
||||
ticket, err := w.GetTicket(am)
|
||||
ticket, err := w.GetTicket(ctx, am)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ func (r *Repository) SetManagedGroupMemberships(ctx context.Context, am *AuthMet
|
||||
// We need a ticket, which won't be redeemed until all the other
|
||||
// writes are successful. We can't just use a single ticket because
|
||||
// we need to write oplog entries for deletes and adds.
|
||||
mgTicket, err := w.GetTicket(ticketMg)
|
||||
mgTicket, err := w.GetTicket(ctx, ticketMg)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket for oidc managed groups"))
|
||||
}
|
||||
|
||||
@@ -703,7 +703,7 @@ func TestRepository_UpdateManagedGroup(t *testing.T) {
|
||||
chgFn: combine(nonExistentPublicId(), changeName("updating-non-existent-ManagedGroup-test-update-name-repo")),
|
||||
masks: []string{NameField},
|
||||
wantIsErr: errors.RecordNotFound,
|
||||
wantErrMsg: "oidc.(Repository).UpdateManagedGroup: abcd_OOOOOOOOOO: db.DoTx: oidc.(Repository).UpdateManagedGroup: db.Update: db.lookupAfterWrite: db.LookupById: record not found, search issue: error #1100",
|
||||
wantErrMsg: "oidc.(Repository).UpdateManagedGroup: abcd_OOOOOOOOOO: db.DoTx: oidc.(Repository).UpdateManagedGroup: db.Update: record not found, search issue: error #1100: dbw.Update: dbw.lookupAfterWrite: dbw.LookupById: record not found",
|
||||
},
|
||||
{
|
||||
name: "empty-field-mask",
|
||||
|
||||
@@ -35,6 +35,8 @@ func Test_Callback(t *testing.T) {
|
||||
rootWrapper := db.TestWrapper(t)
|
||||
kmsCache := kms.TestKms(t, conn, rootWrapper)
|
||||
|
||||
testCtx := context.Background()
|
||||
|
||||
// some standard factories for unit tests which
|
||||
// are used in the Callback(...) call
|
||||
iamRepoFn := func() (*iam.Repository, error) {
|
||||
@@ -373,7 +375,7 @@ func Test_Callback(t *testing.T) {
|
||||
|
||||
// make sure the account was updated properly
|
||||
var acct Account
|
||||
err = rw.LookupWhere(ctx, &acct, "auth_method_id = ? and subject = ?", tt.am.PublicId, tt.wantSubject)
|
||||
err = rw.LookupWhere(ctx, &acct, "auth_method_id = ? and subject = ?", []interface{}{tt.am.PublicId, tt.wantSubject})
|
||||
require.NoError(err)
|
||||
assert.Equal(tt.wantInfoEmail, acct.Email)
|
||||
assert.Equal(tt.wantInfoName, acct.FullName)
|
||||
@@ -393,7 +395,7 @@ func Test_Callback(t *testing.T) {
|
||||
require.NoError(err)
|
||||
oplogWrapper, err := kmsCache.GetWrapper(ctx, tt.am.ScopeId, kms.KeyPurposeOplog)
|
||||
require.NoError(err)
|
||||
types, err := oplog.NewTypeCatalog(
|
||||
types, err := oplog.NewTypeCatalog(testCtx,
|
||||
oplog.Type{Interface: new(store.Account), Name: "auth_oidc_account"},
|
||||
oplog.Type{Interface: new(iamStore.User), Name: "iam_user"},
|
||||
oplog.Type{Interface: new(authStore.Account), Name: "auth_account"},
|
||||
@@ -407,7 +409,7 @@ func Test_Callback(t *testing.T) {
|
||||
e.Cipherer = oplogWrapper
|
||||
err := e.DecryptData(ctx)
|
||||
require.NoError(err)
|
||||
msgs, err := e.UnmarshalData(types)
|
||||
msgs, err := e.UnmarshalData(ctx, types)
|
||||
require.NoError(err)
|
||||
for _, m := range msgs {
|
||||
switch m.TypeName {
|
||||
|
||||
@@ -122,7 +122,7 @@ func TestSigningAlg_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
}
|
||||
found := AllocSigningAlg()
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and signing_alg_name = ?", tt.args.authMethodId, string(tt.args.alg)))
|
||||
require.NoError(rw.LookupWhere(ctx, &found, "oidc_method_id = ? and signing_alg_name = ?", []interface{}{tt.args.authMethodId, string(tt.args.alg)}))
|
||||
assert.Equal(got, &found)
|
||||
}
|
||||
})
|
||||
@@ -141,18 +141,17 @@ func TestSigningAlg_Delete(t *testing.T) {
|
||||
databaseWrapper, err := kmsCache.GetWrapper(context.Background(), org.PublicId, kms.KeyPurposeDatabase)
|
||||
require.NoError(t, err)
|
||||
|
||||
testAuthMethod :=
|
||||
TestAuthMethod(
|
||||
t,
|
||||
conn,
|
||||
databaseWrapper,
|
||||
org.PublicId,
|
||||
InactiveState,
|
||||
"alice_rp",
|
||||
"my-dogs-name",
|
||||
WithIssuer(TestConvertToUrls(t, "https://alice.com")[0]),
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]),
|
||||
WithSigningAlgs(RS256)) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
testAuthMethod := TestAuthMethod(
|
||||
t,
|
||||
conn,
|
||||
databaseWrapper,
|
||||
org.PublicId,
|
||||
InactiveState,
|
||||
"alice_rp",
|
||||
"my-dogs-name",
|
||||
WithIssuer(TestConvertToUrls(t, "https://alice.com")[0]),
|
||||
WithApiUrl(TestConvertToUrls(t, "https://api.com")[0]),
|
||||
WithSigningAlgs(RS256)) // seed an extra callback url to just make sure the delete only gets the right num of rows
|
||||
|
||||
testResource := func(authMethodId string, signingAlg Alg) *SigningAlg {
|
||||
c, err := NewSigningAlg(ctx, authMethodId, signingAlg)
|
||||
@@ -210,7 +209,7 @@ func TestSigningAlg_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := AllocSigningAlg()
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and signing_alg_name = ?", tt.SigningAlg.OidcMethodId, tt.SigningAlg.String())
|
||||
err = rw.LookupWhere(ctx, &found, "oidc_method_id = ? and signing_alg_name = ?", []interface{}{tt.SigningAlg.OidcMethodId, tt.SigningAlg.String()})
|
||||
assert.Truef(errors.IsNotFoundError(err), "unexpected error: %s", err.Error())
|
||||
})
|
||||
}
|
||||
|
||||
@@ -697,7 +697,7 @@ func TestRepository_UpdateAccount(t *testing.T) {
|
||||
chgFn: combine(nonExistentPublicId(), changeName("test-update-name-repo")),
|
||||
masks: []string{"Name"},
|
||||
wantIsErr: errors.RecordNotFound,
|
||||
wantErrMsg: "password.(Repository).UpdateAccount: abcd_OOOOOOOOOO: db.DoTx: password.(Repository).UpdateAccount: db.Update: db.lookupAfterWrite: db.LookupById: record not found, search issue: error #1100",
|
||||
wantErrMsg: "password.(Repository).UpdateAccount: abcd_OOOOOOOOOO: db.DoTx: password.(Repository).UpdateAccount: db.Update: record not found, search issue: error #1100: dbw.Update: dbw.lookupAfterWrite: dbw.LookupById: record not found",
|
||||
},
|
||||
{
|
||||
name: "empty-field-mask",
|
||||
|
||||
@@ -92,7 +92,7 @@ func (r *Repository) setArgon2Conf(ctx context.Context, scopeId string, c *Argon
|
||||
_, err = r.writer.DoTx(ctx, db.StdRetryCnt, db.ExpBackoff{},
|
||||
func(rr db.Reader, w db.Writer) error {
|
||||
where, args := c.whereDup()
|
||||
if err := rr.LookupWhere(ctx, newArgon2Conf, where, args...); err != nil {
|
||||
if err := rr.LookupWhere(ctx, newArgon2Conf, where, args); err != nil {
|
||||
if !errors.IsNotFoundError(err) {
|
||||
return errors.Wrap(ctx, err, op)
|
||||
}
|
||||
@@ -134,7 +134,7 @@ func (c *currentConfig) TableName() string {
|
||||
func (r *Repository) currentConfig(ctx context.Context, authMethodId string) (*currentConfig, error) {
|
||||
const op = "password.(Repository).currentConfig"
|
||||
var cc currentConfig
|
||||
if err := r.reader.LookupWhere(ctx, &cc, "password_method_id = ?", authMethodId); err != nil {
|
||||
if err := r.reader.LookupWhere(ctx, &cc, "password_method_id = ?", []interface{}{authMethodId}); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
return &cc, nil
|
||||
@@ -151,7 +151,7 @@ func (r *Repository) currentConfigForAccount(ctx context.Context, accountId stri
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var conf currentConfig
|
||||
if err := r.reader.ScanRows(rows, &conf); err != nil {
|
||||
if err := r.reader.ScanRows(ctx, rows, &conf); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
confs = append(confs, conf)
|
||||
|
||||
@@ -221,7 +221,7 @@ func (r *Repository) authenticate(ctx context.Context, scopeId, authMethodId, lo
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var aa authAccount
|
||||
if err := r.reader.ScanRows(rows, &aa); err != nil {
|
||||
if err := r.reader.ScanRows(ctx, rows, &aa); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
accts = append(accts, aa)
|
||||
@@ -316,7 +316,7 @@ func (r *Repository) SetPassword(ctx context.Context, scopeId, accountId, passwo
|
||||
acct = updatedAccount
|
||||
|
||||
oldCred := allocCredential()
|
||||
if err := rr.LookupWhere(ctx, &oldCred, "password_account_id = ?", accountId); err != nil {
|
||||
if err := rr.LookupWhere(ctx, &oldCred, "password_account_id = ?", []interface{}{accountId}); err != nil {
|
||||
if !errors.IsNotFoundError(err) {
|
||||
return errors.Wrap(ctx, err, op)
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ func TestRepository_AuthenticateRehash(t *testing.T) {
|
||||
// Get the credential for the new account and verify the KDF used the
|
||||
// original argon2 configuration
|
||||
origCred := &Argon2Credential{Argon2Credential: &store.Argon2Credential{}}
|
||||
require.NoError(rw.LookupWhere(ctx, origCred, "password_account_id = ?", origAcct.PublicId))
|
||||
require.NoError(rw.LookupWhere(ctx, origCred, "password_account_id = ?", []interface{}{origAcct.PublicId}))
|
||||
assert.Equal(origAcct.PublicId, origCred.PasswordAccountId)
|
||||
assert.Equal(origConfId, origCred.PasswordConfId)
|
||||
assert.Equal(origCred.CreateTime, origCred.UpdateTime, "create and update times are equal")
|
||||
|
||||
@@ -60,13 +60,12 @@ func (c *EncryptDecryptCommand) Help() string {
|
||||
)
|
||||
|
||||
for i, line := range args {
|
||||
args[i] =
|
||||
args[i] = strings.Replace(
|
||||
strings.Replace(
|
||||
strings.Replace(
|
||||
line, "{{func}}", c.Func, -1,
|
||||
),
|
||||
"{{upperfunc}}", textproto.CanonicalMIMEHeaderKey(c.Func), -1,
|
||||
)
|
||||
line, "{{func}}", c.Func, -1,
|
||||
),
|
||||
"{{upperfunc}}", textproto.CanonicalMIMEHeaderKey(c.Func), -1,
|
||||
)
|
||||
}
|
||||
|
||||
return base.WrapForHelpText(args) + c.Flags().Help()
|
||||
|
||||
@@ -126,17 +126,16 @@ func subtype(in []string, resType string, prefixMap map[string]string) []string
|
||||
articleType = fmt.Sprintf("a %s", articleType)
|
||||
}
|
||||
for i, v := range in {
|
||||
in[i] =
|
||||
in[i] = strings.Replace(
|
||||
strings.Replace(
|
||||
strings.Replace(
|
||||
strings.Replace(
|
||||
strings.Replace(
|
||||
strings.Replace(
|
||||
v, "{{hyphentype}}", hyphenType, -1),
|
||||
"{{type}}", resType, -1),
|
||||
"{{uppertype}}", textproto.CanonicalMIMEHeaderKey(resType), -1),
|
||||
"{{prefix}}", prefixMap[resType], -1),
|
||||
"{{articletype}}", articleType, -1)
|
||||
v, "{{hyphentype}}", hyphenType, -1),
|
||||
"{{type}}", resType, -1),
|
||||
"{{uppertype}}", textproto.CanonicalMIMEHeaderKey(resType), -1),
|
||||
"{{prefix}}", prefixMap[resType], -1),
|
||||
"{{articletype}}", articleType, -1)
|
||||
}
|
||||
return in
|
||||
}
|
||||
@@ -235,9 +235,9 @@ func (r *TokenRenewalJob) renewToken(ctx context.Context, s *privateStore) error
|
||||
}
|
||||
|
||||
// NextRunIn queries the vault credential repo to determine when the next token renewal job should run.
|
||||
func (r *TokenRenewalJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *TokenRenewalJob) NextRunIn(ctx context.Context) (time.Duration, error) {
|
||||
const op = "vault.(TokenRenewalJob).NextRunIn"
|
||||
next, err := nextRenewal(r)
|
||||
next, err := nextRenewal(ctx, r)
|
||||
if err != nil {
|
||||
return defaultNextRunIn, errors.WrapDeprecated(err, op)
|
||||
}
|
||||
@@ -245,7 +245,7 @@ func (r *TokenRenewalJob) NextRunIn() (time.Duration, error) {
|
||||
return next, nil
|
||||
}
|
||||
|
||||
func nextRenewal(j scheduler.Job) (time.Duration, error) {
|
||||
func nextRenewal(ctx context.Context, j scheduler.Job) (time.Duration, error) {
|
||||
const op = "vault.nextRenewal"
|
||||
var query string
|
||||
var r db.Reader
|
||||
@@ -271,7 +271,7 @@ func nextRenewal(j scheduler.Job) (time.Duration, error) {
|
||||
RenewalIn time.Duration
|
||||
}
|
||||
var n NextRenewal
|
||||
err = r.ScanRows(rows, &n)
|
||||
err = r.ScanRows(ctx, rows, &n)
|
||||
if err != nil {
|
||||
return 0, errors.WrapDeprecated(err, op)
|
||||
}
|
||||
@@ -446,7 +446,7 @@ func (r *TokenRevocationJob) revokeToken(ctx context.Context, s *privateStore) e
|
||||
}
|
||||
|
||||
// NextRunIn determines when the next token revocation job should run.
|
||||
func (r *TokenRevocationJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *TokenRevocationJob) NextRunIn(_ context.Context) (time.Duration, error) {
|
||||
return defaultNextRunIn, nil
|
||||
}
|
||||
|
||||
@@ -603,9 +603,9 @@ func (r *CredentialRenewalJob) renewCred(ctx context.Context, c *privateCredenti
|
||||
}
|
||||
|
||||
// NextRunIn queries the vault credential repo to determine when the next credential renewal job should run.
|
||||
func (r *CredentialRenewalJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *CredentialRenewalJob) NextRunIn(ctx context.Context) (time.Duration, error) {
|
||||
const op = "vault.(CredentialRenewalJob).NextRunIn"
|
||||
next, err := nextRenewal(r)
|
||||
next, err := nextRenewal(ctx, r)
|
||||
if err != nil {
|
||||
return defaultNextRunIn, errors.WrapDeprecated(err, op)
|
||||
}
|
||||
@@ -751,7 +751,7 @@ func (r *CredentialRevocationJob) revokeCred(ctx context.Context, c *privateCred
|
||||
}
|
||||
|
||||
// NextRunIn determine when the next credential revocation job should run.
|
||||
func (r *CredentialRevocationJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *CredentialRevocationJob) NextRunIn(_ context.Context) (time.Duration, error) {
|
||||
return defaultNextRunIn, nil
|
||||
}
|
||||
|
||||
@@ -866,7 +866,7 @@ func (r *CredentialStoreCleanupJob) Run(ctx context.Context) error {
|
||||
}
|
||||
|
||||
// NextRunIn determine when the next credential store cleanup job should run.
|
||||
func (r *CredentialStoreCleanupJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *CredentialStoreCleanupJob) NextRunIn(_ context.Context) (time.Duration, error) {
|
||||
return defaultNextRunIn, nil
|
||||
}
|
||||
|
||||
@@ -940,7 +940,7 @@ func (r *CredentialCleanupJob) Run(ctx context.Context) error {
|
||||
}
|
||||
|
||||
// NextRunIn determine when the next credential cleanup job should run.
|
||||
func (r *CredentialCleanupJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *CredentialCleanupJob) NextRunIn(_ context.Context) (time.Duration, error) {
|
||||
return defaultNextRunIn, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ func testVaultToken(t *testing.T,
|
||||
require.NoError(err)
|
||||
|
||||
outToken := allocToken()
|
||||
require.NoError(rw.LookupWhere(context.Background(), &outToken, "token_hmac = ?", inToken.TokenHmac))
|
||||
require.NoError(rw.LookupWhere(context.Background(), &outToken, "token_hmac = ?", []interface{}{inToken.TokenHmac}))
|
||||
require.NoError(outToken.decrypt(context.Background(), databaseWrapper))
|
||||
|
||||
return outToken
|
||||
@@ -141,7 +141,7 @@ func testVaultCred(t *testing.T,
|
||||
assert.NoError(err)
|
||||
|
||||
outCred := allocCredential()
|
||||
require.NoError(rw.LookupWhere(context.Background(), &outCred, "public_id = ?", id))
|
||||
require.NoError(rw.LookupWhere(context.Background(), &outCred, "public_id = ?", []interface{}{id}))
|
||||
|
||||
return secret, outCred
|
||||
}
|
||||
@@ -582,7 +582,7 @@ func TestTokenRenewalJob_NextRunIn(t *testing.T) {
|
||||
assert.Equal(1, count)
|
||||
}
|
||||
|
||||
got, err := r.NextRunIn()
|
||||
got, err := r.NextRunIn(context.Background())
|
||||
require.NoError(err)
|
||||
// Round to time.Minute to account for lost time between creating tokens and determining next run
|
||||
assert.Equal(tt.want.Round(time.Minute), got.Round(time.Minute))
|
||||
@@ -1437,7 +1437,7 @@ func TestCredentialRenewalJob_NextRunIn(t *testing.T) {
|
||||
testVaultCred(t, conn, v, cl, sess, token, cred.s, cred.e)
|
||||
}
|
||||
|
||||
got, err := r.NextRunIn()
|
||||
got, err := r.NextRunIn(context.Background())
|
||||
require.NoError(err)
|
||||
// Round to time.Minute to account for lost time between creating credentials and determining next run
|
||||
assert.Equal(tt.want.Round(time.Minute), got.Round(time.Minute))
|
||||
|
||||
@@ -317,7 +317,7 @@ func (r *Repository) getPrivateLibraries(ctx context.Context, requests []credent
|
||||
var libs []*privateLibrary
|
||||
for rows.Next() {
|
||||
var lib privateLibrary
|
||||
if err := r.reader.ScanRows(rows, &lib); err != nil {
|
||||
if err := r.reader.ScanRows(ctx, rows, &lib); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithMsg("scan row failed"))
|
||||
}
|
||||
purps := mapper.get(lib.GetPublicId())
|
||||
|
||||
@@ -45,7 +45,7 @@ func (r *Repository) lookupPrivateStore(ctx context.Context, publicId string) (*
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "no public id")
|
||||
}
|
||||
ps := allocPrivateStore()
|
||||
if err := r.reader.LookupWhere(ctx, &ps, "public_id = ? and token_status = ?", publicId, CurrentToken); err != nil {
|
||||
if err := r.reader.LookupWhere(ctx, &ps, "public_id = ? and token_status = ?", []interface{}{publicId, CurrentToken}); err != nil {
|
||||
if errors.IsNotFoundError(err) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ func (r *Repository) CreateCredentialLibrary(ctx context.Context, scopeId string
|
||||
_, err = r.writer.DoTx(ctx, db.StdRetryCnt, db.ExpBackoff{},
|
||||
func(_ db.Reader, w db.Writer) error {
|
||||
var msgs []*oplog.Message
|
||||
ticket, err := w.GetTicket(l)
|
||||
ticket, err := w.GetTicket(ctx, l)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -222,7 +222,7 @@ func (r *Repository) UpdateCredentialLibrary(ctx context.Context, scopeId string
|
||||
_, err = r.writer.DoTx(ctx, db.StdRetryCnt, db.ExpBackoff{},
|
||||
func(rr db.Reader, w db.Writer) error {
|
||||
var msgs []*oplog.Message
|
||||
ticket, err := w.GetTicket(l)
|
||||
ticket, err := w.GetTicket(ctx, l)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -330,7 +330,7 @@ func TestRepository_CreateCredentialLibrary(t *testing.T) {
|
||||
|
||||
// verify it was persisted in the database
|
||||
override := allocUserPasswordOverride()
|
||||
assert.NoError(rw.LookupWhere(ctx, &override, "library_id = ?", got.GetPublicId()))
|
||||
assert.NoError(rw.LookupWhere(ctx, &override, "library_id = ?", []interface{}{got.GetPublicId()}))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ func (r *Repository) CreateCredentialStore(ctx context.Context, cs *CredentialSt
|
||||
_, err = r.writer.DoTx(ctx, db.StdRetryCnt, db.ExpBackoff{},
|
||||
func(_ db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 3)
|
||||
ticket, err := w.GetTicket(cs)
|
||||
ticket, err := w.GetTicket(ctx, cs)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -519,7 +519,7 @@ func (r *Repository) UpdateCredentialStore(ctx context.Context, cs *CredentialSt
|
||||
_, err = r.writer.DoTx(ctx, db.StdRetryCnt, db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 3)
|
||||
ticket, err := w.GetTicket(cs)
|
||||
ticket, err := w.GetTicket(ctx, cs)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -693,7 +693,7 @@ func (r *Repository) DeleteCredentialStore(ctx context.Context, publicId string,
|
||||
ctx, db.StdRetryCnt, db.ExpBackoff{},
|
||||
func(_ db.Reader, w db.Writer) (err error) {
|
||||
var msgs []*oplog.Message
|
||||
ticket, err := w.GetTicket(cs)
|
||||
ticket, err := w.GetTicket(ctx, cs)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -216,11 +216,11 @@ func TestRepository_CreateCredentialStoreNonResource(t *testing.T) {
|
||||
assert.NoError(db.TestVerifyOplog(t, rw, got.PublicId, db.WithOperation(oplog.OpType_OP_TYPE_CREATE), db.WithCreateNotBefore(10*time.Second)))
|
||||
|
||||
outToken := allocToken()
|
||||
assert.NoError(rw.LookupWhere(ctx, &outToken, "store_id = ?", got.PublicId))
|
||||
assert.NoError(rw.LookupWhere(ctx, &outToken, "store_id = ?", []interface{}{got.PublicId}))
|
||||
|
||||
if tt.tls == TestClientTLS {
|
||||
outClientCert := allocClientCertificate()
|
||||
assert.NoError(rw.LookupWhere(ctx, &outClientCert, "store_id = ?", got.PublicId))
|
||||
assert.NoError(rw.LookupWhere(ctx, &outClientCert, "store_id = ?", []interface{}{got.PublicId}))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ func testTokens(t *testing.T, conn *db.DB, wrapper wrapping.Wrapper, scopeId, st
|
||||
num := r.Int31()
|
||||
inToken := createTestToken(t, conn, wrapper, scopeId, storeId, fmt.Sprintf("vault-token-%s-%d-%v", storeId, i, num), fmt.Sprintf("accessor-%s-%d-%v", storeId, i, num))
|
||||
outToken := allocToken()
|
||||
require.NoError(w.LookupWhere(ctx, &outToken, "token_hmac = ?", inToken.TokenHmac))
|
||||
require.NoError(w.LookupWhere(ctx, &outToken, "token_hmac = ?", []interface{}{inToken.TokenHmac}))
|
||||
require.NoError(outToken.decrypt(ctx, databaseWrapper))
|
||||
|
||||
tokens = append(tokens, outToken)
|
||||
|
||||
@@ -115,7 +115,7 @@ type testModel struct {
|
||||
func (*testModel) TableName() string { return "test_table_dbasserts" }
|
||||
|
||||
// CreateTestModel is a helper that creates a testModel in the DB.
|
||||
func createTestModel(t dbassert.TestingT, db *db.DB, nullable *string, typeInt *int) *testModel {
|
||||
func createTestModel(t dbassert.TestingT, d *db.DB, nullable *string, typeInt *int) *testModel {
|
||||
publicId, err := base62.Random(12)
|
||||
assert.NoError(t, err)
|
||||
m := testModel{
|
||||
@@ -123,12 +123,12 @@ func createTestModel(t dbassert.TestingT, db *db.DB, nullable *string, typeInt *
|
||||
Nullable: nullable,
|
||||
TypeInt: typeInt,
|
||||
}
|
||||
err = db.Create(&m).Error
|
||||
assert.NoError(t, err)
|
||||
rw := db.New(d)
|
||||
require.NoError(t, rw.Create(context.Background(), &m))
|
||||
return &m
|
||||
}
|
||||
|
||||
func initStore(t *testing.T, db *db.DB) {
|
||||
func initStore(t *testing.T, d *db.DB) {
|
||||
t.Helper()
|
||||
const (
|
||||
createDomainType = `
|
||||
@@ -150,6 +150,11 @@ comment on table test_table_dbasserts is
|
||||
'dbasserts test table'
|
||||
`
|
||||
)
|
||||
require.NoError(t, db.Exec(createDomainType).Error)
|
||||
require.NoError(t, db.Exec(createTable).Error)
|
||||
rw := db.New(d)
|
||||
|
||||
ctx := context.Background()
|
||||
_, err := rw.Exec(ctx, createDomainType, nil)
|
||||
require.NoError(t, err)
|
||||
_, err = rw.Exec(ctx, createTable, nil)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
@@ -2,9 +2,6 @@ package db
|
||||
|
||||
import (
|
||||
"sort"
|
||||
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
// ColumnValue defines a column and it's assigned value for a database operation
|
||||
@@ -13,30 +10,12 @@ type ColumnValue struct {
|
||||
value interface{}
|
||||
}
|
||||
|
||||
type assigner interface {
|
||||
toAssignment(column string) clause.Assignment
|
||||
}
|
||||
|
||||
// column represents a table column
|
||||
type column struct {
|
||||
name string
|
||||
table string
|
||||
}
|
||||
|
||||
func (c *column) toAssignment(column string) clause.Assignment {
|
||||
return clause.Assignment{
|
||||
Column: clause.Column{Name: column},
|
||||
Value: clause.Column{Table: c.table, Name: c.name},
|
||||
}
|
||||
}
|
||||
|
||||
func rawAssignment(column string, value interface{}) clause.Assignment {
|
||||
return clause.Assignment{
|
||||
Column: clause.Column{Name: column},
|
||||
Value: value,
|
||||
}
|
||||
}
|
||||
|
||||
// ExprValue encapsulates an expression value for a column assignment. See
|
||||
// Expr(...) to create these values.
|
||||
type ExprValue struct {
|
||||
@@ -44,13 +23,6 @@ type ExprValue struct {
|
||||
vars []interface{}
|
||||
}
|
||||
|
||||
func (ev *ExprValue) toAssignment(column string) clause.Assignment {
|
||||
return clause.Assignment{
|
||||
Column: clause.Column{Name: column},
|
||||
Value: gorm.Expr(ev.sql, ev.vars...),
|
||||
}
|
||||
}
|
||||
|
||||
// Expr creates an expression value (ExprValue) which can be used when setting
|
||||
// column values for database operations. See: Expr(...)
|
||||
//
|
||||
|
||||
+21
-57
@@ -6,14 +6,16 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/boundary/internal/errors"
|
||||
"github.com/hashicorp/go-hclog"
|
||||
"github.com/jackc/pgconn"
|
||||
"github.com/hashicorp/go-dbw"
|
||||
_ "github.com/jackc/pgx/v4"
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
func init() {
|
||||
dbw.InitNonCreatableFields([]string{"CreateTime", "UpdateTime"})
|
||||
dbw.InitNonUpdatableFields([]string{"PublicId", "CreateTime", "UpdateTime"})
|
||||
}
|
||||
|
||||
type DbType int
|
||||
|
||||
const (
|
||||
@@ -39,18 +41,12 @@ func StringToDbType(dialect string) (DbType, error) {
|
||||
|
||||
// DB is a wrapper around the ORM
|
||||
type DB struct {
|
||||
*gorm.DB
|
||||
wrapped *dbw.DB
|
||||
}
|
||||
|
||||
// Debug will enable/disable debug info for the connection
|
||||
func (db *DB) Debug(on bool) {
|
||||
if on {
|
||||
// info level in the Gorm domain which maps to a debug level in the boundary domain
|
||||
db.Logger = logger.Default.LogMode(logger.Info)
|
||||
} else {
|
||||
// the default level in the gorm domain is: error level
|
||||
db.Logger = logger.Default.LogMode(logger.Error)
|
||||
}
|
||||
db.wrapped.Debug(on)
|
||||
}
|
||||
|
||||
// SqlDB returns the underlying sql.DB
|
||||
@@ -60,23 +56,19 @@ func (db *DB) Debug(on bool) {
|
||||
// is also an export DB type
|
||||
func (d *DB) SqlDB(ctx context.Context) (*sql.DB, error) {
|
||||
const op = "db.(DB).SqlDB"
|
||||
if d.DB == nil {
|
||||
if d.wrapped == nil {
|
||||
return nil, errors.New(ctx, errors.Internal, op, "missing underlying database")
|
||||
}
|
||||
return d.DB.DB()
|
||||
return d.wrapped.SqlDB(ctx)
|
||||
}
|
||||
|
||||
// Close the underlying sql.DB
|
||||
func (d *DB) Close(ctx context.Context) error {
|
||||
const op = "db.(DB).Close"
|
||||
if d.DB == nil {
|
||||
if d.wrapped == nil {
|
||||
return errors.New(ctx, errors.Internal, op, "missing underlying database")
|
||||
}
|
||||
underlying, err := d.DB.DB()
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op)
|
||||
}
|
||||
return underlying.Close()
|
||||
return d.wrapped.Close(ctx)
|
||||
}
|
||||
|
||||
// Open a database connection which is long-lived. The options of
|
||||
@@ -86,7 +78,8 @@ func (d *DB) Close(ctx context.Context) error {
|
||||
// answer is no, but there are occasions when it's necessary. See the sql.DB
|
||||
// docs for more information.
|
||||
func Open(dbType DbType, connectionUrl string, opt ...Option) (*DB, error) {
|
||||
var dialect gorm.Dialector
|
||||
const op = "db.Open"
|
||||
var dialect dbw.Dialector
|
||||
switch dbType {
|
||||
case Postgres:
|
||||
dialect = postgres.New(postgres.Config{
|
||||
@@ -96,47 +89,18 @@ func Open(dbType DbType, connectionUrl string, opt ...Option) (*DB, error) {
|
||||
default:
|
||||
return nil, fmt.Errorf("unable to open %s database type", dbType)
|
||||
}
|
||||
db, err := gorm.Open(dialect, &gorm.Config{})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to open database: %w", err)
|
||||
}
|
||||
opts := GetOpts(opt...)
|
||||
var wrappedOpts []dbw.Option
|
||||
if opts.withGormFormatter != nil {
|
||||
newLogger := logger.New(
|
||||
getGormLogger(opts.withGormFormatter),
|
||||
logger.Config{
|
||||
LogLevel: logger.Error, // Log level
|
||||
Colorful: false, // Disable color
|
||||
},
|
||||
)
|
||||
db = db.Session(&gorm.Session{Logger: newLogger})
|
||||
wrappedOpts = append(wrappedOpts, dbw.WithLogger(opts.withGormFormatter))
|
||||
}
|
||||
if opts.withMaxOpenConnections > 0 {
|
||||
if dialect.Name() == "postgres" && opts.withMaxOpenConnections == 1 {
|
||||
return nil, fmt.Errorf("unable to create db object with dialect %s: %s", dialect, "max_open_connections must be unlimited by setting 0 or at least 2")
|
||||
}
|
||||
underlyingDB, err := db.DB()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable retreive db: %w", err)
|
||||
}
|
||||
underlyingDB.SetMaxOpenConns(opts.withMaxOpenConnections)
|
||||
wrappedOpts = append(wrappedOpts, dbw.WithMaxOpenConnections(opts.withMaxOpenConnections))
|
||||
}
|
||||
return &DB{db}, nil
|
||||
}
|
||||
|
||||
type gormLogger struct {
|
||||
logger hclog.Logger
|
||||
}
|
||||
|
||||
func (g gormLogger) Printf(msg string, values ...interface{}) {
|
||||
if len(values) > 1 {
|
||||
switch values[1].(type) {
|
||||
case *pgconn.PgError:
|
||||
g.logger.Trace("error from database adapter", "location", values[0], "error", values[1])
|
||||
}
|
||||
wrapped, err := dbw.OpenWith(dialect, wrappedOpts...)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %w", op, err)
|
||||
}
|
||||
}
|
||||
|
||||
func getGormLogger(log hclog.Logger) gormLogger {
|
||||
return gormLogger{logger: log}
|
||||
return &DB{wrapped: wrapped}, nil
|
||||
}
|
||||
@@ -1,7 +1,12 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/boundary/internal/errors"
|
||||
"github.com/hashicorp/boundary/internal/oplog"
|
||||
"github.com/hashicorp/go-dbw"
|
||||
"github.com/hashicorp/go-hclog"
|
||||
wrapping "github.com/hashicorp/go-kms-wrapping"
|
||||
)
|
||||
@@ -15,6 +20,122 @@ func GetOpts(opt ...Option) Options {
|
||||
return opts
|
||||
}
|
||||
|
||||
func getDbwOptions(ctx context.Context, rw *Db, i interface{}, opType OpType, opt ...Option) ([]dbw.Option, error) {
|
||||
const op = "db.getDbwOptions"
|
||||
opts := GetOpts(opt...)
|
||||
dbwOpts := make([]dbw.Option, 0, len(opt))
|
||||
oplogBefore, after, err := rw.generateOplogBeforeAfterOpts(ctx, i, opType, opts)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
before := oplogBefore
|
||||
if !opts.withSkipVetForWrite && (opType != DeleteOp && opType != DeleteItemsOp) {
|
||||
if vetter, ok := i.(VetForWriter); ok {
|
||||
before = func(i interface{}) error {
|
||||
if err := vetter.VetForWrite(ctx, rw, opType, opt...); err != nil {
|
||||
return err
|
||||
}
|
||||
if oplogBefore != nil {
|
||||
if err := oplogBefore(i); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
if before != nil {
|
||||
dbwOpts = append(dbwOpts, dbw.WithBeforeWrite(before))
|
||||
}
|
||||
if after != nil {
|
||||
dbwOpts = append(dbwOpts, dbw.WithAfterWrite(after))
|
||||
}
|
||||
if opts.withOnConflict != nil {
|
||||
c := &dbw.OnConflict{}
|
||||
switch target := opts.withOnConflict.Target.(type) {
|
||||
case Constraint:
|
||||
c.Target = dbw.Constraint(target)
|
||||
case Columns:
|
||||
c.Target = dbw.Columns(target)
|
||||
default:
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, fmt.Sprintf("not a supported target type: %T", target))
|
||||
}
|
||||
switch action := opts.withOnConflict.Action.(type) {
|
||||
case DoNothing:
|
||||
c.Action = dbw.DoNothing(bool(action))
|
||||
case UpdateAll:
|
||||
c.Action = dbw.UpdateAll(bool(action))
|
||||
case []ColumnValue:
|
||||
colVals := make([]dbw.ColumnValue, 0, len(action))
|
||||
for _, cv := range action {
|
||||
dbwColVal := dbw.ColumnValue{
|
||||
Column: cv.column,
|
||||
}
|
||||
switch cvVal := cv.value.(type) {
|
||||
case ExprValue:
|
||||
dbwColVal.Value = dbw.ExprValue{
|
||||
Sql: cvVal.sql,
|
||||
Vars: cvVal.vars,
|
||||
}
|
||||
case column:
|
||||
dbwColVal.Column = cvVal.name
|
||||
dbwColVal.Value = dbw.Column{
|
||||
Table: cvVal.table,
|
||||
Name: cvVal.name,
|
||||
}
|
||||
default:
|
||||
dbwColVal.Value = cv.value
|
||||
}
|
||||
colVals = append(colVals, dbwColVal)
|
||||
}
|
||||
c.Action = colVals
|
||||
default:
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, fmt.Sprintf("not a valid supported action: %T", action))
|
||||
}
|
||||
dbwOpts = append(dbwOpts, dbw.WithOnConflict(c))
|
||||
}
|
||||
if opts.withLookup {
|
||||
dbwOpts = append(dbwOpts, dbw.WithLookup(opts.withLookup))
|
||||
}
|
||||
if opts.WithLimit != 0 {
|
||||
dbwOpts = append(dbwOpts, dbw.WithLimit(opts.WithLimit))
|
||||
}
|
||||
if len(opts.WithFieldMaskPaths) > 0 {
|
||||
dbwOpts = append(dbwOpts, dbw.WithFieldMaskPaths(opts.WithFieldMaskPaths))
|
||||
}
|
||||
if len(opts.WithNullPaths) > 0 {
|
||||
dbwOpts = append(dbwOpts, dbw.WithNullPaths(opts.WithNullPaths))
|
||||
}
|
||||
if opts.WithVersion != nil {
|
||||
dbwOpts = append(dbwOpts, dbw.WithVersion(opts.WithVersion))
|
||||
}
|
||||
if opts.withSkipVetForWrite {
|
||||
dbwOpts = append(dbwOpts, dbw.WithSkipVetForWrite(opts.withSkipVetForWrite))
|
||||
}
|
||||
if opts.withWhereClause != "" {
|
||||
dbwOpts = append(dbwOpts, dbw.WithWhere(opts.withWhereClause, opts.withWhereClauseArgs...))
|
||||
}
|
||||
if opts.withOrder != "" {
|
||||
dbwOpts = append(dbwOpts, dbw.WithOrder(opts.withOrder))
|
||||
}
|
||||
if len(opts.withPrngValues) > 0 {
|
||||
dbwOpts = append(dbwOpts, dbw.WithPrngValues(opts.withPrngValues))
|
||||
}
|
||||
if opts.withGormFormatter != nil {
|
||||
dbwOpts = append(dbwOpts, dbw.WithLogger(opts.withGormFormatter))
|
||||
}
|
||||
if opts.withMaxOpenConnections > 0 {
|
||||
dbwOpts = append(dbwOpts, dbw.WithMaxOpenConnections(opts.withMaxOpenConnections))
|
||||
}
|
||||
if opts.withDebug {
|
||||
dbwOpts = append(dbwOpts, dbw.WithDebug(opts.withDebug))
|
||||
}
|
||||
if opts.withRowsAffected != nil {
|
||||
dbwOpts = append(dbwOpts, dbw.WithReturnRowsAffected(opts.withRowsAffected))
|
||||
}
|
||||
return dbwOpts, nil
|
||||
}
|
||||
|
||||
// Option - how Options are passed as arguments.
|
||||
type Option func(*Options)
|
||||
|
||||
|
||||
+112
-927
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,388 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"reflect"
|
||||
|
||||
"github.com/hashicorp/boundary/internal/errors"
|
||||
"github.com/hashicorp/boundary/internal/oplog"
|
||||
"github.com/hashicorp/boundary/internal/oplog/store"
|
||||
"github.com/hashicorp/go-dbw"
|
||||
wrapping "github.com/hashicorp/go-kms-wrapping"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
type (
|
||||
beforeWriteFn func(interface{}) error
|
||||
afterWriteFn func(interface{}, int) error
|
||||
)
|
||||
|
||||
func (rw *Db) generateOplogBeforeAfterOpts(ctx context.Context, i interface{}, opType OpType, opts Options) (beforeWriteFn, afterWriteFn, error) {
|
||||
const op = "db.generateOplogBeforeAfterOpts"
|
||||
withOplog := opts.withOplog
|
||||
if !withOplog && opts.newOplogMsg == nil && opts.newOplogMsgs == nil {
|
||||
return nil, nil, nil // nothing to do, so we're done
|
||||
}
|
||||
if withOplog && opts.newOplogMsg != nil {
|
||||
return nil, nil, errors.New(ctx, errors.InvalidParameter, op, "both WithOplog and NewOplogMsg options have been specified")
|
||||
}
|
||||
if opts.withOplog && opts.newOplogMsgs != nil {
|
||||
return nil, nil, errors.New(ctx, errors.InvalidParameter, op, "both WithOplog and NewOplogMsgs options have been specified")
|
||||
}
|
||||
if opts.newOplogMsg != nil && opts.newOplogMsgs != nil {
|
||||
return nil, nil, errors.New(ctx, errors.InvalidParameter, op, "both NewOplogMsg and NewOplogMsgs (plural) options have been specified")
|
||||
}
|
||||
|
||||
var isSlice bool
|
||||
var items []interface{}
|
||||
rv := reflect.ValueOf(i)
|
||||
if isSlice = rv.Kind() == reflect.Slice; isSlice {
|
||||
for i := 0; i < rv.Len(); i++ {
|
||||
items = append(items, rv.Index(i).Interface())
|
||||
}
|
||||
}
|
||||
if isSlice {
|
||||
switch opType {
|
||||
case CreateOp, DeleteOp, UpdateOp:
|
||||
return nil, nil, errors.New(ctx, errors.InvalidParameter, op, "Cannot use a slice on a single item operation")
|
||||
}
|
||||
}
|
||||
|
||||
// let's validate oplog options before we start writing to the database
|
||||
switch {
|
||||
case isSlice && withOplog:
|
||||
if _, err := validateOplogArgs(ctx, items[0], opts); err != nil {
|
||||
return nil, nil, errors.Wrap(ctx, err, op, errors.WithMsg("oplog validation failed"))
|
||||
}
|
||||
case withOplog:
|
||||
if _, err := validateOplogArgs(ctx, i, opts); err != nil {
|
||||
return nil, nil, errors.Wrap(ctx, err, op, errors.WithMsg("oplog validation failed"))
|
||||
}
|
||||
}
|
||||
|
||||
var onConflictDoNothing bool
|
||||
if opts.withOnConflict != nil {
|
||||
switch opts.withOnConflict.Action.(type) {
|
||||
case dbw.DoNothing:
|
||||
onConflictDoNothing = true
|
||||
}
|
||||
}
|
||||
|
||||
var beforeFn beforeWriteFn
|
||||
var afterFn afterWriteFn
|
||||
|
||||
var ticket *store.Ticket
|
||||
if opts.withOplog {
|
||||
beforeFn = func(interface{}) error {
|
||||
const op = "db.beforeFn"
|
||||
var err error
|
||||
switch isSlice {
|
||||
case true:
|
||||
ticket, err = rw.GetTicket(ctx, items[0])
|
||||
default:
|
||||
ticket, err = rw.GetTicket(ctx, i)
|
||||
}
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
switch {
|
||||
case withOplog && (opType == CreateOp || opType == UpdateOp || opType == DeleteOp):
|
||||
afterFn = func(i interface{}, rowsAffected int) error {
|
||||
const op = "db.afterFnSingleItem"
|
||||
switch {
|
||||
case onConflictDoNothing && rowsAffected == 0:
|
||||
default:
|
||||
if err := rw.addOplog(ctx, CreateOp, opts, ticket, i); err != nil {
|
||||
return errors.Wrap(ctx, err, op)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
case withOplog && (opType == CreateItemsOp || opType == DeleteItemsOp):
|
||||
afterFn = func(i interface{}, rowsAffected int) error {
|
||||
const op = "db.afterFnMultiItem"
|
||||
err := rw.addOplogForItems(ctx, opType, opts, ticket, i.([]interface{}))
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("returning oplog msgs failed"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
case opts.newOplogMsg != nil:
|
||||
if isSlice {
|
||||
return nil, nil, errors.New(ctx, errors.InvalidParameter, op, "new oplog msg (singular) is not a supported option")
|
||||
}
|
||||
afterFn = func(i interface{}, rowsAffected int) error {
|
||||
const op = "db.afterFnNewOplogMsg"
|
||||
switch {
|
||||
case onConflictDoNothing && rowsAffected == 0:
|
||||
default:
|
||||
msg, err := rw.newOplogMessage(ctx, CreateOp, i)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("returning oplog failed"))
|
||||
}
|
||||
*opts.newOplogMsg = *msg
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
case opts.newOplogMsgs != nil:
|
||||
afterFn = func(i interface{}, rowsAffected int) error {
|
||||
const op = "db.afterFnNewOplogMsgs"
|
||||
if rowsAffected > 0 {
|
||||
msgs, err := rw.oplogMsgsForItems(ctx, CreateOp, opts, items)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("returning oplog msgs failed"))
|
||||
}
|
||||
*opts.newOplogMsgs = append(*opts.newOplogMsgs, msgs...)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return beforeFn, afterFn, nil
|
||||
}
|
||||
|
||||
func validateOplogArgs(ctx context.Context, i interface{}, opts Options) (oplog.ReplayableMessage, error) {
|
||||
const op = "db.validateOplogArgs"
|
||||
oplogArgs := opts.oplogOpts
|
||||
if oplogArgs.wrapper == nil {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "missing wrapper", errors.WithoutEvent())
|
||||
}
|
||||
if len(oplogArgs.metadata) == 0 {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "missing metadata", errors.WithoutEvent())
|
||||
}
|
||||
replayable, ok := i.(oplog.ReplayableMessage)
|
||||
if !ok {
|
||||
return nil, errors.E(ctx, errors.WithOp(op), errors.WithMsg("not a replayable message"), errors.WithoutEvent())
|
||||
}
|
||||
return replayable, nil
|
||||
}
|
||||
|
||||
func (rw *Db) getTicketFor(ctx context.Context, aggregateName string) (*store.Ticket, error) {
|
||||
const op = "db.getTicketFor"
|
||||
if rw.underlying == nil {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, fmt.Sprintf("%s: underlying db missing", aggregateName), errors.WithoutEvent())
|
||||
}
|
||||
ticketer, err := oplog.NewTicketer(ctx, rw.underlying.wrapped, oplog.WithAggregateNames(true))
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithMsg(fmt.Sprintf("%s: unable to get Ticketer", aggregateName)), errors.WithoutEvent())
|
||||
}
|
||||
ticket, err := ticketer.GetTicket(ctx, aggregateName)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithMsg(fmt.Sprintf("%s: unable to get ticket", aggregateName)), errors.WithoutEvent())
|
||||
}
|
||||
return ticket, nil
|
||||
}
|
||||
|
||||
// GetTicket returns an oplog ticket for the aggregate root of "i" which can
|
||||
// be used to WriteOplogEntryWith for that aggregate root.
|
||||
func (rw *Db) GetTicket(ctx context.Context, i interface{}) (*store.Ticket, error) {
|
||||
const op = "db.GetTicket"
|
||||
if rw.underlying == nil {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "missing underlying db", errors.WithoutEvent())
|
||||
}
|
||||
if isNil(i) {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "missing interface", errors.WithoutEvent())
|
||||
}
|
||||
replayable, ok := i.(oplog.ReplayableMessage)
|
||||
if !ok {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "not a replayable message", errors.WithoutEvent())
|
||||
}
|
||||
return rw.getTicketFor(ctx, replayable.TableName())
|
||||
}
|
||||
|
||||
func (rw *Db) oplogMsgsForItems(ctx context.Context, opType OpType, opts Options, items []interface{}) ([]*oplog.Message, error) {
|
||||
const op = "db.oplogMsgsForItems"
|
||||
if len(items) == 0 {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "missing items", errors.WithoutEvent())
|
||||
}
|
||||
oplogMsgs := []*oplog.Message{}
|
||||
var foundType reflect.Type
|
||||
for i, item := range items {
|
||||
if i == 0 {
|
||||
foundType = reflect.TypeOf(item)
|
||||
}
|
||||
currentType := reflect.TypeOf(item)
|
||||
if foundType != currentType {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, fmt.Sprintf("items contains disparate types. item (%d) %s is not a %s", i, currentType, foundType), errors.WithoutEvent())
|
||||
}
|
||||
msg, err := rw.newOplogMessage(ctx, opType, item, WithFieldMaskPaths(opts.WithFieldMaskPaths), WithNullPaths(opts.WithNullPaths))
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithoutEvent())
|
||||
}
|
||||
oplogMsgs = append(oplogMsgs, msg)
|
||||
}
|
||||
return oplogMsgs, nil
|
||||
}
|
||||
|
||||
// addOplogForItems will add a multi-message oplog entry with one msg for each
|
||||
// item. Items must all be of the same type. Only CreateOp and DeleteOp are
|
||||
// currently supported operations.
|
||||
func (rw *Db) addOplogForItems(ctx context.Context, opType OpType, opts Options, ticket *store.Ticket, items []interface{}) error {
|
||||
const op = "db.addOplogForItems"
|
||||
oplogArgs := opts.oplogOpts
|
||||
if ticket == nil {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing ticket", errors.WithoutEvent())
|
||||
}
|
||||
if len(items) == 0 {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing items", errors.WithoutEvent())
|
||||
}
|
||||
if oplogArgs.metadata == nil {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing metadata", errors.WithoutEvent())
|
||||
}
|
||||
if oplogArgs.wrapper == nil {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing wrapper", errors.WithoutEvent())
|
||||
}
|
||||
|
||||
oplogMsgs, err := rw.oplogMsgsForItems(ctx, opType, opts, items)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op)
|
||||
}
|
||||
|
||||
replayable, err := validateOplogArgs(ctx, items[0], opts)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("oplog validation failed"), errors.WithoutEvent())
|
||||
}
|
||||
ticketer, err := oplog.NewTicketer(ctx, rw.underlying.wrapped, oplog.WithAggregateNames(true))
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get Ticketer"), errors.WithoutEvent())
|
||||
}
|
||||
entry, err := oplog.NewEntry(
|
||||
ctx,
|
||||
replayable.TableName(),
|
||||
oplogArgs.metadata,
|
||||
oplogArgs.wrapper,
|
||||
ticketer,
|
||||
)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to create oplog entry"), errors.WithoutEvent())
|
||||
}
|
||||
if err := entry.WriteEntryWith(
|
||||
ctx,
|
||||
&oplog.Writer{DB: rw.underlying.wrapped},
|
||||
ticket,
|
||||
oplogMsgs...,
|
||||
); err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to write oplog entry"), errors.WithoutEvent())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rw *Db) addOplog(ctx context.Context, opType OpType, opts Options, ticket *store.Ticket, i interface{}) error {
|
||||
const op = "db.addOplog"
|
||||
oplogArgs := opts.oplogOpts
|
||||
replayable, err := validateOplogArgs(ctx, i, opts)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithoutEvent())
|
||||
}
|
||||
if ticket == nil {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing ticket", errors.WithoutEvent())
|
||||
}
|
||||
ticketer, err := oplog.NewTicketer(ctx, rw.underlying.wrapped, oplog.WithAggregateNames(true))
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get Ticketer"), errors.WithoutEvent())
|
||||
}
|
||||
entry, err := oplog.NewEntry(
|
||||
ctx,
|
||||
replayable.TableName(),
|
||||
oplogArgs.metadata,
|
||||
oplogArgs.wrapper,
|
||||
ticketer,
|
||||
)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithoutEvent())
|
||||
}
|
||||
msg, err := rw.newOplogMessage(ctx, opType, i, WithFieldMaskPaths(opts.WithFieldMaskPaths), WithNullPaths(opts.WithNullPaths))
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithoutEvent())
|
||||
}
|
||||
err = entry.WriteEntryWith(
|
||||
ctx,
|
||||
&oplog.Writer{DB: rw.underlying.wrapped},
|
||||
ticket,
|
||||
msg,
|
||||
)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to write oplog entry"), errors.WithoutEvent())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// WriteOplogEntryWith will write an oplog entry with the msgs provided for
|
||||
// the ticket's aggregateName. No options are currently supported.
|
||||
func (rw *Db) WriteOplogEntryWith(ctx context.Context, wrapper wrapping.Wrapper, ticket *store.Ticket, metadata oplog.Metadata, msgs []*oplog.Message, _ ...Option) error {
|
||||
const op = "db.WriteOplogEntryWith"
|
||||
if wrapper == nil {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing wrapper")
|
||||
}
|
||||
if ticket == nil {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing ticket")
|
||||
}
|
||||
if len(msgs) == 0 {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing msgs")
|
||||
}
|
||||
if rw.underlying == nil {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing underlying db")
|
||||
}
|
||||
if len(metadata) == 0 {
|
||||
return errors.New(ctx, errors.InvalidParameter, op, "missing metadata")
|
||||
}
|
||||
ticketer, err := oplog.NewTicketer(ctx, rw.underlying.wrapped, oplog.WithAggregateNames(true))
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get Ticketer"))
|
||||
}
|
||||
|
||||
entry, err := oplog.NewEntry(
|
||||
ctx,
|
||||
ticket.Name,
|
||||
metadata,
|
||||
wrapper,
|
||||
ticketer,
|
||||
)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to create oplog entry"))
|
||||
}
|
||||
err = entry.WriteEntryWith(
|
||||
ctx,
|
||||
&oplog.Writer{DB: rw.underlying.wrapped},
|
||||
ticket,
|
||||
msgs...,
|
||||
)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to write oplog entry"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rw *Db) newOplogMessage(ctx context.Context, opType OpType, i interface{}, opt ...Option) (*oplog.Message, error) {
|
||||
const op = "db.newOplogMessage"
|
||||
opts := GetOpts(opt...)
|
||||
replayable, ok := i.(oplog.ReplayableMessage)
|
||||
if !ok {
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "not a replayable interface", errors.WithoutEvent())
|
||||
}
|
||||
msg := oplog.Message{
|
||||
Message: i.(proto.Message),
|
||||
TypeName: replayable.TableName(),
|
||||
}
|
||||
switch opType {
|
||||
case CreateOp:
|
||||
msg.OpType = oplog.OpType_OP_TYPE_CREATE
|
||||
case UpdateOp:
|
||||
msg.OpType = oplog.OpType_OP_TYPE_UPDATE
|
||||
msg.FieldMaskPaths = opts.WithFieldMaskPaths
|
||||
msg.SetToNullPaths = opts.WithNullPaths
|
||||
case DeleteOp:
|
||||
msg.OpType = oplog.OpType_OP_TYPE_DELETE
|
||||
case CreateItemsOp:
|
||||
msg.OpType = oplog.OpType_OP_TYPE_CREATE_ITEMS
|
||||
case DeleteItemsOp:
|
||||
msg.OpType = oplog.OpType_OP_TYPE_DELETE_ITEMS
|
||||
default:
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, fmt.Sprintf("operation type %v is not supported", opType), errors.WithoutEvent())
|
||||
}
|
||||
return &msg, nil
|
||||
}
|
||||
+718
-729
File diff suppressed because it is too large.
Load diff
+48
-5
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -14,14 +15,16 @@ import (
|
||||
"github.com/hashicorp/boundary/internal/oplog"
|
||||
"github.com/hashicorp/boundary/internal/oplog/store"
|
||||
"github.com/hashicorp/boundary/testing/dbtest"
|
||||
"github.com/hashicorp/go-dbw"
|
||||
wrapping "github.com/hashicorp/go-kms-wrapping"
|
||||
"github.com/hashicorp/go-kms-wrapping/wrappers/aead"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
// setup the tests (initialize the database one-time and intialized testDatabaseURL). Do not close the returned db.
|
||||
// setup the tests (initialize the database one-time and intialized
|
||||
// testDatabaseURL). Do not close the returned db. Supported options:
|
||||
// WithTestLogLevel, WithTestDatabaseUrl
|
||||
func TestSetup(t *testing.T, dialect string, opt ...TestOption) (*DB, string) {
|
||||
var cleanup func() error
|
||||
var url string
|
||||
@@ -55,7 +58,12 @@ func TestSetup(t *testing.T, dialect string, opt ...TestOption) (*DB, string) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
db.Logger.LogMode(logger.Error)
|
||||
switch {
|
||||
case opts.withLogLevel != DefaultTestLogLevel:
|
||||
db.wrapped.LogLevel(dbw.LogLevel(opts.withLogLevel))
|
||||
default:
|
||||
db.wrapped.LogLevel(dbw.Error)
|
||||
}
|
||||
t.Cleanup(func() {
|
||||
sqlDB, err := db.SqlDB(ctx)
|
||||
assert.NoError(t, err)
|
||||
@@ -97,6 +105,20 @@ func AssertPublicId(t *testing.T, prefix, actual string) {
|
||||
assert.Equalf(t, prefix, parts[0], "PublicId want prefix: %q, got: %q in %q", prefix, parts[0], actual)
|
||||
}
|
||||
|
||||
// TestDeleteWhere allows you to easily delete resources for testing purposes
|
||||
// including all the current resources.
|
||||
func TestDeleteWhere(t *testing.T, conn *DB, i interface{}, whereClause string, args ...interface{}) {
|
||||
t.Helper()
|
||||
require := require.New(t)
|
||||
ctx := context.Background()
|
||||
tabler, ok := i.(interface {
|
||||
TableName() string
|
||||
})
|
||||
require.True(ok)
|
||||
_, err := dbw.New(conn.wrapped).Exec(ctx, fmt.Sprintf(`delete from "%s" where %s`, tabler.TableName(), whereClause), []interface{}{args})
|
||||
require.NoError(err)
|
||||
}
|
||||
|
||||
// TestVerifyOplog will verify that there is an oplog entry that matches the provided resourceId.
|
||||
// By default it matches the provided resourceId against the `resource-public-id` tag. If the
|
||||
// WithResourcePrivateId option is provided, the lookup will use the `resource-private-id` tag.
|
||||
@@ -151,12 +173,12 @@ and create_time > NOW()::timestamp - (interval '1 second' * ?)
|
||||
}
|
||||
|
||||
var metadata store.Metadata
|
||||
if err := r.LookupWhere(context.Background(), &metadata, where, whereArgs...); err != nil {
|
||||
if err := r.LookupWhere(context.Background(), &metadata, where, whereArgs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var foundEntry oplog.Entry
|
||||
if err := r.LookupWhere(context.Background(), &foundEntry, "id = ?", metadata.EntryId); err != nil {
|
||||
if err := r.LookupWhere(context.Background(), &foundEntry, "id = ?", []interface{}{metadata.EntryId}); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
@@ -181,6 +203,7 @@ type testOptions struct {
|
||||
withTestDatabaseUrl string
|
||||
withResourcePrivateId bool
|
||||
withTemplate string
|
||||
withLogLevel TestLogLevel
|
||||
}
|
||||
|
||||
func getDefaultTestOptions() testOptions {
|
||||
@@ -229,6 +252,26 @@ func WithTemplate(template string) TestOption {
|
||||
}
|
||||
}
|
||||
|
||||
// TestLogLevel defines a test log level for the underlying db package (if applicable)
|
||||
type TestLogLevel int
|
||||
|
||||
const (
|
||||
// See WithTestLogLevel(...) test only option
|
||||
DefaultTestLogLevel TestLogLevel = iota
|
||||
SilentTestLogLevel
|
||||
ErrorTestLogLevel
|
||||
WarnTestLogLevel
|
||||
InfoTestLogLevel
|
||||
)
|
||||
|
||||
// WithTestLogLevel provides a way to specify a test log level for the
|
||||
// underlying database package (if applicable).
|
||||
func WithTestLogLevel(_ *testing.T, l TestLogLevel) TestOption {
|
||||
return func(o *testOptions) {
|
||||
o.withLogLevel = l
|
||||
}
|
||||
}
|
||||
|
||||
// TestCreateTables will create the test tables for the db pkg
|
||||
func TestCreateTables(t *testing.T, conn *DB) {
|
||||
t.Helper()
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"github.com/hashicorp/boundary/internal/oplog"
|
||||
"github.com/hashicorp/go-uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func Test_Utils(t *testing.T) {
|
||||
@@ -21,12 +22,12 @@ func Test_Utils(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestVerifyOplogEntry(t *testing.T) {
|
||||
db, _ := TestSetup(t, "postgres")
|
||||
d, _ := TestSetup(t, "postgres")
|
||||
assert := assert.New(t)
|
||||
TestCreateTables(t, db)
|
||||
TestCreateTables(t, d)
|
||||
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
rw := Db{underlying: db}
|
||||
rw := New(d)
|
||||
id, err := uuid.GenerateUUID()
|
||||
assert.NoError(err)
|
||||
user, err := db_test.NewTestUser()
|
||||
@@ -51,14 +52,14 @@ func TestVerifyOplogEntry(t *testing.T) {
|
||||
err = rw.LookupByPublicId(context.Background(), foundUser)
|
||||
assert.NoError(err)
|
||||
assert.Equal(foundUser.Id, user.Id)
|
||||
err = TestVerifyOplog(t, &rw, user.PublicId, WithOperation(oplog.OpType_OP_TYPE_CREATE), WithCreateNotBefore(5*time.Second))
|
||||
err = TestVerifyOplog(t, rw, user.PublicId, WithOperation(oplog.OpType_OP_TYPE_CREATE), WithCreateNotBefore(5*time.Second))
|
||||
assert.NoError(err)
|
||||
})
|
||||
t.Run("should-fail", func(t *testing.T) {
|
||||
rw := Db{underlying: db}
|
||||
rw := New(d)
|
||||
id, err := uuid.GenerateUUID()
|
||||
assert.NoError(err)
|
||||
err = TestVerifyOplog(t, &rw, id)
|
||||
err = TestVerifyOplog(t, rw, id)
|
||||
assert.Error(err)
|
||||
})
|
||||
}
|
||||
@@ -121,3 +122,21 @@ func TestWithCreateNotBefore(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_TestDeleteWhere(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
d, _ := TestSetup(t, "postgres")
|
||||
TestCreateTables(t, d)
|
||||
user, err := db_test.NewTestUser()
|
||||
assert.NoError(err)
|
||||
id, err := uuid.GenerateUUID()
|
||||
assert.NoError(err)
|
||||
user.Name = "foo-" + id
|
||||
rw := New(d)
|
||||
err = rw.Create(
|
||||
context.Background(),
|
||||
user,
|
||||
)
|
||||
require.NoError(err)
|
||||
TestDeleteWhere(t, d, user, "1 = ?", 1)
|
||||
}
|
||||
@@ -211,7 +211,7 @@ func Convert(e error) *Err {
|
||||
}
|
||||
switch pgxError.Code {
|
||||
case "42P01":
|
||||
return E(ctx, WithoutEvent(), WithCode(MissingTable), WithMsg(pgxError.Message)).(*Err)
|
||||
return E(ctx, WithoutEvent(), WithCode(MissingTable), WithMsg(pgxError.Message), WithWrap(e)).(*Err)
|
||||
case "42703":
|
||||
return E(ctx, WithoutEvent(), WithCode(ColumnNotFound), WithMsg(pgxError.Message)).(*Err)
|
||||
case "P0001":
|
||||
|
||||
@@ -518,6 +518,6 @@ func TestConvertError(t *testing.T) {
|
||||
e := errors.Convert(err)
|
||||
require.NotNil(e)
|
||||
assert.True(errors.Match(errors.T(errors.MissingTable), e))
|
||||
assert.Equal("db.Exec: relation \"not_a_defined_table\" does not exist: integrity violation: error #1004", e.Error())
|
||||
assert.Contains(err.Error(), "db.Exec: relation \"not_a_defined_table\" does not exist: integrity violation: error #1004")
|
||||
})
|
||||
}
|
||||
@@ -86,7 +86,7 @@ func (r *OrphanedHostCleanupJob) Run(ctx context.Context) error {
|
||||
}
|
||||
|
||||
// NextRunIn returns the default run frequency of the cleanup job.
|
||||
func (r *OrphanedHostCleanupJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *OrphanedHostCleanupJob) NextRunIn(_ context.Context) (time.Duration, error) {
|
||||
const op = "plugin.(OrphanedHostCleanupJob).NextRunIn"
|
||||
return orphanedHostCleanupJobRunInterval, nil
|
||||
}
|
||||
|
||||
@@ -115,9 +115,9 @@ func (r *SetSyncJob) Run(ctx context.Context) error {
|
||||
}
|
||||
|
||||
// NextRunIn queries the plugin host set db to determine when the next set should be synced.
|
||||
func (r *SetSyncJob) NextRunIn() (time.Duration, error) {
|
||||
func (r *SetSyncJob) NextRunIn(ctx context.Context) (time.Duration, error) {
|
||||
const op = "plugin.(SetSyncJob).NextRunIn"
|
||||
next, err := nextSync(r)
|
||||
next, err := nextSync(ctx, r)
|
||||
if err != nil {
|
||||
return setSyncJobRunInterval, errors.WrapDeprecated(err, op)
|
||||
}
|
||||
@@ -134,7 +134,7 @@ func (r *SetSyncJob) Description() string {
|
||||
return "Periodically syncs plugin based catalog hosts and host set memberships."
|
||||
}
|
||||
|
||||
func nextSync(j scheduler.Job) (time.Duration, error) {
|
||||
func nextSync(ctx context.Context, j scheduler.Job) (time.Duration, error) {
|
||||
const op = "plugin.nextSync"
|
||||
var query string
|
||||
var r db.Reader
|
||||
@@ -162,7 +162,7 @@ func nextSync(j scheduler.Job) (time.Duration, error) {
|
||||
ResyncIn time.Duration
|
||||
}
|
||||
var n NextResync
|
||||
err = r.ScanRows(rows, &n)
|
||||
err = r.ScanRows(ctx, rows, &n)
|
||||
if err != nil {
|
||||
return 0, errors.WrapDeprecated(err, op)
|
||||
}
|
||||
@@ -409,7 +409,7 @@ func (r *SetSyncJob) upsertAndCleanHosts(
|
||||
db.ExpBackoff{},
|
||||
func(r db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0)
|
||||
ticket, err := w.GetTicket(ret)
|
||||
ticket, err := w.GetTicket(ctx, ret)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -524,7 +524,7 @@ func (r *SetSyncJob) upsertAndCleanHosts(
|
||||
func(r db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0)
|
||||
|
||||
ticket, err := w.GetTicket(hs)
|
||||
ticket, err := w.GetTicket(ctx, hs)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -525,7 +525,7 @@ func TestSetSyncJob_NextRunIn(t *testing.T) {
|
||||
_, err = rw.Update(ctx, hostSet, fieldMaskPaths, setToNullPaths)
|
||||
require.NoError(err)
|
||||
|
||||
got, err := r.NextRunIn()
|
||||
got, err := r.NextRunIn(context.Background())
|
||||
require.NoError(err)
|
||||
// Round to five seconds to account for lost time between updating set and determining next run
|
||||
assert.Equal(tt.want.Round(5*time.Second), got.Round(5*time.Second))
|
||||
|
||||
@@ -106,7 +106,7 @@ func (r *Repository) CreateCatalog(ctx context.Context, c *HostCatalog, _ ...Opt
|
||||
db.ExpBackoff{},
|
||||
func(_ db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 3)
|
||||
ticket, err := w.GetTicket(c)
|
||||
ticket, err := w.GetTicket(ctx, c)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -341,7 +341,7 @@ func (r *Repository) UpdateCatalog(ctx context.Context, c *HostCatalog, version
|
||||
db.ExpBackoff{},
|
||||
func(_ db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 3)
|
||||
ticket, err := w.GetTicket(newCatalog)
|
||||
ticket, err := w.GetTicket(ctx, newCatalog)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ func TestRepository_CreateCatalog(t *testing.T) {
|
||||
assert.NoError(db.TestVerifyOplog(t, rw, got.PublicId, db.WithOperation(oplog.OpType_OP_TYPE_CREATE), db.WithCreateNotBefore(10*time.Second)))
|
||||
|
||||
cSecret := allocHostCatalogSecret()
|
||||
err = rw.LookupWhere(ctx, &cSecret, "catalog_id=?", got.GetPublicId())
|
||||
err = rw.LookupWhere(ctx, &cSecret, "catalog_id=?", []interface{}{got.GetPublicId()})
|
||||
if tt.wantSecret == nil {
|
||||
assert.Nil(got.Secrets)
|
||||
require.Error(t, err)
|
||||
@@ -608,7 +608,7 @@ func TestRepository_UpdateCatalog(t *testing.T) {
|
||||
require := require.New(t)
|
||||
|
||||
cSecret := allocHostCatalogSecret()
|
||||
err := dbRW.LookupWhere(ctx, &cSecret, "catalog_id=?", gotCatalog.GetPublicId())
|
||||
err := dbRW.LookupWhere(ctx, &cSecret, "catalog_id=?", []interface{}{gotCatalog.GetPublicId()})
|
||||
require.NoError(err)
|
||||
require.Empty(cSecret.Secret)
|
||||
require.NotEmpty(cSecret.CtSecret)
|
||||
@@ -629,7 +629,7 @@ func TestRepository_UpdateCatalog(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
cSecret := allocHostCatalogSecret()
|
||||
err := dbRW.LookupWhere(ctx, &cSecret, "catalog_id=?", gotCatalog.GetPublicId())
|
||||
err := dbRW.LookupWhere(ctx, &cSecret, "catalog_id=?", []interface{}{gotCatalog.GetPublicId()})
|
||||
assert.Error(err)
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
}
|
||||
@@ -1453,10 +1453,12 @@ func (j *testSyncJob) Status() scheduler.JobStatus {
|
||||
}
|
||||
}
|
||||
|
||||
func (j *testSyncJob) Run(_ context.Context) error { return nil }
|
||||
func (j *testSyncJob) NextRunIn() (time.Duration, error) { return setSyncJobRunInterval, nil }
|
||||
func (j *testSyncJob) Name() string { return setSyncJobName }
|
||||
func (j *testSyncJob) Description() string { return setSyncJobName }
|
||||
func (j *testSyncJob) Run(_ context.Context) error { return nil }
|
||||
func (j *testSyncJob) NextRunIn(_ context.Context) (time.Duration, error) {
|
||||
return setSyncJobRunInterval, nil
|
||||
}
|
||||
func (j *testSyncJob) Name() string { return setSyncJobName }
|
||||
func (j *testSyncJob) Description() string { return setSyncJobName }
|
||||
|
||||
func TestRepository_UpdateCatalog_SyncSets(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
@@ -117,7 +117,7 @@ func (r *Repository) CreateSet(ctx context.Context, scopeId string, s *HostSet,
|
||||
db.ExpBackoff{},
|
||||
func(_ db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, len(preferredEndpoints)+2)
|
||||
ticket, err := w.GetTicket(s)
|
||||
ticket, err := w.GetTicket(ctx, s)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -365,7 +365,7 @@ func (r *Repository) UpdateSet(ctx context.Context, scopeId string, s *HostSet,
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
returnedSet = newSet.clone()
|
||||
msgs := make([]*oplog.Message, 0, len(preferredEndpoints)+len(currentSet.PreferredEndpoints)+2)
|
||||
ticket, err := w.GetTicket(s)
|
||||
ticket, err := w.GetTicket(ctx, s)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ type hostInfo struct {
|
||||
func createNewHostMap(ctx context.Context,
|
||||
catalog *HostCatalog,
|
||||
phs []*plgpb.ListHostsResponseHost,
|
||||
currentHostMap map[string]*Host) (map[string]*hostInfo, error) {
|
||||
|
||||
currentHostMap map[string]*Host) (map[string]*hostInfo, error,
|
||||
) {
|
||||
const op = "plugin.createNewHostMap"
|
||||
newHostMap := make(map[string]*hostInfo, len(phs))
|
||||
|
||||
@@ -200,8 +200,8 @@ func getSetChanges(
|
||||
currentHostMap map[string]*Host,
|
||||
newHostMap map[string]*hostInfo) (
|
||||
setMembershipsToAdd, setMembershipsToRemove map[string][]string,
|
||||
allSetIds map[string]struct{}) {
|
||||
|
||||
allSetIds map[string]struct{},
|
||||
) {
|
||||
// First, find sets that hosts should be added to: hosts that are new or
|
||||
// have new set IDs returned.
|
||||
for newHostId, newHost := range newHostMap {
|
||||
|
||||
@@ -141,7 +141,7 @@ func TestPreferredEndpoint_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
}
|
||||
found := host.AllocPreferredEndpoint()
|
||||
require.NoError(rw.LookupWhere(ctx, found, "host_set_id = ? and priority = ?", tt.args.hostSetId, tt.args.priority))
|
||||
require.NoError(rw.LookupWhere(ctx, found, "host_set_id = ? and priority = ?", []interface{}{tt.args.hostSetId, tt.args.priority}))
|
||||
assert.Equal(got, found)
|
||||
}
|
||||
})
|
||||
@@ -220,7 +220,7 @@ func TestPreferredEndpoint_Delete(t *testing.T) {
|
||||
}
|
||||
require.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := host.AllocPreferredEndpoint()
|
||||
err = rw.LookupWhere(ctx, &found, "host_set_id = ?", set.PublicId)
|
||||
err = rw.LookupWhere(ctx, &found, "host_set_id = ?", []interface{}{set.PublicId})
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -9,15 +9,13 @@ import (
|
||||
"github.com/hashicorp/boundary/internal/iam"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
func TestHostSet_New(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
conn, _ := db.TestSetup(t, "postgres", db.WithTestLogLevel(t, db.SilentTestLogLevel))
|
||||
wrapper := db.TestWrapper(t)
|
||||
_, prj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
cat := testCatalog(t, conn, prj.PublicId)
|
||||
conn.Logger.LogMode(logger.Silent)
|
||||
type args struct {
|
||||
catalogId string
|
||||
opts []Option
|
||||
|
||||
@@ -9,16 +9,14 @@ import (
|
||||
"github.com/hashicorp/boundary/internal/iam"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
func TestHost_New(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
conn, _ := db.TestSetup(t, "postgres", db.WithTestLogLevel(t, db.SilentTestLogLevel))
|
||||
wrapper := db.TestWrapper(t)
|
||||
_, prj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
cat := testCatalog(t, conn, prj.PublicId)
|
||||
|
||||
conn.Logger.LogMode(logger.Silent)
|
||||
type args struct {
|
||||
catalogId string
|
||||
opts []Option
|
||||
|
||||
@@ -270,7 +270,7 @@ func TestStaticHostSetMember_ImmutableFields(t *testing.T) {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
orig := new.testCloneHostSetMember()
|
||||
err = w.LookupWhere(context.Background(), orig, "host_id = ? and set_id = ?", orig.HostId, orig.SetId)
|
||||
err = w.LookupWhere(context.Background(), orig, "host_id = ? and set_id = ?", []interface{}{orig.HostId, orig.SetId})
|
||||
require.NoError(err)
|
||||
|
||||
rowsUpdated, err := w.Update(context.Background(), tt.update, tt.fieldMask, nil, db.WithSkipVetForWrite(true))
|
||||
@@ -278,7 +278,7 @@ func TestStaticHostSetMember_ImmutableFields(t *testing.T) {
|
||||
assert.Equal(0, rowsUpdated)
|
||||
|
||||
after := new.testCloneHostSetMember()
|
||||
err = w.LookupWhere(context.Background(), after, "host_id = ? and set_id = ?", after.HostId, after.SetId)
|
||||
err = w.LookupWhere(context.Background(), after, "host_id = ? and set_id = ?", []interface{}{after.HostId, after.SetId})
|
||||
require.NoError(err)
|
||||
|
||||
assert.True(proto.Equal(orig, after))
|
||||
|
||||
@@ -109,7 +109,7 @@ func updateVersion(ctx context.Context, w db.Writer, wrapper wrapping.Wrapper, m
|
||||
msgs = append(msgs, setMsg)
|
||||
|
||||
// Write oplog
|
||||
ticket, err := w.GetTicket(set)
|
||||
ticket, err := w.GetTicket(ctx, set)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -356,7 +356,7 @@ func (r *Repository) changes(ctx context.Context, setId string, hostIds []string
|
||||
var changes []*change
|
||||
for rows.Next() {
|
||||
var chg change
|
||||
if err := r.reader.ScanRows(rows, &chg); err != nil {
|
||||
if err := r.reader.ScanRows(ctx, rows, &chg); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithMsg("scan row failed"))
|
||||
}
|
||||
changes = append(changes, &chg)
|
||||
|
||||
@@ -166,7 +166,7 @@ func Test_GroupMemberCreate(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Create: create failed: insert or update on table "iam_group_member_user" violates foreign key constraint`,
|
||||
wantErrMsg: `db.Create: insert or update on table "iam_group_member_user" violates foreign key constraint`,
|
||||
},
|
||||
{
|
||||
name: "bad-user-id",
|
||||
@@ -180,7 +180,7 @@ func Test_GroupMemberCreate(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Create: create failed: insert or update on table "iam_group_member_user" violates foreign key constraint`,
|
||||
wantErrMsg: `integrity violation: error #1003`,
|
||||
},
|
||||
{
|
||||
name: "missing-group-id",
|
||||
@@ -227,7 +227,7 @@ func Test_GroupMemberCreate(t *testing.T) {
|
||||
},
|
||||
wantDup: true,
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Create: create failed: duplicate key value violates unique constraint "iam_group_member_user_pkey"`,
|
||||
wantErrMsg: `db.Create: duplicate key value violates unique constraint "iam_group_member_user_pkey"`,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -251,7 +251,7 @@ func Test_GroupMemberCreate(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
|
||||
found := allocGroupMember()
|
||||
err = w.LookupWhere(context.Background(), &found, "group_id = ? and member_id = ?", gm.GroupId, gm.MemberId)
|
||||
err = w.LookupWhere(context.Background(), &found, "group_id = ? and member_id = ?", []interface{}{gm.GroupId, gm.MemberId})
|
||||
require.NoError(err)
|
||||
assert.Equal(gm, &found)
|
||||
})
|
||||
@@ -329,7 +329,7 @@ func Test_GroupMemberDelete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := allocGroupMember()
|
||||
err = rw.LookupWhere(context.Background(), &found, "group_id = ? and member_id = ?", tt.gm.GetGroupId(), tt.gm.GetMemberId())
|
||||
err = rw.LookupWhere(context.Background(), &found, "group_id = ? and member_id = ?", []interface{}{tt.gm.GetGroupId(), tt.gm.GetMemberId()})
|
||||
require.Error(err)
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
|
||||
@@ -169,7 +169,7 @@ func Test_GroupCreate(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(Group).VetForWrite: iam.validateScopeForWrite: scope is not found: search issue: error #1100",
|
||||
wantErrMsg: "iam.validateScopeForWrite: scope is not found: search issue: error #1100",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ func Test_GroupCreate(t *testing.T) {
|
||||
err := w.Create(context.Background(), g)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
assert.Equal(tt.wantErrMsg, err.Error())
|
||||
assert.Contains(err.Error(), tt.wantErrMsg)
|
||||
return
|
||||
}
|
||||
assert.NoError(err)
|
||||
@@ -246,7 +246,7 @@ func Test_GroupUpdate(t *testing.T) {
|
||||
ScopeId: proj.PublicId,
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Update: iam.(Group).VetForWrite: iam.validateScopeForWrite: not allowed to change a resource's scope: parameter violation: error #100",
|
||||
wantErrMsg: "db.Update: dbw.Update: error before write: iam.(Group).VetForWrite: iam.validateScopeForWrite: not allowed to change a resource's scope: parameter violation: error #100",
|
||||
},
|
||||
{
|
||||
name: "proj-scope-id-not-in-mask",
|
||||
|
||||
@@ -159,7 +159,7 @@ func TestManagedGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: create failed: insert or update on table \"iam_managed_group_role\" violates foreign key constraint \"iam_managed_group_role_role_id_fkey\"",
|
||||
wantErrMsg: "integrity violation: error #1003",
|
||||
},
|
||||
{
|
||||
name: "bad-principal-id",
|
||||
@@ -173,7 +173,7 @@ func TestManagedGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: create failed: insert or update on table \"iam_managed_group_role\" violates foreign key constraint \"iam_managed_group_role_principal_id_fkey\"",
|
||||
wantErrMsg: "integrity violation: error #1003",
|
||||
},
|
||||
{
|
||||
name: "missing-role-id",
|
||||
@@ -188,7 +188,7 @@ func TestManagedGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(ManagedGroupRole).VetForWrite: missing role id: parameter violation: error #100",
|
||||
wantErrMsg: "iam.(ManagedGroupRole).VetForWrite: missing role id: parameter violation: error #100",
|
||||
wantIsErr: errors.InvalidParameter,
|
||||
},
|
||||
{
|
||||
@@ -205,7 +205,7 @@ func TestManagedGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(ManagedGroupRole).VetForWrite: missing managed group id: parameter violation: error #100",
|
||||
wantErrMsg: "iam.(ManagedGroupRole).VetForWrite: missing managed group id: parameter violation: error #100",
|
||||
wantIsErr: errors.InvalidParameter,
|
||||
},
|
||||
{
|
||||
@@ -220,7 +220,7 @@ func TestManagedGroupRole_Create(t *testing.T) {
|
||||
},
|
||||
wantDup: true,
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Create: create failed: duplicate key value violates unique constraint`,
|
||||
wantErrMsg: `db.Create: duplicate key value violates unique constraint "iam_managed_group_role_pkey": unique constraint violation`,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -244,7 +244,7 @@ func TestManagedGroupRole_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
|
||||
found := iam.AllocManagedGroupRole()
|
||||
err = w.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", r.RoleId, r.PrincipalId)
|
||||
err = w.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", []interface{}{r.RoleId, r.PrincipalId})
|
||||
require.NoError(err)
|
||||
assert.Equal(r, &found)
|
||||
})
|
||||
@@ -358,7 +358,7 @@ func TestManagedGroupRole_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := iam.AllocManagedGroupRole()
|
||||
err = rw.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", tt.role.GetRoleId(), tt.role.GetPrincipalId())
|
||||
err = rw.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", []interface{}{tt.role.GetRoleId(), tt.role.GetPrincipalId()})
|
||||
require.Error(err)
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
|
||||
@@ -176,7 +176,7 @@ func TestUserRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: create failed: insert or update on table \"iam_user_role\" violates foreign key constraint \"iam_user_role_role_id_fkey\"",
|
||||
wantErrMsg: "integrity violation: error #1003",
|
||||
},
|
||||
{
|
||||
name: "bad-user-id",
|
||||
@@ -190,7 +190,7 @@ func TestUserRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: create failed: insert or update on table \"iam_user_role\" violates foreign key constraint \"iam_user_role_principal_id_fkey\"",
|
||||
wantErrMsg: "integrity violation: error #1003",
|
||||
},
|
||||
{
|
||||
name: "missing-role-id",
|
||||
@@ -206,7 +206,7 @@ func TestUserRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(UserRole).VetForWrite: missing role id: parameter violation: error #100",
|
||||
wantErrMsg: "iam.(UserRole).VetForWrite: missing role id: parameter violation: error #100",
|
||||
wantIsErr: errors.InvalidParameter,
|
||||
},
|
||||
{
|
||||
@@ -223,7 +223,7 @@ func TestUserRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(UserRole).VetForWrite: missing user id: parameter violation: error #100",
|
||||
wantErrMsg: "iam.(UserRole).VetForWrite: missing user id: parameter violation: error #100",
|
||||
wantIsErr: errors.InvalidParameter,
|
||||
},
|
||||
{
|
||||
@@ -239,7 +239,7 @@ func TestUserRole_Create(t *testing.T) {
|
||||
},
|
||||
wantDup: true,
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Create: create failed: duplicate key value violates unique constraint "iam_user_role_pkey"`,
|
||||
wantErrMsg: `db.Create: duplicate key value violates unique constraint "iam_user_role_pkey": unique constraint violation`,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ func TestUserRole_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
|
||||
found := allocUserRole()
|
||||
err = w.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", r.RoleId, r.PrincipalId)
|
||||
err = w.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", []interface{}{r.RoleId, r.PrincipalId})
|
||||
require.NoError(err)
|
||||
assert.Equal(r, &found)
|
||||
})
|
||||
@@ -341,7 +341,7 @@ func TestUserRole_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := allocUserRole()
|
||||
err = rw.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", tt.role.GetRoleId(), tt.role.GetPrincipalId())
|
||||
err = rw.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", []interface{}{tt.role.GetRoleId(), tt.role.GetPrincipalId()})
|
||||
require.Error(err)
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
@@ -537,7 +537,7 @@ func TestGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: create failed: insert or update on table \"iam_group_role\" violates foreign key constraint \"iam_group_role_role_id_fkey\"",
|
||||
wantErrMsg: "integrity violation: error #1003",
|
||||
},
|
||||
{
|
||||
name: "bad-user-id",
|
||||
@@ -551,7 +551,7 @@ func TestGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: create failed: insert or update on table \"iam_group_role\" violates foreign key constraint \"iam_group_role_principal_id_fkey\"",
|
||||
wantErrMsg: "integrity violation: error #1003",
|
||||
},
|
||||
{
|
||||
name: "missing-role-id",
|
||||
@@ -567,7 +567,7 @@ func TestGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(GroupRole).VetForWrite: missing role id: parameter violation: error #100",
|
||||
wantErrMsg: "parameter violation: error #100",
|
||||
wantIsErr: errors.InvalidParameter,
|
||||
},
|
||||
{
|
||||
@@ -584,7 +584,7 @@ func TestGroupRole_Create(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(GroupRole).VetForWrite: missing group id: parameter violation: error #100",
|
||||
wantErrMsg: "parameter violation: error #100",
|
||||
wantIsErr: errors.InvalidParameter,
|
||||
},
|
||||
{
|
||||
@@ -600,7 +600,7 @@ func TestGroupRole_Create(t *testing.T) {
|
||||
},
|
||||
wantDup: true,
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Create: create failed: duplicate key value violates unique constraint`,
|
||||
wantErrMsg: `unique constraint violation: integrity violation: error #1002`,
|
||||
},
|
||||
{
|
||||
name: "dup-at-proj",
|
||||
@@ -615,7 +615,7 @@ func TestGroupRole_Create(t *testing.T) {
|
||||
},
|
||||
wantDup: true,
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Create: create failed: duplicate key value violates unique constraint`,
|
||||
wantErrMsg: `unique constraint violation: integrity violation: error #1002`,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -639,7 +639,7 @@ func TestGroupRole_Create(t *testing.T) {
|
||||
assert.NoError(err)
|
||||
|
||||
found := allocGroupRole()
|
||||
err = w.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", r.RoleId, r.PrincipalId)
|
||||
err = w.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", []interface{}{r.RoleId, r.PrincipalId})
|
||||
require.NoError(err)
|
||||
assert.Equal(r, &found)
|
||||
})
|
||||
@@ -722,7 +722,7 @@ func TestGroupRole_Delete(t *testing.T) {
|
||||
}
|
||||
assert.Equal(tt.wantRowsDeleted, deletedRows)
|
||||
found := allocGroupRole()
|
||||
err = rw.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", tt.role.GetRoleId(), tt.role.GetPrincipalId())
|
||||
err = rw.LookupWhere(context.Background(), &found, "role_id = ? and principal_id = ?", []interface{}{tt.role.GetRoleId(), tt.role.GetPrincipalId()})
|
||||
require.Error(err)
|
||||
assert.True(errors.IsNotFoundError(err))
|
||||
})
|
||||
|
||||
@@ -240,7 +240,7 @@ func (r *Repository) AddGroupMembers(ctx context.Context, groupId string, groupV
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
groupTicket, err := w.GetTicket(&group)
|
||||
groupTicket, err := w.GetTicket(ctx, &group)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -333,7 +333,7 @@ func (r *Repository) DeleteGroupMembers(ctx context.Context, groupId string, gro
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
groupTicket, err := w.GetTicket(&group)
|
||||
groupTicket, err := w.GetTicket(ctx, &group)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -438,7 +438,7 @@ func (r *Repository) SetGroupMembers(ctx context.Context, groupId string, groupV
|
||||
// we need a group, which won't be redeemed until all the other
|
||||
// writes are successful. We can't just use a single ticket because
|
||||
// we need to write oplog entries for deletes and adds
|
||||
groupTicket, err := w.GetTicket(&group)
|
||||
groupTicket, err := w.GetTicket(ctx, &group)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -526,7 +526,7 @@ func groupMemberChanges(ctx context.Context, reader db.Reader, groupId string, u
|
||||
var changes []*change
|
||||
for rows.Next() {
|
||||
var chg change
|
||||
if err := reader.ScanRows(rows, &chg); err != nil {
|
||||
if err := reader.ScanRows(ctx, rows, &chg); err != nil {
|
||||
return nil, nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
changes = append(changes, &chg)
|
||||
|
||||
@@ -239,7 +239,7 @@ func TestRepository_UpdateGroup(t *testing.T) {
|
||||
newScopeId: org.PublicId,
|
||||
wantErr: true,
|
||||
wantRowsUpdate: 0,
|
||||
wantErrMsg: "db.DoTx: iam.(Repository).UpdateGroup: iam.(Repository).update: db.DoTx: iam.(Repository).update: db.Update: db.lookupAfterWrite: db.LookupById: record not found, search issue: error #1100",
|
||||
wantErrMsg: "record not found, search issue: error #1100",
|
||||
wantIsError: errors.RecordNotFound,
|
||||
},
|
||||
{
|
||||
@@ -627,7 +627,7 @@ func TestRepository_ListGroups(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocGroup()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := allocGroup(); ; return &i }(), "1=1")
|
||||
testGroups := []*Group{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
testGroups = append(testGroups, TestGroup(t, conn, tt.createScopeId))
|
||||
@@ -651,7 +651,7 @@ func TestRepository_ListGroups_Multiple_Scopes(t *testing.T) {
|
||||
repo := TestRepo(t, conn, wrapper)
|
||||
org, proj := TestScopes(t, repo)
|
||||
|
||||
require.NoError(t, conn.Where("1=1").Delete(allocGroup()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { g := allocGroup(); return &g }(), "1=1")
|
||||
|
||||
const numPerScope = 10
|
||||
var total int
|
||||
@@ -733,7 +733,7 @@ func TestRepository_ListMembers(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocGroupMember()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := allocGroupMember(); ; return &i }(), "1=1")
|
||||
gm := []*GroupMemberUser{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
u := TestUser(t, repo, org.PublicId)
|
||||
@@ -851,7 +851,9 @@ func TestRepository_AddGroupMembers(t *testing.T) {
|
||||
groupVersion += 1
|
||||
version = groupVersion
|
||||
}
|
||||
require.NoError(conn.Where("1=1").Delete(allocGroupMember()).Error)
|
||||
gm := allocGroupMember()
|
||||
db.TestDeleteWhere(t, conn, &gm, "1=1")
|
||||
|
||||
got, err := repo.AddGroupMembers(context.Background(), tt.args.groupId, version, tt.args.userIds, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
|
||||
@@ -77,7 +77,7 @@ func (r *Repository) AddPrincipalRoles(ctx context.Context, roleId string, roleV
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
roleTicket, err := w.GetTicket(&role)
|
||||
roleTicket, err := w.GetTicket(ctx, &role)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -196,7 +196,7 @@ func (r *Repository) SetPrincipalRoles(ctx context.Context, roleId string, roleV
|
||||
// we need a roleTicket, which won't be redeemed until all the other
|
||||
// writes are successful. We can't just use a single ticket because
|
||||
// we need to write oplog entries for deletes and adds
|
||||
roleTicket, err := w.GetTicket(&role)
|
||||
roleTicket, err := w.GetTicket(ctx, &role)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket for role"))
|
||||
}
|
||||
@@ -376,7 +376,7 @@ func (r *Repository) DeletePrincipalRoles(ctx context.Context, roleId string, ro
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
roleTicket, err := w.GetTicket(&role)
|
||||
roleTicket, err := w.GetTicket(ctx, &role)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -125,8 +125,8 @@ func TestRepository_AddPrincipalRoles(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocUserRole()).Error)
|
||||
require.NoError(conn.Where("1=1").Delete(allocGroupRole()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { r := allocUserRole(); return &r }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { g := allocGroupRole(); return &g }(), "1=1")
|
||||
orgs, projects := createScopesFn()
|
||||
var userIds, groupIds []string
|
||||
|
||||
@@ -264,7 +264,7 @@ func TestRepository_ListPrincipalRoles(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRole()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { r := allocRole(); return &r }(), "1=1")
|
||||
role := TestRole(t, conn, tt.createScopeId)
|
||||
userRoles := make([]string, 0, tt.createCnt)
|
||||
groupRoles := make([]string, 0, tt.createCnt)
|
||||
|
||||
@@ -52,7 +52,7 @@ func (r *Repository) AddRoleGrants(ctx context.Context, roleId string, roleVersi
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
roleTicket, err := w.GetTicket(&role)
|
||||
roleTicket, err := w.GetTicket(ctx, &role)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -133,7 +133,7 @@ func (r *Repository) DeleteRoleGrants(ctx context.Context, roleId string, roleVe
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
roleTicket, err := w.GetTicket(&role)
|
||||
roleTicket, err := w.GetTicket(ctx, &role)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -307,7 +307,7 @@ func (r *Repository) SetRoleGrants(ctx context.Context, roleId string, roleVersi
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
roleTicket, err := w.GetTicket(&role)
|
||||
roleTicket, err := w.GetTicket(ctx, &role)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -483,7 +483,7 @@ select role_id as role_id, role_scope as scope_id, role_grant as grant from fina
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var g perms.GrantTuple
|
||||
if err := r.reader.ScanRows(rows, &g); err != nil {
|
||||
if err := r.reader.ScanRows(ctx, rows, &g); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
grants = append(grants, g)
|
||||
|
||||
@@ -82,7 +82,7 @@ func TestRepository_AddRoleGrants(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRoleGrant()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { rg := allocRoleGrant(); return &rg }(), "1=1")
|
||||
got, err := repo.AddRoleGrants(context.Background(), tt.args.roleId, tt.args.roleVersion, tt.args.grants, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -190,7 +190,7 @@ func TestRepository_ListRoleGrants(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRole()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { r := allocRole(); return &r }(), "1=1")
|
||||
role := TestRole(t, conn, tt.createScopeId)
|
||||
roleGrants := make([]string, 0, tt.createCnt)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
@@ -333,7 +333,7 @@ func TestRepository_DeleteRoleGrants(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRoleGrant()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { rg := allocRoleGrant(); return &rg }(), "1=1")
|
||||
grants := make([]*RoleGrant, 0, tt.args.createCnt)
|
||||
grantStrings := make([]string, 0, tt.args.createCnt)
|
||||
for i := 0; i < tt.args.createCnt; i++ {
|
||||
@@ -408,7 +408,7 @@ func TestRepository_SetRoleGrants_Randomize(t *testing.T) {
|
||||
repo := TestRepo(t, conn, wrapper)
|
||||
org, _ := TestScopes(t, repo)
|
||||
role := TestRole(t, conn, org.PublicId)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRoleGrant()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := allocRoleGrant(); return &i }(), "1=1")
|
||||
|
||||
type roleGrantWrapper struct {
|
||||
grantString string
|
||||
@@ -550,7 +550,8 @@ func TestRepository_SetRoleGrants_Parameters(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRoleGrant()).Error)
|
||||
rg := allocRoleGrant()
|
||||
db.TestDeleteWhere(t, conn, &rg, "1=1")
|
||||
got, gotAffectedRows, err := repo.SetRoleGrants(context.Background(), tt.args.roleId, tt.args.roleVersion, tt.args.grants, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
|
||||
@@ -240,7 +240,7 @@ func TestRepository_UpdateRole(t *testing.T) {
|
||||
newScopeId: org.PublicId,
|
||||
wantErr: true,
|
||||
wantRowsUpdate: 0,
|
||||
wantErrMsg: "db.DoTx: iam.(Repository).UpdateRole: iam.(Repository).update: db.DoTx: iam.(Repository).update: db.Update: db.lookupAfterWrite: db.LookupById: record not found, search issue: error #1100",
|
||||
wantErrMsg: "error #1100",
|
||||
wantIsError: errors.RecordNotFound,
|
||||
},
|
||||
{
|
||||
@@ -625,7 +625,7 @@ func TestRepository_ListRoles(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRole()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { r := allocRole(); return &r }(), "1=1")
|
||||
testRoles := []*Role{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
testRoles = append(testRoles, TestRole(t, conn, tt.createScopeId))
|
||||
@@ -649,7 +649,7 @@ func TestRepository_ListRoles_Multiple_Scopes(t *testing.T) {
|
||||
repo := TestRepo(t, conn, wrapper)
|
||||
org, proj := TestScopes(t, repo)
|
||||
|
||||
require.NoError(t, conn.Where("1=1").Delete(allocRole()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := allocRole(); return &i }(), "1=1")
|
||||
|
||||
const numPerScope = 10
|
||||
var total int
|
||||
|
||||
@@ -204,7 +204,7 @@ func (r *Repository) CreateScope(ctx context.Context, s *Scope, userId string, o
|
||||
adminRole = adminRoleRaw.(*Role)
|
||||
|
||||
msgs := make([]*oplog.Message, 0, 3)
|
||||
roleTicket, err := w.GetTicket(adminRole)
|
||||
roleTicket, err := w.GetTicket(ctx, adminRole)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -267,7 +267,7 @@ func (r *Repository) CreateScope(ctx context.Context, s *Scope, userId string, o
|
||||
defaultRole = defaultRoleRaw.(*Role)
|
||||
|
||||
msgs := make([]*oplog.Message, 0, 6)
|
||||
roleTicket, err := w.GetTicket(defaultRole)
|
||||
roleTicket, err := w.GetTicket(ctx, defaultRole)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
|
||||
@@ -448,7 +448,7 @@ func TestRepository_UpdateScope(t *testing.T) {
|
||||
for _, f := range tt.wantNullFields {
|
||||
where = fmt.Sprintf("%s and %s is null", where, f)
|
||||
}
|
||||
err = rw.LookupWhere(context.Background(), &foundScope, where, org.PublicId)
|
||||
err = rw.LookupWhere(context.Background(), &foundScope, where, []interface{}{org.PublicId})
|
||||
require.NoError(err)
|
||||
assert.Equal(org.PublicId, foundScope.PublicId)
|
||||
assert.Equal(tt.wantName, foundScope.Name)
|
||||
@@ -520,7 +520,8 @@ func Test_Repository_ListScopes(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("type = 'org'").Delete(AllocScope()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := AllocScope(); ; return &i }(), "type = 'org'")
|
||||
|
||||
testOrgs := []*Scope{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
testOrgs = append(testOrgs, testOrg(t, repo, "", ""))
|
||||
@@ -543,7 +544,7 @@ func TestRepository_ListScopes_Multiple_Scopes(t *testing.T) {
|
||||
wrapper := db.TestWrapper(t)
|
||||
repo := TestRepo(t, conn, wrapper)
|
||||
|
||||
require.NoError(t, conn.Where("public_id != 'global'").Delete(AllocScope()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := AllocScope(); return &i }(), "public_id != 'global'")
|
||||
|
||||
const numPerScope = 10
|
||||
var total int
|
||||
|
||||
@@ -104,6 +104,7 @@ func TestNewRepository(t *testing.T) {
|
||||
func Test_Repository_create(t *testing.T) {
|
||||
t.Parallel()
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
repo := TestRepo(t, conn, wrapper)
|
||||
t.Run("valid-scope", func(t *testing.T) {
|
||||
@@ -125,11 +126,11 @@ func Test_Repository_create(t *testing.T) {
|
||||
assert.True(proto.Equal(foundScope, retScope.(*Scope)))
|
||||
|
||||
var metadata store.Metadata
|
||||
err = conn.Where("key = ? and value = ?", "resource-public-id", s.PublicId).First(&metadata).Error
|
||||
err = rw.LookupWhere(context.Background(), &metadata, "key = ? and value = ?", []interface{}{"resource-public-id", s.PublicId})
|
||||
require.NoError(err)
|
||||
|
||||
var foundEntry oplog.Entry
|
||||
err = conn.Where("id = ?", metadata.EntryId).First(&foundEntry).Error
|
||||
err = rw.LookupWhere(context.Background(), &foundEntry, "id = ?", []interface{}{metadata.EntryId})
|
||||
assert.NoError(err)
|
||||
})
|
||||
t.Run("nil-resource", func(t *testing.T) {
|
||||
@@ -159,7 +160,8 @@ func Test_Repository_delete(t *testing.T) {
|
||||
err = db.TestVerifyOplog(t, rw, s.PublicId, db.WithOperation(oplog.OpType_OP_TYPE_DELETE), db.WithCreateNotBefore(5*time.Second))
|
||||
require.NoError(err)
|
||||
})
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
rk := kms.AllocRootKey()
|
||||
db.TestDeleteWhere(t, conn, &rk, "1=1")
|
||||
t.Run("nil-resource", func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
|
||||
@@ -243,7 +245,7 @@ func TestRepository_update(t *testing.T) {
|
||||
},
|
||||
wantUpdatedRows: 0,
|
||||
wantErr: true,
|
||||
wantErrMsg: "iam.(Repository).update: db.DoTx: iam.(Repository).update: db.Update: getting update fields failed: common.UpdateFields: fieldMashPaths and setToNullPaths cannot intersect: parameter violation: error #100",
|
||||
wantErrMsg: "fieldMashPaths and setToNullPaths cannot intersect: invalid parameter",
|
||||
},
|
||||
{
|
||||
name: "only-field-masks",
|
||||
@@ -299,7 +301,7 @@ func TestRepository_update(t *testing.T) {
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
assert.Equal(tt.wantUpdatedRows, rowsUpdated)
|
||||
assert.Equal(tt.wantErrMsg, err.Error())
|
||||
assert.Contains(err.Error(), tt.wantErrMsg)
|
||||
return
|
||||
}
|
||||
require.NoError(err)
|
||||
@@ -313,7 +315,7 @@ func TestRepository_update(t *testing.T) {
|
||||
for _, f := range tt.args.setToNullPaths {
|
||||
where = fmt.Sprintf("%s and %s is null", where, f)
|
||||
}
|
||||
err = rw.LookupWhere(context.Background(), &foundResource, where, tt.args.resource.GetPublicId())
|
||||
err = rw.LookupWhere(context.Background(), &foundResource, where, []interface{}{tt.args.resource.GetPublicId()})
|
||||
require.NoError(err)
|
||||
assert.Equal(tt.args.resource.GetPublicId(), foundResource.GetPublicId())
|
||||
assert.Equal(tt.wantName, foundResource.GetName())
|
||||
|
||||
@@ -274,7 +274,7 @@ func (r *Repository) LookupUserWithLogin(ctx context.Context, accountId string,
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
msgs := make([]*oplog.Message, 0, 2)
|
||||
ticket, err := w.GetTicket(&acct)
|
||||
ticket, err := w.GetTicket(ctx, &acct)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op)
|
||||
}
|
||||
@@ -354,7 +354,7 @@ func (r *Repository) getUserWithAccount(ctx context.Context, withAccountId strin
|
||||
defer rows.Close()
|
||||
u := AllocUser()
|
||||
if rows.Next() {
|
||||
err = r.reader.ScanRows(rows, &u)
|
||||
err = r.reader.ScanRows(ctx, rows, &u)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithMsg(fmt.Sprintf("unable to scan rows for account %s", withAccountId)))
|
||||
}
|
||||
@@ -419,7 +419,7 @@ func (r *Repository) AddUserAccounts(ctx context.Context, userId string, userVer
|
||||
db.StdRetryCnt,
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
userTicket, err := w.GetTicket(user)
|
||||
userTicket, err := w.GetTicket(ctx, user)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -498,7 +498,7 @@ func (r *Repository) DeleteUserAccounts(ctx context.Context, userId string, user
|
||||
db.StdRetryCnt,
|
||||
db.ExpBackoff{},
|
||||
func(reader db.Reader, w db.Writer) error {
|
||||
userTicket, err := w.GetTicket(user)
|
||||
userTicket, err := w.GetTicket(ctx, user)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -594,7 +594,7 @@ func (r *Repository) SetUserAccounts(ctx context.Context, userId string, userVer
|
||||
}
|
||||
return nil
|
||||
}
|
||||
userTicket, err := w.GetTicket(user)
|
||||
userTicket, err := w.GetTicket(ctx, user)
|
||||
if err != nil {
|
||||
return errors.Wrap(ctx, err, op, errors.WithMsg("unable to get ticket"))
|
||||
}
|
||||
@@ -814,7 +814,7 @@ func associationChanges(ctx context.Context, reader db.Reader, userId string, ac
|
||||
var changes []*change
|
||||
for rows.Next() {
|
||||
var chg change
|
||||
if err := reader.ScanRows(rows, &chg); err != nil {
|
||||
if err := reader.ScanRows(ctx, rows, &chg); err != nil {
|
||||
return nil, nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
changes = append(changes, &chg)
|
||||
|
||||
@@ -260,7 +260,7 @@ func TestRepository_UpdateUser(t *testing.T) {
|
||||
},
|
||||
wantErr: true,
|
||||
wantRowsUpdate: 0,
|
||||
wantErrMsg: "iam.(Repository).UpdateUser: db.Update: db.lookupAfterWrite: db.LookupById: record not found, search issue: error #1100",
|
||||
wantErrMsg: "iam.(Repository).UpdateUser: db.Update: record not found, search issue: error #1100",
|
||||
wantIsErr: errors.RecordNotFound,
|
||||
},
|
||||
{
|
||||
@@ -648,7 +648,7 @@ func TestRepository_ListUsers(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("public_id != 'u_anon' and public_id != 'u_auth' and public_id != 'u_recovery'").Delete(iam.AllocUser()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { u := iam.AllocUser(); return &u }(), "public_id != 'u_anon' and public_id != 'u_auth' and public_id != 'u_recovery'")
|
||||
testUsers := []*iam.User{}
|
||||
wantUserInfo := map[string]userInfo{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
@@ -693,7 +693,7 @@ func TestRepository_ListUsers_Multiple_Scopes(t *testing.T) {
|
||||
repo := iam.TestRepo(t, conn, wrapper)
|
||||
org, _ := iam.TestScopes(t, repo)
|
||||
|
||||
require.NoError(t, conn.Where("public_id != 'u_anon' and public_id != 'u_auth' and public_id != 'u_recovery'").Delete(iam.AllocUser()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := iam.AllocUser(); return &i }(), "public_id != 'u_anon' and public_id != 'u_auth' and public_id != 'u_recovery'")
|
||||
|
||||
const numPerScope = 10
|
||||
var total int = 3 // anon, auth, recovery
|
||||
@@ -902,7 +902,7 @@ func TestRepository_AssociateAccounts(t *testing.T) {
|
||||
user := iam.TestUser(t, repo, org.PublicId)
|
||||
|
||||
createAccountsFn := func(prefix string) []string {
|
||||
require.NoError(t, conn.Where("iam_user_id = ?", user.PublicId).Delete(allocAuthAccount()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := allocAuthAccount(); return &i }(), "iam_user_id = ?", user.PublicId)
|
||||
results := []string{}
|
||||
for i := 0; i < 5; i++ {
|
||||
authMethod := oidc.TestAuthMethod(t, conn, databaseWrapper, org.PublicId, oidc.ActivePrivateState, fmt.Sprintf("%s-alice-rp-%d", prefix, i), "fido",
|
||||
@@ -1072,7 +1072,7 @@ func TestRepository_DisassociateAccounts(t *testing.T) {
|
||||
user := iam.TestUser(t, repo, org.PublicId)
|
||||
|
||||
createAccountsFn := func(prefix string) []string {
|
||||
require.NoError(t, conn.Where("iam_user_id = ?", user.PublicId).Delete(allocAuthAccount()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { a := allocAuthAccount(); return &a }(), "iam_user_id = ?", user.PublicId)
|
||||
results := []string{}
|
||||
for i := 0; i < 1; i++ {
|
||||
authMethod := oidc.TestAuthMethod(t, conn, databaseWrapper, org.PublicId, oidc.ActivePrivateState, fmt.Sprintf("%s-alice-rp-%d", prefix, i), "fido",
|
||||
@@ -1220,7 +1220,7 @@ func TestRepository_SetAssociatedAccounts(t *testing.T) {
|
||||
user := iam.TestUser(t, repo, org.PublicId)
|
||||
|
||||
createAccountsFn := func(prefix string) []string {
|
||||
require.NoError(t, conn.Where("iam_user_id = ?", user.PublicId).Delete(allocAuthAccount()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := allocAuthAccount(); return &i }(), "iam_user_id = ?", user.PublicId)
|
||||
results := []string{}
|
||||
for i := 0; i < 1; i++ {
|
||||
authMethod := oidc.TestAuthMethod(t, conn, databaseWrapper, org.PublicId, oidc.ActivePrivateState, fmt.Sprintf("%s-alice-rp-%d", prefix, i), "fido",
|
||||
@@ -1382,7 +1382,7 @@ func TestRepository_SetAssociatedAccounts(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("iam_user_id = ?", user.PublicId).Delete(allocAuthAccount()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { a := allocAuthAccount(); return &a }(), "iam_user_id = ?", user.PublicId)
|
||||
|
||||
accountIds, changes := tt.args.accountIdsFn()
|
||||
sort.Strings(accountIds)
|
||||
|
||||
@@ -69,7 +69,7 @@ func LookupScope(ctx context.Context, reader db.Reader, resource ResourceWithSco
|
||||
}
|
||||
}
|
||||
var p Scope
|
||||
if err := reader.LookupWhere(ctx, &p, "public_id = ?", resource.GetScopeId()); err != nil {
|
||||
if err := reader.LookupWhere(ctx, &p, "public_id = ?", []interface{}{resource.GetScopeId()}); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op)
|
||||
}
|
||||
return &p, nil
|
||||
|
||||
@@ -86,7 +86,7 @@ func TestRoleGrant_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRoleGrant()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { a := allocRoleGrant(); return &a }(), "1=1")
|
||||
got, err := NewRoleGrant(tt.args.roleId, tt.args.grant, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -191,7 +191,8 @@ func TestRoleGrant_Delete(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(allocRoleGrant()).Error)
|
||||
r := allocRoleGrant()
|
||||
db.TestDeleteWhere(t, conn, &r, "1=1")
|
||||
rg, err := NewRoleGrant(projRole.PublicId, "id=a_bcde;actions=read,update")
|
||||
require.NoError(err)
|
||||
require.NoError(rw.Create(context.Background(), rg))
|
||||
|
||||
@@ -169,7 +169,7 @@ func Test_RoleCreate(t *testing.T) {
|
||||
}(),
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Create: iam.(Role).VetForWrite: iam.validateScopeForWrite: scope is not found: search issue: error #1100",
|
||||
wantErrMsg: "iam.validateScopeForWrite: scope is not found: search issue: error #1100",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ func Test_RoleCreate(t *testing.T) {
|
||||
err := w.Create(context.Background(), r)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
assert.Equal(tt.wantErrMsg, err.Error())
|
||||
assert.Contains(err.Error(), tt.wantErrMsg)
|
||||
return
|
||||
}
|
||||
assert.NoError(err)
|
||||
@@ -251,7 +251,7 @@ func Test_RoleUpdate(t *testing.T) {
|
||||
scopeIdOverride: org.PublicId,
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Update: iam.(Role).VetForWrite: iam.validateScopeForWrite: not allowed to change a resource's scope: parameter violation: error #100",
|
||||
wantErrMsg: "iam.validateScopeForWrite: not allowed to change a resource's scope: parameter violation: error #100",
|
||||
},
|
||||
{
|
||||
name: "proj-scope-id-not-in-mask",
|
||||
@@ -423,7 +423,7 @@ func Test_RoleUpdate(t *testing.T) {
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
assert.Equal(0, updatedRows)
|
||||
assert.Equal(tt.wantErrMsg, err.Error())
|
||||
assert.Contains(err.Error(), tt.wantErrMsg)
|
||||
err = db.TestVerifyOplog(t, rw, role.PublicId, db.WithOperation(oplog.OpType_OP_TYPE_UPDATE), db.WithCreateNotBefore(10*time.Second))
|
||||
require.Error(err)
|
||||
assert.Contains(err.Error(), "record not found")
|
||||
@@ -474,7 +474,7 @@ func Test_RoleUpdate(t *testing.T) {
|
||||
updatedRows, err := rw.Update(context.Background(), &updateRole, []string{"ScopeId"}, nil, db.WithSkipVetForWrite(true))
|
||||
require.Error(err)
|
||||
assert.Equal(0, updatedRows)
|
||||
assert.Equal("db.Update: immutable column: iam_role.scope_id: integrity violation: error #1003", err.Error())
|
||||
assert.Contains(err.Error(), "immutable column: iam_role.scope_id: integrity violation: error #1003")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -185,11 +185,11 @@ func (s *Scope) GetScope(ctx context.Context, r db.Reader) (*Scope, error) {
|
||||
// for all scopes which are not global, and the global case was
|
||||
// handled at HANDLE_GLOBAL
|
||||
where := "public_id in (select parent_id from iam_scope where public_id = ?)"
|
||||
if err := r.LookupWhere(ctx, &p, where, s.PublicId); err != nil {
|
||||
if err := r.LookupWhere(ctx, &p, where, []interface{}{s.PublicId}); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithMsg("unable to lookup parent public id from public id"))
|
||||
}
|
||||
default:
|
||||
if err := r.LookupWhere(ctx, &p, "public_id = ?", s.ParentId); err != nil {
|
||||
if err := r.LookupWhere(ctx, &p, "public_id = ?", []interface{}{s.ParentId}); err != nil {
|
||||
return nil, errors.Wrap(ctx, err, op, errors.WithMsg("unable to lookup parent from public id"))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ func Test_UserCreate(t *testing.T) {
|
||||
user.PublicId = id
|
||||
err = w.Create(context.Background(), user)
|
||||
require.Error(err)
|
||||
assert.Equal("db.Create: iam.(User).VetForWrite: iam.validateScopeForWrite: scope is not found: search issue: error #1100", err.Error())
|
||||
assert.Equal("db.Create: dbw.Create: error before write: iam.(User).VetForWrite: iam.validateScopeForWrite: scope is not found: search issue: error #1100", err.Error())
|
||||
})
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ func Test_UserUpdate(t *testing.T) {
|
||||
ScopeId: proj.PublicId,
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: "db.Update: iam.(User).VetForWrite: iam.validateScopeForWrite: not allowed to change a resource's scope: parameter violation: error #100",
|
||||
wantErrMsg: "db.Update: dbw.Update: error before write: iam.(User).VetForWrite: iam.validateScopeForWrite: not allowed to change a resource's scope: parameter violation: error #100",
|
||||
},
|
||||
{
|
||||
name: "proj-scope-id-not-in-mask",
|
||||
@@ -212,7 +212,7 @@ func Test_UserUpdate(t *testing.T) {
|
||||
dbOpts: []db.Option{db.WithSkipVetForWrite(true)},
|
||||
},
|
||||
wantErr: true,
|
||||
wantErrMsg: `db.Update: immutable column: iam_user.scope_id: integrity violation: error #1003`,
|
||||
wantErrMsg: "integrity violation: error #1003",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
@@ -237,7 +237,7 @@ func Test_UserUpdate(t *testing.T) {
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
assert.Equal(0, updatedRows)
|
||||
assert.Equal(tt.wantErrMsg, err.Error())
|
||||
assert.Contains(err.Error(), tt.wantErrMsg)
|
||||
return
|
||||
}
|
||||
require.NoError(err)
|
||||
|
||||
@@ -22,7 +22,7 @@ func TestAuditKey_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -60,7 +60,7 @@ func TestAuditKey_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocAuditKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKey(); return &i }(), "1=1")
|
||||
got, err := kms.NewAuditKey(testCtx, tt.args.rootKeyId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -91,9 +91,10 @@ func TestAuditKey_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocAuditKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKey(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -154,7 +155,8 @@ func TestAuditKey_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
k := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
cp := k.Clone()
|
||||
@@ -164,7 +166,7 @@ func TestAuditKey_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
k := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -22,7 +22,7 @@ func TestAuditKeyVersion_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rkv, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -90,7 +90,7 @@ func TestAuditKeyVersion_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocAuditKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKeyVersion(); return &i }(), "1=1")
|
||||
got, err := kms.NewAuditKeyVersion(testCtx, tt.args.AuditKeyId, tt.args.key, tt.args.rootKeyVersionId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -123,12 +123,12 @@ func TestAuditKeyVersion_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocAuditKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKeyVersion(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -188,7 +188,7 @@ func TestAuditKeyVersion_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
@@ -202,7 +202,7 @@ func TestAuditKeyVersion_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -21,7 +21,7 @@ func TestDatabaseKey_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -59,7 +59,7 @@ func TestDatabaseKey_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocDatabaseKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocDatabaseKey(); return &i }(), "1=1")
|
||||
got, err := kms.NewDatabaseKey(tt.args.rootKeyId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -90,9 +90,9 @@ func TestDatabaseKey_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocDatabaseKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocDatabaseKey(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -153,7 +153,7 @@ func TestDatabaseKey_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
k := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
cp := k.Clone()
|
||||
@@ -163,7 +163,7 @@ func TestDatabaseKey_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
k := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -21,7 +21,7 @@ func TestDatabaseKeyVersion_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rkv, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -89,7 +89,7 @@ func TestDatabaseKeyVersion_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocDatabaseKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocDatabaseKeyVersion(); return &i }(), "1=1")
|
||||
got, err := kms.NewDatabaseKeyVersion(tt.args.databaseKeyId, tt.args.key, tt.args.rootKeyVersionId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -122,12 +122,12 @@ func TestDatabaseKeyVersion_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocDatabaseKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocDatabaseKeyVersion(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -187,7 +187,7 @@ func TestDatabaseKeyVersion_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
@@ -201,7 +201,7 @@ func TestDatabaseKeyVersion_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -23,8 +23,8 @@ func TestOplogKey_ImmutableFields(t *testing.T) {
|
||||
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocOplogKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOplogKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
new := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -91,7 +91,7 @@ func TestOplogKeyVersion_ImmutableFields(t *testing.T) {
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
@@ -189,8 +189,8 @@ func TestTokenKey_ImmutableFields(t *testing.T) {
|
||||
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocTokenKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocTokenKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
new := kms.TestTokenKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -257,7 +257,7 @@ func TestTokenKeyVersion_ImmutableFields(t *testing.T) {
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestTokenKey(t, conn, rk.PrivateId)
|
||||
@@ -355,8 +355,8 @@ func TestSessionKey_ImmutableFields(t *testing.T) {
|
||||
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocSessionKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocSessionKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
new := kms.TestSessionKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -423,7 +423,7 @@ func TestSessionKeyVersion_ImmutableFields(t *testing.T) {
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestSessionKey(t, conn, rk.PrivateId)
|
||||
@@ -521,8 +521,8 @@ func TestRootKeyVersion_ImmutableFields(t *testing.T) {
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKeyVersion(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
new, _ := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -609,7 +609,7 @@ func TestRootKey_ImmutableFields(t *testing.T) {
|
||||
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
new := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
tests := []struct {
|
||||
@@ -675,8 +675,8 @@ func TestDatabaseKey_ImmutableFields(t *testing.T) {
|
||||
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocDatabaseKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocDatabaseKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
new := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -743,7 +743,7 @@ func TestDatabaseKeyVersion_ImmutableFields(t *testing.T) {
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
@@ -841,8 +841,8 @@ func TestOidcKey_ImmutableFields(t *testing.T) {
|
||||
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocOidcKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOidcKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
new := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -909,7 +909,7 @@ func TestOidcKeyVersion_ImmutableFields(t *testing.T) {
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
@@ -1007,8 +1007,8 @@ func TestAuditKey_ImmutableFields(t *testing.T) {
|
||||
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocAuditKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
new := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -1075,10 +1075,9 @@ func TestAuditKeyVersion_ImmutableFields(t *testing.T) {
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
conn.Debug(true)
|
||||
dk := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
new := kms.TestAuditKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("audit key"))
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ func TestKms_ReconcileKeys(t *testing.T) {
|
||||
kms: kms.TestKms(t, conn, wrapper),
|
||||
reader: rand.Reader,
|
||||
setup: func() {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocAuditKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKey(); return &i }(), "1=1")
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
@@ -179,7 +179,7 @@ func TestKms_ReconcileKeys(t *testing.T) {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
// start with no keys...
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
_, err := kms.CreateKeysTx(context.Background(), rw, rw, wrapper, rand.Reader, scope.Global.String())
|
||||
require.NoError(err)
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ func TestOidcKey_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -59,7 +59,7 @@ func TestOidcKey_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOidcKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOidcKey(); return &i }(), "1=1")
|
||||
got, err := kms.NewOidcKey(tt.args.rootKeyId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -90,9 +90,9 @@ func TestOidcKey_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocOidcKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOidcKey(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -153,7 +153,7 @@ func TestOidcKey_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
k := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
cp := k.Clone()
|
||||
@@ -163,7 +163,7 @@ func TestOidcKey_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
k := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -21,7 +21,7 @@ func TestOidcKeyVersion_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rkv, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -89,7 +89,7 @@ func TestOidcKeyVersion_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOidcKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOidcKeyVersion(); return &i }(), "1=1")
|
||||
got, err := kms.NewOidcKeyVersion(tt.args.OidcKeyId, tt.args.key, tt.args.rootKeyVersionId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -122,12 +122,12 @@ func TestOidcKeyVersion_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocOidcKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOidcKeyVersion(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -187,7 +187,7 @@ func TestOidcKeyVersion_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
@@ -201,7 +201,7 @@ func TestOidcKeyVersion_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -21,7 +21,7 @@ func TestOplogKey_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -59,7 +59,7 @@ func TestOplogKey_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOplogKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOplogKey(); return &i }(), "1=1")
|
||||
got, err := kms.NewOplogKey(tt.args.rootKeyId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -90,9 +90,9 @@ func TestOplogKey_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocOplogKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOplogKey(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -153,7 +153,7 @@ func TestOplogKey_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
k := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
cp := k.Clone()
|
||||
@@ -163,7 +163,7 @@ func TestOplogKey_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
k := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
|
||||
@@ -21,7 +21,7 @@ func TestOplogKeyVersion_Create(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rkv, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -89,7 +89,7 @@ func TestOplogKeyVersion_Create(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOplogKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOplogKeyVersion(); return &i }(), "1=1")
|
||||
got, err := kms.NewOplogKeyVersion(tt.args.oplogKeyId, tt.args.key, tt.args.rootKeyVersionId, tt.args.opt...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
@@ -122,12 +122,12 @@ func TestOplogKeyVersion_Delete(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
opk := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocOplogKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOplogKeyVersion(); return &i }(), "1=1")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -187,7 +187,7 @@ func TestOplogKeyVersion_Clone(t *testing.T) {
|
||||
t.Run("valid", func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
@@ -201,7 +201,7 @@ func TestOplogKeyVersion_Clone(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
org2, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
rk2 := kms.TestRootKey(t, conn, org2.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestRepository_CreateAuditKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -149,7 +149,7 @@ func TestRepository_DeleteAuditKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -275,12 +275,12 @@ func TestRepository_ListAuditKeys(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
org, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(conn.Where("scope_id in(?)", []interface{}{"global", org.PublicId, proj.PublicId}).Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "scope_id in(?)", "global", org.PublicId, proj.PublicId)
|
||||
rk := kms.TestRootKey(t, conn, proj.PublicId)
|
||||
kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
require.NoError(err)
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestRepository_CreateAuditKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
@@ -111,7 +111,7 @@ func TestRepository_DeleteAuditKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
@@ -200,7 +200,7 @@ func TestRepository_LatestAuditKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
@@ -245,7 +245,7 @@ func TestRepository_LatestAuditKeyVersion(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocAuditKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKeyVersion(); return &i }(), "1=1")
|
||||
testKeys := []*kms.AuditKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestAuditKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("test audit key"))
|
||||
@@ -275,7 +275,7 @@ func TestRepository_ListAuditKeyVersions(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw, kms.WithLimit(testLimit))
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestAuditKey(t, conn, rk.PrivateId)
|
||||
@@ -348,7 +348,7 @@ func TestRepository_ListAuditKeyVersions(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocAuditKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocAuditKeyVersion(); return &i }(), "1=1")
|
||||
keyVersions := []*kms.AuditKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestAuditKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("audit key"))
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestRepository_CreateDatabaseKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -149,7 +149,7 @@ func TestRepository_DeleteDatabaseKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -275,12 +275,12 @@ func TestRepository_ListDatabaseKeys(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
org, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(conn.Where("scope_id in(?)", []interface{}{"global", org.PublicId, proj.PublicId}).Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "scope_id in(?)", "global", org.PublicId, proj.PublicId)
|
||||
rk := kms.TestRootKey(t, conn, proj.PublicId)
|
||||
kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
require.NoError(err)
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestRepository_CreateDatabaseKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
@@ -111,7 +111,7 @@ func TestRepository_DeleteDatabaseKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
@@ -200,7 +200,7 @@ func TestRepository_LatestDatabaseKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
@@ -245,7 +245,7 @@ func TestRepository_LatestDatabaseKeyVersion(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocDatabaseKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocDatabaseKeyVersion(); return &i }(), "1=1")
|
||||
testKeys := []*kms.DatabaseKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestDatabaseKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("test database key"))
|
||||
@@ -275,7 +275,7 @@ func TestRepository_ListDatabaseKeyVersions(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw, kms.WithLimit(testLimit))
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestDatabaseKey(t, conn, rk.PrivateId)
|
||||
@@ -348,7 +348,7 @@ func TestRepository_ListDatabaseKeyVersions(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocDatabaseKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocDatabaseKeyVersion(); return &i }(), "1=1")
|
||||
keyVersions := []*kms.DatabaseKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestDatabaseKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("database key"))
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestRepository_CreateOidcKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -149,7 +149,7 @@ func TestRepository_DeleteOidcKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -275,12 +275,12 @@ func TestRepository_ListOidcKeys(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
org, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(conn.Where("scope_id in(?)", []interface{}{"global", org.PublicId, proj.PublicId}).Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "scope_id in(?)", "global", org.PublicId, proj.PublicId)
|
||||
rk := kms.TestRootKey(t, conn, proj.PublicId)
|
||||
kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
require.NoError(err)
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestRepository_CreateOidcKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
@@ -111,7 +111,7 @@ func TestRepository_DeleteOidcKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
@@ -200,7 +200,7 @@ func TestRepository_LatestOidcKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
@@ -245,7 +245,7 @@ func TestRepository_LatestOidcKeyVersion(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOidcKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOidcKeyVersion(); return &i }(), "1=1")
|
||||
testKeys := []*kms.OidcKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestOidcKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("test oidc key"))
|
||||
@@ -275,7 +275,7 @@ func TestRepository_ListOidcKeyVersions(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw, kms.WithLimit(testLimit))
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOidcKey(t, conn, rk.PrivateId)
|
||||
@@ -348,7 +348,7 @@ func TestRepository_ListOidcKeyVersions(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOidcKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOidcKeyVersion(); return &i }(), "1=1")
|
||||
keyVersions := []*kms.OidcKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestOidcKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("oidc key"))
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestRepository_CreateOplogKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -149,7 +149,7 @@ func TestRepository_DeleteOplogKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -275,12 +275,12 @@ func TestRepository_ListOplogKeys(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
org, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(conn.Where("scope_id in(?)", []interface{}{"global", org.PublicId, proj.PublicId}).Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "scope_id in(?)", "global", org.PublicId, proj.PublicId)
|
||||
rk := kms.TestRootKey(t, conn, proj.PublicId)
|
||||
kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
require.NoError(err)
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestRepository_CreateOplogKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
@@ -111,7 +111,7 @@ func TestRepository_DeleteOplogKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
@@ -200,7 +200,7 @@ func TestRepository_LatestOplogKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
@@ -245,7 +245,7 @@ func TestRepository_LatestOplogKeyVersion(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOplogKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOplogKeyVersion(); ; return &i }(), "1=1")
|
||||
testKeys := []*kms.OplogKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestOplogKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("test oplog key"))
|
||||
@@ -275,7 +275,7 @@ func TestRepository_ListOplogKeyVersions(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw, kms.WithLimit(testLimit))
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
dk := kms.TestOplogKey(t, conn, rk.PrivateId)
|
||||
@@ -348,7 +348,7 @@ func TestRepository_ListOplogKeyVersions(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocOplogKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocOplogKeyVersion(); return &i }(), "1=1")
|
||||
keyVersions := []*kms.OplogKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestOplogKeyVersion(t, conn, rkvWrapper, dk.PrivateId, []byte("oplog key"))
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestRepository_CreateRootKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
type args struct {
|
||||
scopeId string
|
||||
@@ -127,7 +127,7 @@ func TestRepository_DeleteRootKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
type args struct {
|
||||
key *kms.RootKey
|
||||
@@ -252,7 +252,7 @@ func TestRepository_ListRootKeys(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestRepository_CreateRootKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -110,7 +110,7 @@ func TestRepository_DeleteRootKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -200,7 +200,7 @@ func TestRepository_LatestRootKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
tests := []struct {
|
||||
@@ -243,7 +243,7 @@ func TestRepository_LatestRootKeyVersion(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocRootKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKeyVersion(); return &i }(), "1=1")
|
||||
testKeys := []*kms.RootKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k, _ := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
@@ -273,7 +273,7 @@ func TestRepository_ListRootKeyVersions(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw, kms.WithLimit(testLimit))
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -344,7 +344,7 @@ func TestRepository_ListRootKeyVersions(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocRootKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKeyVersion(); return &i }(), "1=1")
|
||||
testRootKeyVersions := []*kms.RootKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k, _ := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestRepository_CreateSessionKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -149,7 +149,7 @@ func TestRepository_DeleteSessionKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -276,12 +276,12 @@ func TestRepository_ListSessionKeys(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
org, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(conn.Where("scope_id in(?)", []interface{}{"global", org.PublicId, proj.PublicId}).Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "scope_id in(?)", "global", org.PublicId, proj.PublicId)
|
||||
rk := kms.TestRootKey(t, conn, proj.PublicId)
|
||||
kms.TestSessionKey(t, conn, rk.PrivateId)
|
||||
require.NoError(err)
|
||||
|
||||
@@ -24,7 +24,7 @@ func TestRepository_CreateSessionKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
sk := kms.TestSessionKey(t, conn, rk.PrivateId)
|
||||
@@ -111,7 +111,7 @@ func TestRepository_DeleteSessionKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
sk := kms.TestSessionKey(t, conn, rk.PrivateId)
|
||||
@@ -200,7 +200,7 @@ func TestRepository_LatestSessionKeyVersion(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
sk := kms.TestSessionKey(t, conn, rk.PrivateId)
|
||||
@@ -245,7 +245,7 @@ func TestRepository_LatestSessionKeyVersion(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocSessionKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocSessionKeyVersion(); return &i }(), "1=1")
|
||||
testKeys := []*kms.SessionKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestSessionKeyVersion(t, conn, rkvWrapper, sk.PrivateId, []byte("test key"))
|
||||
@@ -275,7 +275,7 @@ func TestRepository_ListSessionKeyVersions(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw, kms.WithLimit(testLimit))
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
sk := kms.TestSessionKey(t, conn, rk.PrivateId)
|
||||
@@ -348,7 +348,7 @@ func TestRepository_ListSessionKeyVersions(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
require.NoError(conn.Where("1=1").Delete(kms.AllocSessionKeyVersion()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocSessionKeyVersion(); return &i }(), "1=1")
|
||||
keyVersions := []*kms.SessionKeyVersion{}
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
k := kms.TestSessionKeyVersion(t, conn, rkvWrapper, sk.PrivateId, []byte("session key"))
|
||||
|
||||
@@ -86,7 +86,7 @@ func TestCreateKeysTx(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
|
||||
type args struct {
|
||||
ctx context.Context
|
||||
|
||||
@@ -25,7 +25,7 @@ func TestRepository_CreateTokenKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
_, rkvWrapper := kms.TestRootKeyVersion(t, conn, wrapper, rk.PrivateId)
|
||||
|
||||
@@ -149,7 +149,7 @@ func TestRepository_DeleteTokenKey(t *testing.T) {
|
||||
repo, err := kms.NewRepository(rw, rw)
|
||||
require.NoError(t, err)
|
||||
org, _ := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
rk := kms.TestRootKey(t, conn, org.PublicId)
|
||||
|
||||
type args struct {
|
||||
@@ -275,12 +275,12 @@ func TestRepository_ListTokenKeys(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
require.NoError(t, conn.Where("1=1").Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "1=1")
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
for i := 0; i < tt.createCnt; i++ {
|
||||
org, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
require.NoError(conn.Where("scope_id in(?)", []interface{}{"global", org.PublicId, proj.PublicId}).Delete(kms.AllocRootKey()).Error)
|
||||
db.TestDeleteWhere(t, conn, func() interface{} { i := kms.AllocRootKey(); return &i }(), "scope_id in(?)", "global", org.PublicId, proj.PublicId)
|
||||
rk := kms.TestRootKey(t, conn, proj.PublicId)
|
||||
kms.TestTokenKey(t, conn, rk.PrivateId)
|
||||
require.NoError(err)
|
||||
|
||||
Loaded 100 of 160 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user