Merge pull request #109804 from cici37/celUpdate
Bump cel-go to v0.11.2
This commit is contained in:
commit
b7c4d243de
26
go.mod
26
go.mod
@ -88,8 +88,8 @@ require (
|
|||||||
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717
|
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717
|
||||||
gonum.org/v1/gonum v0.6.2
|
gonum.org/v1/gonum v0.6.2
|
||||||
google.golang.org/api v0.46.0
|
google.golang.org/api v0.46.0
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6
|
||||||
google.golang.org/grpc v1.40.0
|
google.golang.org/grpc v1.44.0
|
||||||
google.golang.org/protobuf v1.27.1
|
google.golang.org/protobuf v1.27.1
|
||||||
gopkg.in/gcfg.v1 v1.2.0
|
gopkg.in/gcfg.v1 v1.2.0
|
||||||
gopkg.in/square/go-jose.v2 v2.2.2
|
gopkg.in/square/go-jose.v2 v2.2.2
|
||||||
@ -142,7 +142,7 @@ require (
|
|||||||
github.com/NYTimes/gziphandler v1.1.1 // indirect
|
github.com/NYTimes/gziphandler v1.1.1 // indirect
|
||||||
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e // indirect
|
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9 // indirect
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
|
||||||
github.com/auth0/go-jwt-middleware v1.0.1 // indirect
|
github.com/auth0/go-jwt-middleware v1.0.1 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
@ -174,7 +174,7 @@ require (
|
|||||||
github.com/go-ozzo/ozzo-validation v3.5.0+incompatible // indirect
|
github.com/go-ozzo/ozzo-validation v3.5.0+incompatible // indirect
|
||||||
github.com/gofrs/uuid v4.0.0+incompatible // indirect
|
github.com/gofrs/uuid v4.0.0+incompatible // indirect
|
||||||
github.com/google/btree v1.0.1 // indirect
|
github.com/google/btree v1.0.1 // indirect
|
||||||
github.com/google/cel-go v0.10.1 // indirect
|
github.com/google/cel-go v0.11.2 // indirect
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
|
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
|
||||||
github.com/gophercloud/gophercloud v0.1.0 // indirect
|
github.com/gophercloud/gophercloud v0.1.0 // indirect
|
||||||
@ -287,12 +287,11 @@ replace (
|
|||||||
github.com/Microsoft/go-winio => github.com/Microsoft/go-winio v0.4.17
|
github.com/Microsoft/go-winio => github.com/Microsoft/go-winio v0.4.17
|
||||||
github.com/Microsoft/hcsshim => github.com/Microsoft/hcsshim v0.8.22
|
github.com/Microsoft/hcsshim => github.com/Microsoft/hcsshim v0.8.22
|
||||||
github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1
|
github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1
|
||||||
github.com/OneOfOne/xxhash => github.com/OneOfOne/xxhash v1.2.2
|
|
||||||
github.com/PuerkitoBio/purell => github.com/PuerkitoBio/purell v1.1.1
|
github.com/PuerkitoBio/purell => github.com/PuerkitoBio/purell v1.1.1
|
||||||
github.com/PuerkitoBio/urlesc => github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
|
github.com/PuerkitoBio/urlesc => github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
|
||||||
github.com/ajstarks/svgo => github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
|
github.com/ajstarks/svgo => github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
|
||||||
github.com/antihax/optional => github.com/antihax/optional v1.0.0
|
github.com/antihax/optional => github.com/antihax/optional v1.0.0
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr => github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e
|
github.com/antlr/antlr4/runtime/Go/antlr => github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9
|
||||||
github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
|
github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
|
||||||
github.com/armon/go-socks5 => github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5
|
github.com/armon/go-socks5 => github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5
|
||||||
github.com/asaskevich/govalidator => github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a
|
github.com/asaskevich/govalidator => github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a
|
||||||
@ -305,7 +304,6 @@ replace (
|
|||||||
github.com/boltdb/bolt => github.com/boltdb/bolt v1.3.1
|
github.com/boltdb/bolt => github.com/boltdb/bolt v1.3.1
|
||||||
github.com/census-instrumentation/opencensus-proto => github.com/census-instrumentation/opencensus-proto v0.2.1
|
github.com/census-instrumentation/opencensus-proto => github.com/census-instrumentation/opencensus-proto v0.2.1
|
||||||
github.com/certifi/gocertifi => github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054
|
github.com/certifi/gocertifi => github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054
|
||||||
github.com/cespare/xxhash => github.com/cespare/xxhash v1.1.0
|
|
||||||
github.com/cespare/xxhash/v2 => github.com/cespare/xxhash/v2 v2.1.2
|
github.com/cespare/xxhash/v2 => github.com/cespare/xxhash/v2 v2.1.2
|
||||||
github.com/chai2010/gettext-go => github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5
|
github.com/chai2010/gettext-go => github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5
|
||||||
github.com/checkpoint-restore/go-criu/v5 => github.com/checkpoint-restore/go-criu/v5 v5.3.0
|
github.com/checkpoint-restore/go-criu/v5 => github.com/checkpoint-restore/go-criu/v5 v5.3.0
|
||||||
@ -314,8 +312,8 @@ replace (
|
|||||||
github.com/chzyer/test => github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1
|
github.com/chzyer/test => github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1
|
||||||
github.com/cilium/ebpf => github.com/cilium/ebpf v0.7.0
|
github.com/cilium/ebpf => github.com/cilium/ebpf v0.7.0
|
||||||
github.com/clusterhq/flocker-go => github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313
|
github.com/clusterhq/flocker-go => github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313
|
||||||
github.com/cncf/udpa/go => github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403
|
github.com/cncf/udpa/go => github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4
|
||||||
github.com/cncf/xds/go => github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed
|
github.com/cncf/xds/go => github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1
|
||||||
github.com/cockroachdb/datadriven => github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5
|
github.com/cockroachdb/datadriven => github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5
|
||||||
github.com/cockroachdb/errors => github.com/cockroachdb/errors v1.2.4
|
github.com/cockroachdb/errors => github.com/cockroachdb/errors v1.2.4
|
||||||
github.com/cockroachdb/logtags => github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f
|
github.com/cockroachdb/logtags => github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f
|
||||||
@ -347,7 +345,7 @@ replace (
|
|||||||
github.com/dustin/go-humanize => github.com/dustin/go-humanize v1.0.0
|
github.com/dustin/go-humanize => github.com/dustin/go-humanize v1.0.0
|
||||||
github.com/elazarl/goproxy => github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 // 947c36da3153 is the SHA for git tag v1.11
|
github.com/elazarl/goproxy => github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 // 947c36da3153 is the SHA for git tag v1.11
|
||||||
github.com/emicklei/go-restful => github.com/emicklei/go-restful v2.9.5+incompatible
|
github.com/emicklei/go-restful => github.com/emicklei/go-restful v2.9.5+incompatible
|
||||||
github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0
|
github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021
|
||||||
github.com/envoyproxy/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate v0.1.0
|
github.com/envoyproxy/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate v0.1.0
|
||||||
github.com/euank/go-kmsg-parser => github.com/euank/go-kmsg-parser v2.0.0+incompatible
|
github.com/euank/go-kmsg-parser => github.com/euank/go-kmsg-parser v2.0.0+incompatible
|
||||||
github.com/evanphx/json-patch => github.com/evanphx/json-patch v4.12.0+incompatible
|
github.com/evanphx/json-patch => github.com/evanphx/json-patch v4.12.0+incompatible
|
||||||
@ -386,8 +384,7 @@ replace (
|
|||||||
github.com/golangplus/testing => github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e
|
github.com/golangplus/testing => github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e
|
||||||
github.com/google/btree => github.com/google/btree v1.0.1
|
github.com/google/btree => github.com/google/btree v1.0.1
|
||||||
github.com/google/cadvisor => github.com/google/cadvisor v0.44.1
|
github.com/google/cadvisor => github.com/google/cadvisor v0.44.1
|
||||||
github.com/google/cel-go => github.com/google/cel-go v0.10.1
|
github.com/google/cel-go => github.com/google/cel-go v0.11.2
|
||||||
github.com/google/cel-spec => github.com/google/cel-spec v0.6.0
|
|
||||||
github.com/google/gnostic => github.com/google/gnostic v0.5.7-v3refs
|
github.com/google/gnostic => github.com/google/gnostic v0.5.7-v3refs
|
||||||
github.com/google/go-cmp => github.com/google/go-cmp v0.5.5
|
github.com/google/go-cmp => github.com/google/go-cmp v0.5.5
|
||||||
github.com/google/gofuzz => github.com/google/gofuzz v1.1.0
|
github.com/google/gofuzz => github.com/google/gofuzz v1.1.0
|
||||||
@ -486,7 +483,6 @@ replace (
|
|||||||
github.com/smartystreets/assertions => github.com/smartystreets/assertions v1.1.0
|
github.com/smartystreets/assertions => github.com/smartystreets/assertions v1.1.0
|
||||||
github.com/smartystreets/goconvey => github.com/smartystreets/goconvey v1.6.4
|
github.com/smartystreets/goconvey => github.com/smartystreets/goconvey v1.6.4
|
||||||
github.com/soheilhy/cmux => github.com/soheilhy/cmux v0.1.5
|
github.com/soheilhy/cmux => github.com/soheilhy/cmux v0.1.5
|
||||||
github.com/spaolacci/murmur3 => github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72
|
|
||||||
github.com/spf13/afero => github.com/spf13/afero v1.6.0
|
github.com/spf13/afero => github.com/spf13/afero v1.6.0
|
||||||
github.com/spf13/cobra => github.com/spf13/cobra v1.4.0
|
github.com/spf13/cobra => github.com/spf13/cobra v1.4.0
|
||||||
github.com/spf13/pflag => github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag => github.com/spf13/pflag v1.0.5
|
||||||
@ -550,8 +546,8 @@ replace (
|
|||||||
gonum.org/v1/plot => gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b
|
gonum.org/v1/plot => gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b
|
||||||
google.golang.org/api => google.golang.org/api v0.46.0
|
google.golang.org/api => google.golang.org/api v0.46.0
|
||||||
google.golang.org/appengine => google.golang.org/appengine v1.6.7
|
google.golang.org/appengine => google.golang.org/appengine v1.6.7
|
||||||
google.golang.org/genproto => google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368
|
google.golang.org/genproto => google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6
|
||||||
google.golang.org/grpc => google.golang.org/grpc v1.40.0
|
google.golang.org/grpc => google.golang.org/grpc v1.44.0
|
||||||
google.golang.org/protobuf => google.golang.org/protobuf v1.27.1
|
google.golang.org/protobuf => google.golang.org/protobuf v1.27.1
|
||||||
gopkg.in/alecthomas/kingpin.v2 => gopkg.in/alecthomas/kingpin.v2 v2.2.6
|
gopkg.in/alecthomas/kingpin.v2 => gopkg.in/alecthomas/kingpin.v2 v2.2.6
|
||||||
gopkg.in/check.v1 => gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f
|
gopkg.in/check.v1 => gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f
|
||||||
|
26
go.sum
26
go.sum
@ -43,15 +43,14 @@ github.com/Microsoft/hcsshim v0.8.22 h1:CulZ3GW8sNJExknToo+RWD+U+6ZM5kkNfuxywSDP
|
|||||||
github.com/Microsoft/hcsshim v0.8.22/go.mod h1:91uVCVzvX2QD16sMCenoxxXo6L1wJnLMX2PSufFMtF0=
|
github.com/Microsoft/hcsshim v0.8.22/go.mod h1:91uVCVzvX2QD16sMCenoxxXo6L1wJnLMX2PSufFMtF0=
|
||||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
|
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
|
||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e h1:GCzyKMDDjSGnlpl3clrdAK7I1AaVoaiKDOYkUzChZzg=
|
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9 h1:zvkJv+9Pxm1nnEMcKnShREt4qtduHKz4iw4AB4ul0Ao=
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
|
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA=
|
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA=
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||||
@ -75,7 +74,6 @@ github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx2
|
|||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI=
|
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI=
|
||||||
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
|
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8=
|
github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8=
|
||||||
@ -89,8 +87,8 @@ github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k=
|
|||||||
github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
|
github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
|
||||||
github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313 h1:eIHD9GNM3Hp7kcRW5mvcz7WTR3ETeoYYKwpgA04kaXE=
|
github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313 h1:eIHD9GNM3Hp7kcRW5mvcz7WTR3ETeoYYKwpgA04kaXE=
|
||||||
github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0=
|
github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
|
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
|
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
|
||||||
github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=
|
github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=
|
||||||
@ -148,7 +146,7 @@ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7fo
|
|||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
|
github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/euank/go-kmsg-parser v2.0.0+incompatible h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY=
|
github.com/euank/go-kmsg-parser v2.0.0+incompatible h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY=
|
||||||
github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw=
|
github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw=
|
||||||
@ -212,9 +210,8 @@ github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
|
|||||||
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
||||||
github.com/google/cadvisor v0.44.1 h1:hsAxDZOY+5xSCXH12d/G9cxYTfP+32cMT3J7aatrgDY=
|
github.com/google/cadvisor v0.44.1 h1:hsAxDZOY+5xSCXH12d/G9cxYTfP+32cMT3J7aatrgDY=
|
||||||
github.com/google/cadvisor v0.44.1/go.mod h1:GQ9KQfz0iNHQk3D6ftzJWK4TXabfIgM10Oy3FkR+Gzg=
|
github.com/google/cadvisor v0.44.1/go.mod h1:GQ9KQfz0iNHQk3D6ftzJWK4TXabfIgM10Oy3FkR+Gzg=
|
||||||
github.com/google/cel-go v0.10.1 h1:MQBGSZGnDwh7T/un+mzGKOMz3x+4E/GDPprWjDL+1Jg=
|
github.com/google/cel-go v0.11.2 h1:o16cOggWWtH1a3ZHQ8uWqt8nd255vDrEK1mDE1cFRSQ=
|
||||||
github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w=
|
github.com/google/cel-go v0.11.2/go.mod h1:drz+knCRsctDZ180KZHwIEEUb9IdK/nxPoyhxi+O1K0=
|
||||||
github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA=
|
|
||||||
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
|
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
|
||||||
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
|
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
|
||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||||
@ -387,7 +384,6 @@ github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYl
|
|||||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||||
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
||||||
github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
|
github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
||||||
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
||||||
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
||||||
@ -509,10 +505,10 @@ google.golang.org/api v0.46.0 h1:jkDWHOBIoNSD0OQpq4rtBVu+Rh325MPjXG1rakAp8JU=
|
|||||||
google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I=
|
google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I=
|
||||||
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
|
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
|
||||||
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||||
|
@ -7,7 +7,7 @@ go 1.18
|
|||||||
require (
|
require (
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible
|
github.com/emicklei/go-restful v2.9.5+incompatible
|
||||||
github.com/gogo/protobuf v1.3.2
|
github.com/gogo/protobuf v1.3.2
|
||||||
github.com/google/cel-go v0.10.1
|
github.com/google/cel-go v0.11.2
|
||||||
github.com/google/gnostic v0.5.7-v3refs
|
github.com/google/gnostic v0.5.7-v3refs
|
||||||
github.com/google/go-cmp v0.5.5
|
github.com/google/go-cmp v0.5.5
|
||||||
github.com/google/gofuzz v1.1.0
|
github.com/google/gofuzz v1.1.0
|
||||||
@ -17,8 +17,8 @@ require (
|
|||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.1
|
go.etcd.io/etcd/client/pkg/v3 v3.5.1
|
||||||
go.etcd.io/etcd/client/v3 v3.5.1
|
go.etcd.io/etcd/client/v3 v3.5.1
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6
|
||||||
google.golang.org/grpc v1.40.0
|
google.golang.org/grpc v1.44.0
|
||||||
google.golang.org/protobuf v1.27.1
|
google.golang.org/protobuf v1.27.1
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
k8s.io/api v0.0.0
|
k8s.io/api v0.0.0
|
||||||
@ -39,7 +39,7 @@ require (
|
|||||||
github.com/NYTimes/gziphandler v1.1.1 // indirect
|
github.com/NYTimes/gziphandler v1.1.1 // indirect
|
||||||
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e // indirect
|
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9 // indirect
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/blang/semver/v4 v4.0.0 // indirect
|
github.com/blang/semver/v4 v4.0.0 // indirect
|
||||||
|
30
staging/src/k8s.io/apiextensions-apiserver/go.sum
generated
30
staging/src/k8s.io/apiextensions-apiserver/go.sum
generated
@ -50,8 +50,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
|
|||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e h1:GCzyKMDDjSGnlpl3clrdAK7I1AaVoaiKDOYkUzChZzg=
|
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9 h1:zvkJv+9Pxm1nnEMcKnShREt4qtduHKz4iw4AB4ul0Ao=
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
|
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||||
@ -85,7 +85,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
|
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
|
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
|
||||||
github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=
|
github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=
|
||||||
@ -120,7 +123,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
@ -166,7 +169,6 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
|
|||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
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-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-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-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
@ -205,9 +207,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
|
|||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
|
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
|
||||||
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
||||||
github.com/google/cel-go v0.10.1 h1:MQBGSZGnDwh7T/un+mzGKOMz3x+4E/GDPprWjDL+1Jg=
|
github.com/google/cel-go v0.11.2 h1:o16cOggWWtH1a3ZHQ8uWqt8nd255vDrEK1mDE1cFRSQ=
|
||||||
github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w=
|
github.com/google/cel-go v0.11.2/go.mod h1:drz+knCRsctDZ180KZHwIEEUb9IdK/nxPoyhxi+O1K0=
|
||||||
github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA=
|
|
||||||
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
|
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
|
||||||
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
|
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
@ -579,7 +580,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
|
|||||||
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
|
||||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk=
|
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk=
|
||||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
@ -647,7 +647,6 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 h1:rm+CHSpPEEW2IsXUib1ThaHIjuBVZjxNgSKmBLFfD4c=
|
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 h1:rm+CHSpPEEW2IsXUib1ThaHIjuBVZjxNgSKmBLFfD4c=
|
||||||
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
@ -782,11 +781,9 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
|
||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||||
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -800,12 +797,11 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
|
|||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
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.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.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
|
||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -35,7 +35,7 @@ require (
|
|||||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd
|
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||||
golang.org/x/sys v0.0.0-20220209214540-3681064d5158
|
golang.org/x/sys v0.0.0-20220209214540-3681064d5158
|
||||||
google.golang.org/grpc v1.40.0
|
google.golang.org/grpc v1.44.0
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||||
gopkg.in/square/go-jose.v2 v2.2.2
|
gopkg.in/square/go-jose.v2 v2.2.2
|
||||||
k8s.io/api v0.0.0
|
k8s.io/api v0.0.0
|
||||||
@ -110,7 +110,7 @@ require (
|
|||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
|
15
staging/src/k8s.io/apiserver/go.sum
generated
15
staging/src/k8s.io/apiserver/go.sum
generated
@ -81,7 +81,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
|
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
|
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
|
||||||
github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=
|
github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=
|
||||||
@ -118,7 +121,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
@ -770,8 +773,8 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/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-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -788,8 +791,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
|
|||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -89,8 +89,8 @@ require (
|
|||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/grpc v1.40.0 // indirect
|
google.golang.org/grpc v1.44.0 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
||||||
|
18
staging/src/k8s.io/cloud-provider/go.sum
generated
18
staging/src/k8s.io/cloud-provider/go.sum
generated
@ -40,7 +40,6 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
|
|||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
@ -63,7 +62,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
|
|||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@ -73,7 +71,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||||
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
||||||
@ -96,7 +97,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
@ -299,7 +300,6 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
|
|||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||||
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
||||||
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
||||||
@ -638,8 +638,8 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/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-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -656,8 +656,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
|
|||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -71,8 +71,8 @@ require (
|
|||||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
||||||
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 // indirect
|
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/grpc v1.40.0 // indirect
|
google.golang.org/grpc v1.44.0 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||||
|
18
staging/src/k8s.io/component-base/go.sum
generated
18
staging/src/k8s.io/component-base/go.sum
generated
@ -36,7 +36,6 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg6
|
|||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
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/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
@ -59,7 +58,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
|
|||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@ -69,7 +67,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
|
github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
|
||||||
@ -86,7 +87,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
|
github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=
|
||||||
@ -275,7 +276,6 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD
|
|||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
||||||
github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
|
github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
|
||||||
@ -591,8 +591,8 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -608,8 +608,8 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
|
|||||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -84,8 +84,8 @@ require (
|
|||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/grpc v1.40.0 // indirect
|
google.golang.org/grpc v1.44.0 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
|
18
staging/src/k8s.io/controller-manager/go.sum
generated
18
staging/src/k8s.io/controller-manager/go.sum
generated
@ -44,7 +44,6 @@ github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb0
|
|||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
@ -73,7 +72,6 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM
|
|||||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
@ -87,7 +85,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||||
@ -115,7 +116,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
@ -370,7 +371,6 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
|
|||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||||
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
||||||
@ -713,8 +713,8 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/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-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -731,8 +731,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
|
|||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -7,7 +7,7 @@ go 1.18
|
|||||||
require (
|
require (
|
||||||
github.com/gogo/protobuf v1.3.2
|
github.com/gogo/protobuf v1.3.2
|
||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
google.golang.org/grpc v1.40.0
|
google.golang.org/grpc v1.44.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
@ -19,7 +19,7 @@ require (
|
|||||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect
|
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect
|
||||||
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 // indirect
|
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 // indirect
|
||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
|
||||||
|
19
staging/src/k8s.io/cri-api/go.sum
generated
19
staging/src/k8s.io/cri-api/go.sum
generated
@ -1,14 +1,16 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
@ -17,7 +19,7 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF
|
|||||||
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.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.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.20201210154907-fd9021fe5dad/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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
@ -59,7 +61,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
|||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||||
@ -132,16 +133,16 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA
|
|||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||||
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||||
google.golang.org/grpc v1.36.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.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -92,8 +92,8 @@ require (
|
|||||||
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 // indirect
|
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/grpc v1.40.0 // indirect
|
google.golang.org/grpc v1.44.0 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
||||||
|
18
staging/src/k8s.io/kube-aggregator/go.sum
generated
18
staging/src/k8s.io/kube-aggregator/go.sum
generated
@ -38,7 +38,6 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
|
|||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
@ -61,7 +60,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
|
|||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@ -71,7 +69,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||||
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
||||||
@ -92,7 +93,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
@ -295,7 +296,6 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
|
|||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||||
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
||||||
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
||||||
@ -634,8 +634,8 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/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-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -652,8 +652,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
|
|||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -7,7 +7,7 @@ go 1.18
|
|||||||
require (
|
require (
|
||||||
github.com/gogo/protobuf v1.3.2
|
github.com/gogo/protobuf v1.3.2
|
||||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd
|
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd
|
||||||
google.golang.org/grpc v1.40.0
|
google.golang.org/grpc v1.44.0
|
||||||
k8s.io/api v0.0.0
|
k8s.io/api v0.0.0
|
||||||
k8s.io/apimachinery v0.0.0
|
k8s.io/apimachinery v0.0.0
|
||||||
k8s.io/component-base v0.0.0
|
k8s.io/component-base v0.0.0
|
||||||
@ -24,7 +24,7 @@ require (
|
|||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 // indirect
|
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 // indirect
|
||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
|
21
staging/src/k8s.io/kubelet/go.sum
generated
21
staging/src/k8s.io/kubelet/go.sum
generated
@ -1,14 +1,16 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
@ -16,7 +18,7 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF
|
|||||||
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.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.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.20201210154907-fd9021fe5dad/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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||||
@ -69,7 +71,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
|||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
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/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
@ -77,6 +78,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||||
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||||
@ -145,16 +147,16 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA
|
|||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||||
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||||
google.golang.org/grpc v1.36.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.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
@ -177,6 +179,7 @@ gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||||
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
@ -89,8 +89,8 @@ require (
|
|||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/grpc v1.40.0 // indirect
|
google.golang.org/grpc v1.44.0 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/warnings.v0 v0.1.1 // indirect
|
gopkg.in/warnings.v0 v0.1.1 // indirect
|
||||||
|
18
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
18
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
@ -62,7 +62,6 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
|
|||||||
github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3 h1:FCalqNmQYSMCCHoCtAxZN/ZgLc8ufgeo5Z3wrIoJZvs=
|
github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3 h1:FCalqNmQYSMCCHoCtAxZN/ZgLc8ufgeo5Z3wrIoJZvs=
|
||||||
github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3/go.mod h1:8XasY4ymP2V/tn2OOV9ZadmiTE1FIB/h3W+yNlPttKw=
|
github.com/GoogleCloudPlatform/k8s-cloud-provider v1.16.1-0.20210702024009-ea6160c1d0e3/go.mod h1:8XasY4ymP2V/tn2OOV9ZadmiTE1FIB/h3W+yNlPttKw=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
@ -83,7 +82,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
|
|||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@ -94,7 +92,10 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
|
|||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
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-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/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
@ -111,7 +112,7 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
|
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
@ -323,7 +324,6 @@ github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvf
|
|||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
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/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
@ -664,8 +664,8 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/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-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
|
||||||
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -686,8 +686,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
|
|||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -87,8 +87,8 @@ require (
|
|||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/grpc v1.40.0 // indirect
|
google.golang.org/grpc v1.44.0 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
||||||
|
18
staging/src/k8s.io/pod-security-admission/go.sum
generated
18
staging/src/k8s.io/pod-security-admission/go.sum
generated
@ -38,7 +38,6 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
|
|||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
@ -60,7 +59,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
|
|||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@ -70,7 +68,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||||
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
||||||
@ -91,7 +92,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
@ -294,7 +295,6 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
|
|||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||||
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
||||||
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
||||||
@ -630,8 +630,8 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/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-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -648,8 +648,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
|
|||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -86,8 +86,8 @@ require (
|
|||||||
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 // indirect
|
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 // indirect
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 // indirect
|
||||||
google.golang.org/grpc v1.40.0 // indirect
|
google.golang.org/grpc v1.44.0 // indirect
|
||||||
google.golang.org/protobuf v1.27.1 // indirect
|
google.golang.org/protobuf v1.27.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
||||||
|
18
staging/src/k8s.io/sample-apiserver/go.sum
generated
18
staging/src/k8s.io/sample-apiserver/go.sum
generated
@ -38,7 +38,6 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
|
|||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
|
||||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
@ -61,7 +60,6 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
|
|||||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@ -71,7 +69,10 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/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/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
|
||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||||
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
|
||||||
@ -92,7 +93,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
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.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.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/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
@ -293,7 +294,6 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
|
|||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||||
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
|
||||||
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
|
||||||
@ -632,8 +632,8 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/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-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6 h1:FglFEfyj61zP3c6LgjmVHxYxZWXYul9oiS1EZqD5gLc=
|
||||||
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
@ -650,8 +650,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp
|
|||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
|
||||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
2
vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go
generated
vendored
2
vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go
generated
vendored
@ -251,7 +251,7 @@ func (l *LexerATNConfig) hash() int {
|
|||||||
f = 0
|
f = 0
|
||||||
}
|
}
|
||||||
h := murmurInit(7)
|
h := murmurInit(7)
|
||||||
h = murmurUpdate(h, l.state.hash())
|
h = murmurUpdate(h, l.state.GetStateNumber())
|
||||||
h = murmurUpdate(h, l.alt)
|
h = murmurUpdate(h, l.alt)
|
||||||
h = murmurUpdate(h, l.context.hash())
|
h = murmurUpdate(h, l.context.hash())
|
||||||
h = murmurUpdate(h, l.semanticContext.hash())
|
h = murmurUpdate(h, l.semanticContext.hash())
|
||||||
|
70
vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go
generated
vendored
70
vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go
generated
vendored
@ -11,7 +11,7 @@ type ATNConfigSet interface {
|
|||||||
Add(ATNConfig, *DoubleDict) bool
|
Add(ATNConfig, *DoubleDict) bool
|
||||||
AddAll([]ATNConfig) bool
|
AddAll([]ATNConfig) bool
|
||||||
|
|
||||||
GetStates() *Set
|
GetStates() Set
|
||||||
GetPredicates() []SemanticContext
|
GetPredicates() []SemanticContext
|
||||||
GetItems() []ATNConfig
|
GetItems() []ATNConfig
|
||||||
|
|
||||||
@ -35,6 +35,8 @@ type ATNConfigSet interface {
|
|||||||
GetConflictingAlts() *BitSet
|
GetConflictingAlts() *BitSet
|
||||||
SetConflictingAlts(*BitSet)
|
SetConflictingAlts(*BitSet)
|
||||||
|
|
||||||
|
Alts() *BitSet
|
||||||
|
|
||||||
FullContext() bool
|
FullContext() bool
|
||||||
|
|
||||||
GetUniqueAlt() int
|
GetUniqueAlt() int
|
||||||
@ -55,7 +57,7 @@ type BaseATNConfigSet struct {
|
|||||||
// effectively doubles the number of objects associated with ATNConfigs. All
|
// effectively doubles the number of objects associated with ATNConfigs. All
|
||||||
// keys are hashed by (s, i, _, pi), not including the context. Wiped out when
|
// keys are hashed by (s, i, _, pi), not including the context. Wiped out when
|
||||||
// read-only because a set becomes a DFA state.
|
// read-only because a set becomes a DFA state.
|
||||||
configLookup *Set
|
configLookup Set
|
||||||
|
|
||||||
// configs is the added elements.
|
// configs is the added elements.
|
||||||
configs []ATNConfig
|
configs []ATNConfig
|
||||||
@ -91,11 +93,19 @@ type BaseATNConfigSet struct {
|
|||||||
uniqueAlt int
|
uniqueAlt int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *BaseATNConfigSet) Alts() *BitSet {
|
||||||
|
alts := NewBitSet()
|
||||||
|
for _, it := range b.configs {
|
||||||
|
alts.add(it.GetAlt())
|
||||||
|
}
|
||||||
|
return alts
|
||||||
|
}
|
||||||
|
|
||||||
func NewBaseATNConfigSet(fullCtx bool) *BaseATNConfigSet {
|
func NewBaseATNConfigSet(fullCtx bool) *BaseATNConfigSet {
|
||||||
return &BaseATNConfigSet{
|
return &BaseATNConfigSet{
|
||||||
cachedHash: -1,
|
cachedHash: -1,
|
||||||
configLookup: NewSet(nil, equalATNConfigs),
|
configLookup: NewArray2DHashSetWithCap(hashATNConfig, equalATNConfigs, 16, 2),
|
||||||
fullCtx: fullCtx,
|
fullCtx: fullCtx,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,12 +126,11 @@ func (b *BaseATNConfigSet) Add(config ATNConfig, mergeCache *DoubleDict) bool {
|
|||||||
b.dipsIntoOuterContext = true
|
b.dipsIntoOuterContext = true
|
||||||
}
|
}
|
||||||
|
|
||||||
existing := b.configLookup.add(config).(ATNConfig)
|
existing := b.configLookup.Add(config).(ATNConfig)
|
||||||
|
|
||||||
if existing == config {
|
if existing == config {
|
||||||
b.cachedHash = -1
|
b.cachedHash = -1
|
||||||
b.configs = append(b.configs, config) // Track order here
|
b.configs = append(b.configs, config) // Track order here
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,11 +154,11 @@ func (b *BaseATNConfigSet) Add(config ATNConfig, mergeCache *DoubleDict) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseATNConfigSet) GetStates() *Set {
|
func (b *BaseATNConfigSet) GetStates() Set {
|
||||||
states := NewSet(nil, nil)
|
states := NewArray2DHashSet(nil, nil)
|
||||||
|
|
||||||
for i := 0; i < len(b.configs); i++ {
|
for i := 0; i < len(b.configs); i++ {
|
||||||
states.add(b.configs[i].GetState())
|
states.Add(b.configs[i].GetState())
|
||||||
}
|
}
|
||||||
|
|
||||||
return states
|
return states
|
||||||
@ -186,7 +195,7 @@ func (b *BaseATNConfigSet) OptimizeConfigs(interpreter *BaseATNSimulator) {
|
|||||||
panic("set is read-only")
|
panic("set is read-only")
|
||||||
}
|
}
|
||||||
|
|
||||||
if b.configLookup.length() == 0 {
|
if b.configLookup.Len() == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,13 +245,11 @@ func (b *BaseATNConfigSet) hash() int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseATNConfigSet) hashCodeConfigs() int {
|
func (b *BaseATNConfigSet) hashCodeConfigs() int {
|
||||||
h := murmurInit(1)
|
h := 1
|
||||||
for _, c := range b.configs {
|
for _, config := range b.configs {
|
||||||
if c != nil {
|
h = 31*h + config.hash()
|
||||||
h = murmurUpdate(h, c.hash())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return murmurFinish(h, len(b.configs))
|
return h
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseATNConfigSet) Length() int {
|
func (b *BaseATNConfigSet) Length() int {
|
||||||
@ -258,7 +265,7 @@ func (b *BaseATNConfigSet) Contains(item ATNConfig) bool {
|
|||||||
panic("not implemented for read-only sets")
|
panic("not implemented for read-only sets")
|
||||||
}
|
}
|
||||||
|
|
||||||
return b.configLookup.contains(item)
|
return b.configLookup.Contains(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseATNConfigSet) ContainsFast(item ATNConfig) bool {
|
func (b *BaseATNConfigSet) ContainsFast(item ATNConfig) bool {
|
||||||
@ -266,7 +273,7 @@ func (b *BaseATNConfigSet) ContainsFast(item ATNConfig) bool {
|
|||||||
panic("not implemented for read-only sets")
|
panic("not implemented for read-only sets")
|
||||||
}
|
}
|
||||||
|
|
||||||
return b.configLookup.contains(item) // TODO: containsFast is not implemented for Set
|
return b.configLookup.Contains(item) // TODO: containsFast is not implemented for Set
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseATNConfigSet) Clear() {
|
func (b *BaseATNConfigSet) Clear() {
|
||||||
@ -276,7 +283,7 @@ func (b *BaseATNConfigSet) Clear() {
|
|||||||
|
|
||||||
b.configs = make([]ATNConfig, 0)
|
b.configs = make([]ATNConfig, 0)
|
||||||
b.cachedHash = -1
|
b.cachedHash = -1
|
||||||
b.configLookup = NewSet(nil, equalATNConfigs)
|
b.configLookup = NewArray2DHashSet(nil, equalATNConfigs)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseATNConfigSet) FullContext() bool {
|
func (b *BaseATNConfigSet) FullContext() bool {
|
||||||
@ -358,11 +365,20 @@ type OrderedATNConfigSet struct {
|
|||||||
func NewOrderedATNConfigSet() *OrderedATNConfigSet {
|
func NewOrderedATNConfigSet() *OrderedATNConfigSet {
|
||||||
b := NewBaseATNConfigSet(false)
|
b := NewBaseATNConfigSet(false)
|
||||||
|
|
||||||
b.configLookup = NewSet(nil, nil)
|
b.configLookup = NewArray2DHashSet(nil, nil)
|
||||||
|
|
||||||
return &OrderedATNConfigSet{BaseATNConfigSet: b}
|
return &OrderedATNConfigSet{BaseATNConfigSet: b}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func hashATNConfig(i interface{}) int {
|
||||||
|
o := i.(ATNConfig)
|
||||||
|
hash := 7
|
||||||
|
hash = 31*hash + o.GetState().GetStateNumber()
|
||||||
|
hash = 31*hash + o.GetAlt()
|
||||||
|
hash = 31*hash + o.GetSemanticContext().hash()
|
||||||
|
return hash
|
||||||
|
}
|
||||||
|
|
||||||
func equalATNConfigs(a, b interface{}) bool {
|
func equalATNConfigs(a, b interface{}) bool {
|
||||||
if a == nil || b == nil {
|
if a == nil || b == nil {
|
||||||
return false
|
return false
|
||||||
@ -379,9 +395,13 @@ func equalATNConfigs(a, b interface{}) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
nums := ai.GetState().GetStateNumber() == bi.GetState().GetStateNumber()
|
if ai.GetState().GetStateNumber() != bi.GetState().GetStateNumber() {
|
||||||
alts := ai.GetAlt() == bi.GetAlt()
|
return false
|
||||||
cons := ai.GetSemanticContext().equals(bi.GetSemanticContext())
|
}
|
||||||
|
|
||||||
return nums && alts && cons
|
if ai.GetAlt() != bi.GetAlt() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return ai.GetSemanticContext().equals(bi.GetSemanticContext())
|
||||||
}
|
}
|
||||||
|
8
vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go
generated
vendored
8
vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go
generated
vendored
@ -7,6 +7,7 @@ package antlr
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DFASerializer is a DFA walker that knows how to dump them to serialized
|
// DFASerializer is a DFA walker that knows how to dump them to serialized
|
||||||
@ -112,7 +113,12 @@ func NewLexerDFASerializer(dfa *DFA) *LexerDFASerializer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (l *LexerDFASerializer) getEdgeLabel(i int) string {
|
func (l *LexerDFASerializer) getEdgeLabel(i int) string {
|
||||||
return "'" + string(i) + "'"
|
var sb strings.Builder
|
||||||
|
sb.Grow(6)
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
sb.WriteRune(rune(i))
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LexerDFASerializer) String() string {
|
func (l *LexerDFASerializer) String() string {
|
||||||
|
35
vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go
generated
vendored
35
vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go
generated
vendored
@ -50,8 +50,8 @@ type DFAState struct {
|
|||||||
|
|
||||||
// edges elements point to the target of the symbol. Shift up by 1 so (-1)
|
// edges elements point to the target of the symbol. Shift up by 1 so (-1)
|
||||||
// Token.EOF maps to the first element.
|
// Token.EOF maps to the first element.
|
||||||
edges []*DFAState
|
edges []*DFAState
|
||||||
edgesMu sync.RWMutex
|
edgesMu sync.RWMutex
|
||||||
|
|
||||||
isAcceptState bool
|
isAcceptState bool
|
||||||
|
|
||||||
@ -92,16 +92,16 @@ func NewDFAState(stateNumber int, configs ATNConfigSet) *DFAState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetAltSet gets the set of all alts mentioned by all ATN configurations in d.
|
// GetAltSet gets the set of all alts mentioned by all ATN configurations in d.
|
||||||
func (d *DFAState) GetAltSet() *Set {
|
func (d *DFAState) GetAltSet() Set {
|
||||||
alts := NewSet(nil, nil)
|
alts := NewArray2DHashSet(nil, nil)
|
||||||
|
|
||||||
if d.configs != nil {
|
if d.configs != nil {
|
||||||
for _, c := range d.configs.GetItems() {
|
for _, c := range d.configs.GetItems() {
|
||||||
alts.add(c.GetAlt())
|
alts.Add(c.GetAlt())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if alts.length() == 0 {
|
if alts.Len() == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,26 +173,11 @@ func (d *DFAState) String() string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("%d:%s%s", fmt.Sprint(d.configs), s)
|
return fmt.Sprintf("%d:%s%s", d.stateNumber, fmt.Sprint(d.configs), s)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DFAState) hash() int {
|
func (d *DFAState) hash() int {
|
||||||
h := murmurInit(11)
|
h := murmurInit(7)
|
||||||
|
|
||||||
c := 1
|
|
||||||
if d.isAcceptState {
|
|
||||||
if d.predicates != nil {
|
|
||||||
for _, p := range d.predicates {
|
|
||||||
h = murmurUpdate(h, p.alt)
|
|
||||||
h = murmurUpdate(h, p.pred.hash())
|
|
||||||
c += 2
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
h = murmurUpdate(h, d.prediction)
|
|
||||||
c += 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h = murmurUpdate(h, d.configs.hash())
|
h = murmurUpdate(h, d.configs.hash())
|
||||||
return murmurFinish(h, c)
|
return murmurFinish(h, 1)
|
||||||
}
|
}
|
||||||
|
16
vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go
generated
vendored
16
vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go
generated
vendored
@ -226,16 +226,28 @@ func (i *IntervalSet) StringVerbose(literalNames []string, symbolicNames []strin
|
|||||||
func (i *IntervalSet) toCharString() string {
|
func (i *IntervalSet) toCharString() string {
|
||||||
names := make([]string, len(i.intervals))
|
names := make([]string, len(i.intervals))
|
||||||
|
|
||||||
|
var sb strings.Builder
|
||||||
|
|
||||||
for j := 0; j < len(i.intervals); j++ {
|
for j := 0; j < len(i.intervals); j++ {
|
||||||
v := i.intervals[j]
|
v := i.intervals[j]
|
||||||
if v.Stop == v.Start+1 {
|
if v.Stop == v.Start+1 {
|
||||||
if v.Start == TokenEOF {
|
if v.Start == TokenEOF {
|
||||||
names = append(names, "<EOF>")
|
names = append(names, "<EOF>")
|
||||||
} else {
|
} else {
|
||||||
names = append(names, ("'" + string(v.Start) + "'"))
|
sb.WriteByte('\'')
|
||||||
|
sb.WriteRune(rune(v.Start))
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
names = append(names, sb.String())
|
||||||
|
sb.Reset()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
names = append(names, "'"+string(v.Start)+"'..'"+string(v.Stop-1)+"'")
|
sb.WriteByte('\'')
|
||||||
|
sb.WriteRune(rune(v.Start))
|
||||||
|
sb.WriteString("'..'")
|
||||||
|
sb.WriteRune(rune(v.Stop - 1))
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
names = append(names, sb.String())
|
||||||
|
sb.Reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(names) > 1 {
|
if len(names) > 1 {
|
||||||
|
3
vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go
generated
vendored
3
vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go
generated
vendored
@ -414,10 +414,9 @@ func (l *LexerIndexedCustomAction) execute(lexer Lexer) {
|
|||||||
|
|
||||||
func (l *LexerIndexedCustomAction) hash() int {
|
func (l *LexerIndexedCustomAction) hash() int {
|
||||||
h := murmurInit(0)
|
h := murmurInit(0)
|
||||||
h = murmurUpdate(h, l.actionType)
|
|
||||||
h = murmurUpdate(h, l.offset)
|
h = murmurUpdate(h, l.offset)
|
||||||
h = murmurUpdate(h, l.lexerAction.hash())
|
h = murmurUpdate(h, l.lexerAction.hash())
|
||||||
return murmurFinish(h, 3)
|
return murmurFinish(h, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LexerIndexedCustomAction) equals(other LexerAction) bool {
|
func (l *LexerIndexedCustomAction) equals(other LexerAction) bool {
|
||||||
|
13
vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go
generated
vendored
13
vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go
generated
vendored
@ -161,10 +161,13 @@ func (l *LexerActionExecutor) hash() int {
|
|||||||
func (l *LexerActionExecutor) equals(other interface{}) bool {
|
func (l *LexerActionExecutor) equals(other interface{}) bool {
|
||||||
if l == other {
|
if l == other {
|
||||||
return true
|
return true
|
||||||
} else if _, ok := other.(*LexerActionExecutor); !ok {
|
|
||||||
return false
|
|
||||||
} else {
|
|
||||||
return l.cachedHash == other.(*LexerActionExecutor).cachedHash &&
|
|
||||||
&l.lexerActions == &other.(*LexerActionExecutor).lexerActions
|
|
||||||
}
|
}
|
||||||
|
othert, ok := other.(*LexerActionExecutor)
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if othert == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return l.cachedHash == othert.cachedHash && &l.lexerActions == &othert.lexerActions
|
||||||
}
|
}
|
||||||
|
13
vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go
generated
vendored
13
vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go
generated
vendored
@ -7,6 +7,7 @@ package antlr
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -206,7 +207,7 @@ func (l *LexerATNSimulator) getExistingTargetState(s *DFAState, t int) *DFAState
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
target := s.getIthEdge(t-LexerATNSimulatorMinDFAEdge)
|
target := s.getIthEdge(t - LexerATNSimulatorMinDFAEdge)
|
||||||
if LexerATNSimulatorDebug && target != nil {
|
if LexerATNSimulatorDebug && target != nil {
|
||||||
fmt.Println("reuse state " + strconv.Itoa(s.stateNumber) + " edge to " + strconv.Itoa(target.stateNumber))
|
fmt.Println("reuse state " + strconv.Itoa(s.stateNumber) + " edge to " + strconv.Itoa(target.stateNumber))
|
||||||
}
|
}
|
||||||
@ -299,7 +300,7 @@ func (l *LexerATNSimulator) getReachableConfigSet(input CharStream, closure ATNC
|
|||||||
|
|
||||||
func (l *LexerATNSimulator) accept(input CharStream, lexerActionExecutor *LexerActionExecutor, startIndex, index, line, charPos int) {
|
func (l *LexerATNSimulator) accept(input CharStream, lexerActionExecutor *LexerActionExecutor, startIndex, index, line, charPos int) {
|
||||||
if LexerATNSimulatorDebug {
|
if LexerATNSimulatorDebug {
|
||||||
fmt.Printf("ACTION %s\n", lexerActionExecutor)
|
fmt.Printf("ACTION %v\n", lexerActionExecutor)
|
||||||
}
|
}
|
||||||
// seek to after last char in token
|
// seek to after last char in token
|
||||||
input.Seek(index)
|
input.Seek(index)
|
||||||
@ -630,7 +631,13 @@ func (l *LexerATNSimulator) GetTokenName(tt int) string {
|
|||||||
return "EOF"
|
return "EOF"
|
||||||
}
|
}
|
||||||
|
|
||||||
return "'" + string(tt) + "'"
|
var sb strings.Builder
|
||||||
|
sb.Grow(6)
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
sb.WriteRune(rune(tt))
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
|
||||||
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func resetSimState(sim *SimState) {
|
func resetSimState(sim *SimState) {
|
||||||
|
28
vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go
generated
vendored
28
vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go
generated
vendored
@ -38,7 +38,7 @@ func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
|
|||||||
look := make([]*IntervalSet, count)
|
look := make([]*IntervalSet, count)
|
||||||
for alt := 0; alt < count; alt++ {
|
for alt := 0; alt < count; alt++ {
|
||||||
look[alt] = NewIntervalSet()
|
look[alt] = NewIntervalSet()
|
||||||
lookBusy := NewSet(nil, nil)
|
lookBusy := NewArray2DHashSet(nil, nil)
|
||||||
seeThruPreds := false // fail to get lookahead upon pred
|
seeThruPreds := false // fail to get lookahead upon pred
|
||||||
la.look1(s.GetTransitions()[alt].getTarget(), nil, BasePredictionContextEMPTY, look[alt], lookBusy, NewBitSet(), seeThruPreds, false)
|
la.look1(s.GetTransitions()[alt].getTarget(), nil, BasePredictionContextEMPTY, look[alt], lookBusy, NewBitSet(), seeThruPreds, false)
|
||||||
// Wipe out lookahead for la alternative if we found nothing
|
// Wipe out lookahead for la alternative if we found nothing
|
||||||
@ -75,7 +75,7 @@ func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet
|
|||||||
if ctx != nil {
|
if ctx != nil {
|
||||||
lookContext = predictionContextFromRuleContext(s.GetATN(), ctx)
|
lookContext = predictionContextFromRuleContext(s.GetATN(), ctx)
|
||||||
}
|
}
|
||||||
la.look1(s, stopState, lookContext, r, NewSet(nil, nil), NewBitSet(), seeThruPreds, true)
|
la.look1(s, stopState, lookContext, r, NewArray2DHashSet(nil, nil), NewBitSet(), seeThruPreds, true)
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,22 +109,22 @@ func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet
|
|||||||
// outermost context is reached. This parameter has no effect if {@code ctx}
|
// outermost context is reached. This parameter has no effect if {@code ctx}
|
||||||
// is {@code nil}.
|
// is {@code nil}.
|
||||||
|
|
||||||
func (la *LL1Analyzer) look2(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, i int) {
|
func (la *LL1Analyzer) look2(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, i int) {
|
||||||
|
|
||||||
returnState := la.atn.states[ctx.getReturnState(i)]
|
returnState := la.atn.states[ctx.getReturnState(i)]
|
||||||
la.look1(returnState, stopState, ctx.GetParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
|
la.look1(returnState, stopState, ctx.GetParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool) {
|
func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool) {
|
||||||
|
|
||||||
c := NewBaseATNConfig6(s, 0, ctx)
|
c := NewBaseATNConfig6(s, 0, ctx)
|
||||||
|
|
||||||
if lookBusy.contains(c) {
|
if lookBusy.Contains(c) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
lookBusy.add(c)
|
lookBusy.Add(c)
|
||||||
|
|
||||||
if s == stopState {
|
if s == stopState {
|
||||||
if ctx == nil {
|
if ctx == nil {
|
||||||
@ -148,13 +148,13 @@ func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ctx != BasePredictionContextEMPTY {
|
if ctx != BasePredictionContextEMPTY {
|
||||||
removed := calledRuleStack.contains(s.GetRuleIndex())
|
removed := calledRuleStack.contains(s.GetRuleIndex())
|
||||||
defer func() {
|
defer func() {
|
||||||
if removed {
|
if removed {
|
||||||
calledRuleStack.add(s.GetRuleIndex())
|
calledRuleStack.add(s.GetRuleIndex())
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
calledRuleStack.remove(s.GetRuleIndex())
|
calledRuleStack.remove(s.GetRuleIndex())
|
||||||
// run thru all possible stack tops in ctx
|
// run thru all possible stack tops in ctx
|
||||||
for i := 0; i < ctx.length(); i++ {
|
for i := 0; i < ctx.length(); i++ {
|
||||||
returnState := la.atn.states[ctx.getReturnState(i)]
|
returnState := la.atn.states[ctx.getReturnState(i)]
|
||||||
@ -198,7 +198,7 @@ func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (la *LL1Analyzer) look3(stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, t1 *RuleTransition) {
|
func (la *LL1Analyzer) look3(stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, t1 *RuleTransition) {
|
||||||
|
|
||||||
newContext := SingletonBasePredictionContextCreate(ctx, t1.followState.GetStateNumber())
|
newContext := SingletonBasePredictionContextCreate(ctx, t1.followState.GetStateNumber())
|
||||||
|
|
||||||
|
205
vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go
generated
vendored
205
vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go
generated
vendored
@ -15,6 +15,7 @@ var (
|
|||||||
ParserATNSimulatorListATNDecisions = false
|
ParserATNSimulatorListATNDecisions = false
|
||||||
ParserATNSimulatorDFADebug = false
|
ParserATNSimulatorDFADebug = false
|
||||||
ParserATNSimulatorRetryDebug = false
|
ParserATNSimulatorRetryDebug = false
|
||||||
|
TurnOffLRLoopEntryBranchOpt = false
|
||||||
)
|
)
|
||||||
|
|
||||||
type ParserATNSimulator struct {
|
type ParserATNSimulator struct {
|
||||||
@ -135,6 +136,7 @@ func (p *ParserATNSimulator) AdaptivePredict(input TokenStream, decision int, ou
|
|||||||
// appropriate start state for the precedence level rather
|
// appropriate start state for the precedence level rather
|
||||||
// than simply setting DFA.s0.
|
// than simply setting DFA.s0.
|
||||||
//
|
//
|
||||||
|
dfa.s0.configs = s0Closure
|
||||||
s0Closure = p.applyPrecedenceFilter(s0Closure)
|
s0Closure = p.applyPrecedenceFilter(s0Closure)
|
||||||
s0 = p.addDFAState(dfa, NewDFAState(-1, s0Closure))
|
s0 = p.addDFAState(dfa, NewDFAState(-1, s0Closure))
|
||||||
dfa.setPrecedenceStartState(p.parser.GetPrecedence(), s0)
|
dfa.setPrecedenceStartState(p.parser.GetPrecedence(), s0)
|
||||||
@ -259,11 +261,13 @@ func (p *ParserATNSimulator) execATN(dfa *DFA, s0 *DFAState, input TokenStream,
|
|||||||
stopIndex := input.Index()
|
stopIndex := input.Index()
|
||||||
input.Seek(startIndex)
|
input.Seek(startIndex)
|
||||||
alts := p.evalSemanticContext(D.predicates, outerContext, true)
|
alts := p.evalSemanticContext(D.predicates, outerContext, true)
|
||||||
if alts.length() == 0 {
|
|
||||||
|
switch alts.length() {
|
||||||
|
case 0:
|
||||||
panic(p.noViableAlt(input, outerContext, D.configs, startIndex))
|
panic(p.noViableAlt(input, outerContext, D.configs, startIndex))
|
||||||
} else if alts.length() == 1 {
|
case 1:
|
||||||
return alts.minValue()
|
return alts.minValue()
|
||||||
} else {
|
default:
|
||||||
// Report ambiguity after predicate evaluation to make sure the correct set of ambig alts is Reported.
|
// Report ambiguity after predicate evaluation to make sure the correct set of ambig alts is Reported.
|
||||||
p.ReportAmbiguity(dfa, D, startIndex, stopIndex, false, alts, D.configs)
|
p.ReportAmbiguity(dfa, D, startIndex, stopIndex, false, alts, D.configs)
|
||||||
return alts.minValue()
|
return alts.minValue()
|
||||||
@ -292,11 +296,11 @@ func (p *ParserATNSimulator) execATN(dfa *DFA, s0 *DFAState, input TokenStream,
|
|||||||
|
|
||||||
func (p *ParserATNSimulator) getExistingTargetState(previousD *DFAState, t int) *DFAState {
|
func (p *ParserATNSimulator) getExistingTargetState(previousD *DFAState, t int) *DFAState {
|
||||||
edges := previousD.getEdges()
|
edges := previousD.getEdges()
|
||||||
if edges == nil {
|
if edges == nil || t+1 < 0 || t+1 >= len(edges) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return previousD.getIthEdge(t+1)
|
return previousD.getIthEdge(t + 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute a target state for an edge in the DFA, and attempt to add the
|
// Compute a target state for an edge in the DFA, and attempt to add the
|
||||||
@ -422,7 +426,8 @@ func (p *ParserATNSimulator) execATNWithFullContext(dfa *DFA, D *DFAState, s0 AT
|
|||||||
if reach.GetUniqueAlt() != ATNInvalidAltNumber {
|
if reach.GetUniqueAlt() != ATNInvalidAltNumber {
|
||||||
predictedAlt = reach.GetUniqueAlt()
|
predictedAlt = reach.GetUniqueAlt()
|
||||||
break
|
break
|
||||||
} else if p.predictionMode != PredictionModeLLExactAmbigDetection {
|
}
|
||||||
|
if p.predictionMode != PredictionModeLLExactAmbigDetection {
|
||||||
predictedAlt = PredictionModeresolvesToJustOneViableAlt(altSubSets)
|
predictedAlt = PredictionModeresolvesToJustOneViableAlt(altSubSets)
|
||||||
if predictedAlt != ATNInvalidAltNumber {
|
if predictedAlt != ATNInvalidAltNumber {
|
||||||
break
|
break
|
||||||
@ -479,7 +484,7 @@ func (p *ParserATNSimulator) execATNWithFullContext(dfa *DFA, D *DFAState, s0 AT
|
|||||||
// the fact that we should predict alternative 1. We just can't say for
|
// the fact that we should predict alternative 1. We just can't say for
|
||||||
// sure that there is an ambiguity without looking further.
|
// sure that there is an ambiguity without looking further.
|
||||||
|
|
||||||
p.ReportAmbiguity(dfa, D, startIndex, input.Index(), foundExactAmbig, nil, reach)
|
p.ReportAmbiguity(dfa, D, startIndex, input.Index(), foundExactAmbig, reach.Alts(), reach)
|
||||||
|
|
||||||
return predictedAlt
|
return predictedAlt
|
||||||
}
|
}
|
||||||
@ -503,7 +508,7 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
|
|||||||
// ensure that the alternative Matching the longest overall sequence is
|
// ensure that the alternative Matching the longest overall sequence is
|
||||||
// chosen when multiple such configurations can Match the input.
|
// chosen when multiple such configurations can Match the input.
|
||||||
|
|
||||||
var SkippedStopStates []*BaseATNConfig
|
var skippedStopStates []*BaseATNConfig
|
||||||
|
|
||||||
// First figure out where we can reach on input t
|
// First figure out where we can reach on input t
|
||||||
for _, c := range closure.GetItems() {
|
for _, c := range closure.GetItems() {
|
||||||
@ -511,14 +516,9 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
|
|||||||
fmt.Println("testing " + p.GetTokenName(t) + " at " + c.String())
|
fmt.Println("testing " + p.GetTokenName(t) + " at " + c.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
_, ok := c.GetState().(*RuleStopState)
|
if _, ok := c.GetState().(*RuleStopState); ok {
|
||||||
|
|
||||||
if ok {
|
|
||||||
if fullCtx || t == TokenEOF {
|
if fullCtx || t == TokenEOF {
|
||||||
if SkippedStopStates == nil {
|
skippedStopStates = append(skippedStopStates, c.(*BaseATNConfig))
|
||||||
SkippedStopStates = make([]*BaseATNConfig, 0)
|
|
||||||
}
|
|
||||||
SkippedStopStates = append(SkippedStopStates, c.(*BaseATNConfig))
|
|
||||||
if ParserATNSimulatorDebug {
|
if ParserATNSimulatorDebug {
|
||||||
fmt.Println("added " + c.String() + " to SkippedStopStates")
|
fmt.Println("added " + c.String() + " to SkippedStopStates")
|
||||||
}
|
}
|
||||||
@ -526,8 +526,7 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
for j := 0; j < len(c.GetState().GetTransitions()); j++ {
|
for _, trans := range c.GetState().GetTransitions() {
|
||||||
trans := c.GetState().GetTransitions()[j]
|
|
||||||
target := p.getReachableTarget(trans, t)
|
target := p.getReachableTarget(trans, t)
|
||||||
if target != nil {
|
if target != nil {
|
||||||
cfg := NewBaseATNConfig4(c, target)
|
cfg := NewBaseATNConfig4(c, target)
|
||||||
@ -538,6 +537,7 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now figure out where the reach operation can take us...
|
// Now figure out where the reach operation can take us...
|
||||||
var reach ATNConfigSet
|
var reach ATNConfigSet
|
||||||
|
|
||||||
@ -550,7 +550,7 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
|
|||||||
// condition is not true when one or more configurations have been
|
// condition is not true when one or more configurations have been
|
||||||
// withheld in SkippedStopStates, or when the current symbol is EOF.
|
// withheld in SkippedStopStates, or when the current symbol is EOF.
|
||||||
//
|
//
|
||||||
if SkippedStopStates == nil && t != TokenEOF {
|
if skippedStopStates == nil && t != TokenEOF {
|
||||||
if len(intermediate.configs) == 1 {
|
if len(intermediate.configs) == 1 {
|
||||||
// Don't pursue the closure if there is just one state.
|
// Don't pursue the closure if there is just one state.
|
||||||
// It can only have one alternative just add to result
|
// It can only have one alternative just add to result
|
||||||
@ -568,9 +568,10 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
|
|||||||
//
|
//
|
||||||
if reach == nil {
|
if reach == nil {
|
||||||
reach = NewBaseATNConfigSet(fullCtx)
|
reach = NewBaseATNConfigSet(fullCtx)
|
||||||
closureBusy := NewSet(nil, nil)
|
closureBusy := NewArray2DHashSet(nil, nil)
|
||||||
treatEOFAsEpsilon := t == TokenEOF
|
treatEOFAsEpsilon := t == TokenEOF
|
||||||
for k := 0; k < len(intermediate.configs); k++ {
|
amount := len(intermediate.configs)
|
||||||
|
for k := 0; k < amount; k++ {
|
||||||
p.closure(intermediate.configs[k], reach, closureBusy, false, fullCtx, treatEOFAsEpsilon)
|
p.closure(intermediate.configs[k], reach, closureBusy, false, fullCtx, treatEOFAsEpsilon)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -602,9 +603,9 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
|
|||||||
// chooses an alternative Matching the longest overall sequence when
|
// chooses an alternative Matching the longest overall sequence when
|
||||||
// multiple alternatives are viable.
|
// multiple alternatives are viable.
|
||||||
//
|
//
|
||||||
if SkippedStopStates != nil && ((!fullCtx) || (!PredictionModehasConfigInRuleStopState(reach))) {
|
if skippedStopStates != nil && ((!fullCtx) || (!PredictionModehasConfigInRuleStopState(reach))) {
|
||||||
for l := 0; l < len(SkippedStopStates); l++ {
|
for l := 0; l < len(skippedStopStates); l++ {
|
||||||
reach.Add(SkippedStopStates[l], p.mergeCache)
|
reach.Add(skippedStopStates[l], p.mergeCache)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(reach.GetItems()) == 0 {
|
if len(reach.GetItems()) == 0 {
|
||||||
@ -640,10 +641,7 @@ func (p *ParserATNSimulator) removeAllConfigsNotInRuleStopState(configs ATNConfi
|
|||||||
}
|
}
|
||||||
result := NewBaseATNConfigSet(configs.FullContext())
|
result := NewBaseATNConfigSet(configs.FullContext())
|
||||||
for _, config := range configs.GetItems() {
|
for _, config := range configs.GetItems() {
|
||||||
|
if _, ok := config.GetState().(*RuleStopState); ok {
|
||||||
_, ok := config.GetState().(*RuleStopState)
|
|
||||||
|
|
||||||
if ok {
|
|
||||||
result.Add(config, p.mergeCache)
|
result.Add(config, p.mergeCache)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -665,7 +663,7 @@ func (p *ParserATNSimulator) computeStartState(a ATNState, ctx RuleContext, full
|
|||||||
for i := 0; i < len(a.GetTransitions()); i++ {
|
for i := 0; i < len(a.GetTransitions()); i++ {
|
||||||
target := a.GetTransitions()[i].getTarget()
|
target := a.GetTransitions()[i].getTarget()
|
||||||
c := NewBaseATNConfig6(target, i+1, initialContext)
|
c := NewBaseATNConfig6(target, i+1, initialContext)
|
||||||
closureBusy := NewSet(nil, nil)
|
closureBusy := NewArray2DHashSet(nil, nil)
|
||||||
p.closure(c, configs, closureBusy, true, fullCtx, false)
|
p.closure(c, configs, closureBusy, true, fullCtx, false)
|
||||||
}
|
}
|
||||||
return configs
|
return configs
|
||||||
@ -787,7 +785,7 @@ func (p *ParserATNSimulator) getPredsForAmbigAlts(ambigAlts *BitSet, configs ATN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
nPredAlts := 0
|
nPredAlts := 0
|
||||||
for i := 1; i < nalts+1; i++ {
|
for i := 1; i <= nalts; i++ {
|
||||||
pred := altToPred[i]
|
pred := altToPred[i]
|
||||||
if pred == nil {
|
if pred == nil {
|
||||||
altToPred[i] = SemanticContextNone
|
altToPred[i] = SemanticContextNone
|
||||||
@ -972,14 +970,13 @@ func (p *ParserATNSimulator) evalSemanticContext(predPredictions []*PredPredicti
|
|||||||
return predictions
|
return predictions
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ParserATNSimulator) closure(config ATNConfig, configs ATNConfigSet, closureBusy *Set, collectPredicates, fullCtx, treatEOFAsEpsilon bool) {
|
func (p *ParserATNSimulator) closure(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx, treatEOFAsEpsilon bool) {
|
||||||
initialDepth := 0
|
initialDepth := 0
|
||||||
p.closureCheckingStopState(config, configs, closureBusy, collectPredicates,
|
p.closureCheckingStopState(config, configs, closureBusy, collectPredicates,
|
||||||
fullCtx, initialDepth, treatEOFAsEpsilon)
|
fullCtx, initialDepth, treatEOFAsEpsilon)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs ATNConfigSet, closureBusy *Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
|
func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
|
||||||
|
|
||||||
if ParserATNSimulatorDebug {
|
if ParserATNSimulatorDebug {
|
||||||
fmt.Println("closure(" + config.String() + ")")
|
fmt.Println("closure(" + config.String() + ")")
|
||||||
fmt.Println("configs(" + configs.String() + ")")
|
fmt.Println("configs(" + configs.String() + ")")
|
||||||
@ -988,8 +985,7 @@ func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_, ok := config.GetState().(*RuleStopState)
|
if _, ok := config.GetState().(*RuleStopState); ok {
|
||||||
if ok {
|
|
||||||
// We hit rule end. If we have context info, use it
|
// We hit rule end. If we have context info, use it
|
||||||
// run thru all possible stack tops in ctx
|
// run thru all possible stack tops in ctx
|
||||||
if !config.GetContext().isEmpty() {
|
if !config.GetContext().isEmpty() {
|
||||||
@ -1033,7 +1029,7 @@ func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Do the actual work of walking epsilon edges//
|
// Do the actual work of walking epsilon edges//
|
||||||
func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet, closureBusy *Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
|
func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
|
||||||
state := config.GetState()
|
state := config.GetState()
|
||||||
// optimization
|
// optimization
|
||||||
if !state.GetEpsilonOnlyTransitions() {
|
if !state.GetEpsilonOnlyTransitions() {
|
||||||
@ -1042,30 +1038,24 @@ func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet,
|
|||||||
// both epsilon transitions and non-epsilon transitions.
|
// both epsilon transitions and non-epsilon transitions.
|
||||||
}
|
}
|
||||||
for i := 0; i < len(state.GetTransitions()); i++ {
|
for i := 0; i < len(state.GetTransitions()); i++ {
|
||||||
|
if i == 0 && p.canDropLoopEntryEdgeInLeftRecursiveRule(config) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
t := state.GetTransitions()[i]
|
t := state.GetTransitions()[i]
|
||||||
_, ok := t.(*ActionTransition)
|
_, ok := t.(*ActionTransition)
|
||||||
continueCollecting := collectPredicates && !ok
|
continueCollecting := collectPredicates && !ok
|
||||||
c := p.getEpsilonTarget(config, t, continueCollecting, depth == 0, fullCtx, treatEOFAsEpsilon)
|
c := p.getEpsilonTarget(config, t, continueCollecting, depth == 0, fullCtx, treatEOFAsEpsilon)
|
||||||
if ci, ok := c.(*BaseATNConfig); ok && ci != nil {
|
if ci, ok := c.(*BaseATNConfig); ok && ci != nil {
|
||||||
if !t.getIsEpsilon() && closureBusy.add(c) != c {
|
|
||||||
// avoid infinite recursion for EOF* and EOF+
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
newDepth := depth
|
newDepth := depth
|
||||||
|
|
||||||
if _, ok := config.GetState().(*RuleStopState); ok {
|
if _, ok := config.GetState().(*RuleStopState); ok {
|
||||||
|
|
||||||
// target fell off end of rule mark resulting c as having dipped into outer context
|
// target fell off end of rule mark resulting c as having dipped into outer context
|
||||||
// We can't get here if incoming config was rule stop and we had context
|
// We can't get here if incoming config was rule stop and we had context
|
||||||
// track how far we dip into outer context. Might
|
// track how far we dip into outer context. Might
|
||||||
// come in handy and we avoid evaluating context dependent
|
// come in handy and we avoid evaluating context dependent
|
||||||
// preds if p is > 0.
|
// preds if p is > 0.
|
||||||
|
|
||||||
if closureBusy.add(c) != c {
|
|
||||||
// avoid infinite recursion for right-recursive rules
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if p.dfa != nil && p.dfa.getPrecedenceDfa() {
|
if p.dfa != nil && p.dfa.getPrecedenceDfa() {
|
||||||
if t.(*EpsilonTransition).outermostPrecedenceReturn == p.dfa.atnStartState.GetRuleIndex() {
|
if t.(*EpsilonTransition).outermostPrecedenceReturn == p.dfa.atnStartState.GetRuleIndex() {
|
||||||
c.setPrecedenceFilterSuppressed(true)
|
c.setPrecedenceFilterSuppressed(true)
|
||||||
@ -1073,15 +1063,27 @@ func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet,
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.SetReachesIntoOuterContext(c.GetReachesIntoOuterContext() + 1)
|
c.SetReachesIntoOuterContext(c.GetReachesIntoOuterContext() + 1)
|
||||||
|
|
||||||
|
if closureBusy.Add(c) != c {
|
||||||
|
// avoid infinite recursion for right-recursive rules
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
configs.SetDipsIntoOuterContext(true) // TODO: can remove? only care when we add to set per middle of p method
|
configs.SetDipsIntoOuterContext(true) // TODO: can remove? only care when we add to set per middle of p method
|
||||||
newDepth--
|
newDepth--
|
||||||
if ParserATNSimulatorDebug {
|
if ParserATNSimulatorDebug {
|
||||||
fmt.Println("dips into outer ctx: " + c.String())
|
fmt.Println("dips into outer ctx: " + c.String())
|
||||||
}
|
}
|
||||||
} else if _, ok := t.(*RuleTransition); ok {
|
} else {
|
||||||
// latch when newDepth goes negative - once we step out of the entry context we can't return
|
if !t.getIsEpsilon() && closureBusy.Add(c) != c {
|
||||||
if newDepth >= 0 {
|
// avoid infinite recursion for EOF* and EOF+
|
||||||
newDepth++
|
continue
|
||||||
|
}
|
||||||
|
if _, ok := t.(*RuleTransition); ok {
|
||||||
|
// latch when newDepth goes negative - once we step out of the entry context we can't return
|
||||||
|
if newDepth >= 0 {
|
||||||
|
newDepth++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p.closureCheckingStopState(c, configs, closureBusy, continueCollecting, fullCtx, newDepth, treatEOFAsEpsilon)
|
p.closureCheckingStopState(c, configs, closureBusy, continueCollecting, fullCtx, newDepth, treatEOFAsEpsilon)
|
||||||
@ -1089,12 +1091,93 @@ func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *ParserATNSimulator) canDropLoopEntryEdgeInLeftRecursiveRule(config ATNConfig) bool {
|
||||||
|
if TurnOffLRLoopEntryBranchOpt {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
_p := config.GetState()
|
||||||
|
|
||||||
|
// First check to see if we are in StarLoopEntryState generated during
|
||||||
|
// left-recursion elimination. For efficiency, also check if
|
||||||
|
// the context has an empty stack case. If so, it would mean
|
||||||
|
// global FOLLOW so we can't perform optimization
|
||||||
|
if startLoop, ok := _p.(StarLoopEntryState); !ok || !startLoop.precedenceRuleDecision || config.GetContext().isEmpty() || config.GetContext().hasEmptyPath() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Require all return states to return back to the same rule
|
||||||
|
// that p is in.
|
||||||
|
numCtxs := config.GetContext().length()
|
||||||
|
for i := 0; i < numCtxs; i++ {
|
||||||
|
returnState := p.atn.states[config.GetContext().getReturnState(i)]
|
||||||
|
if returnState.GetRuleIndex() != _p.GetRuleIndex() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
decisionStartState := _p.(BlockStartState).GetTransitions()[0].getTarget().(BlockStartState)
|
||||||
|
blockEndStateNum := decisionStartState.getEndState().stateNumber
|
||||||
|
blockEndState := p.atn.states[blockEndStateNum].(*BlockEndState)
|
||||||
|
|
||||||
|
// Verify that the top of each stack context leads to loop entry/exit
|
||||||
|
// state through epsilon edges and w/o leaving rule.
|
||||||
|
|
||||||
|
for i := 0; i < numCtxs; i++ { // for each stack context
|
||||||
|
returnStateNumber := config.GetContext().getReturnState(i)
|
||||||
|
returnState := p.atn.states[returnStateNumber]
|
||||||
|
|
||||||
|
// all states must have single outgoing epsilon edge
|
||||||
|
if len(returnState.GetTransitions()) != 1 || !returnState.GetTransitions()[0].getIsEpsilon() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for prefix op case like 'not expr', (' type ')' expr
|
||||||
|
returnStateTarget := returnState.GetTransitions()[0].getTarget()
|
||||||
|
if returnState.GetStateType() == ATNStateBlockEnd && returnStateTarget == _p {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for 'expr op expr' or case where expr's return state is block end
|
||||||
|
// of (...)* internal block; the block end points to loop back
|
||||||
|
// which points to p but we don't need to check that
|
||||||
|
if returnState == blockEndState {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for ternary expr ? expr : expr. The return state points at block end,
|
||||||
|
// which points at loop entry state
|
||||||
|
if returnStateTarget == blockEndState {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Look for complex prefix 'between expr and expr' case where 2nd expr's
|
||||||
|
// return state points at block end state of (...)* internal block
|
||||||
|
if returnStateTarget.GetStateType() == ATNStateBlockEnd &&
|
||||||
|
len(returnStateTarget.GetTransitions()) == 1 &&
|
||||||
|
returnStateTarget.GetTransitions()[0].getIsEpsilon() &&
|
||||||
|
returnStateTarget.GetTransitions()[0].getTarget() == _p {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// anything else ain't conforming
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func (p *ParserATNSimulator) getRuleName(index int) string {
|
func (p *ParserATNSimulator) getRuleName(index int) string {
|
||||||
if p.parser != nil && index >= 0 {
|
if p.parser != nil && index >= 0 {
|
||||||
return p.parser.GetRuleNames()[index]
|
return p.parser.GetRuleNames()[index]
|
||||||
}
|
}
|
||||||
|
var sb strings.Builder
|
||||||
|
sb.Grow(32)
|
||||||
|
|
||||||
return "<rule " + fmt.Sprint(index) + ">"
|
sb.WriteString("<rule ")
|
||||||
|
sb.WriteString(strconv.FormatInt(int64(index), 10))
|
||||||
|
sb.WriteByte('>')
|
||||||
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ParserATNSimulator) getEpsilonTarget(config ATNConfig, t Transition, collectPredicates, inContext, fullCtx, treatEOFAsEpsilon bool) ATNConfig {
|
func (p *ParserATNSimulator) getEpsilonTarget(config ATNConfig, t Transition, collectPredicates, inContext, fullCtx, treatEOFAsEpsilon bool) ATNConfig {
|
||||||
@ -1110,25 +1193,7 @@ func (p *ParserATNSimulator) getEpsilonTarget(config ATNConfig, t Transition, co
|
|||||||
return p.actionTransition(config, t.(*ActionTransition))
|
return p.actionTransition(config, t.(*ActionTransition))
|
||||||
case TransitionEPSILON:
|
case TransitionEPSILON:
|
||||||
return NewBaseATNConfig4(config, t.getTarget())
|
return NewBaseATNConfig4(config, t.getTarget())
|
||||||
case TransitionATOM:
|
case TransitionATOM, TransitionRANGE, TransitionSET:
|
||||||
// EOF transitions act like epsilon transitions after the first EOF
|
|
||||||
// transition is traversed
|
|
||||||
if treatEOFAsEpsilon {
|
|
||||||
if t.Matches(TokenEOF, 0, 1) {
|
|
||||||
return NewBaseATNConfig4(config, t.getTarget())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
case TransitionRANGE:
|
|
||||||
// EOF transitions act like epsilon transitions after the first EOF
|
|
||||||
// transition is traversed
|
|
||||||
if treatEOFAsEpsilon {
|
|
||||||
if t.Matches(TokenEOF, 0, 1) {
|
|
||||||
return NewBaseATNConfig4(config, t.getTarget())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
case TransitionSET:
|
|
||||||
// EOF transitions act like epsilon transitions after the first EOF
|
// EOF transitions act like epsilon transitions after the first EOF
|
||||||
// transition is traversed
|
// transition is traversed
|
||||||
if treatEOFAsEpsilon {
|
if treatEOFAsEpsilon {
|
||||||
@ -1196,7 +1261,7 @@ func (p *ParserATNSimulator) predTransition(config ATNConfig, pt *PredicateTrans
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var c *BaseATNConfig
|
var c *BaseATNConfig
|
||||||
if collectPredicates && ((pt.isCtxDependent && inContext) || !pt.isCtxDependent) {
|
if collectPredicates && (!pt.isCtxDependent || inContext) {
|
||||||
if fullCtx {
|
if fullCtx {
|
||||||
// In full context mode, we can evaluate predicates on-the-fly
|
// In full context mode, we can evaluate predicates on-the-fly
|
||||||
// during closure, which dramatically reduces the size of
|
// during closure, which dramatically reduces the size of
|
||||||
|
63
vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go
generated
vendored
63
vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go
generated
vendored
@ -58,9 +58,15 @@ func calculateHash(parent PredictionContext, returnState int) int {
|
|||||||
return murmurFinish(h, 2)
|
return murmurFinish(h, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _emptyPredictionContextHash int
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
_emptyPredictionContextHash = murmurInit(1)
|
||||||
|
_emptyPredictionContextHash = murmurFinish(_emptyPredictionContextHash, 0)
|
||||||
|
}
|
||||||
|
|
||||||
func calculateEmptyHash() int {
|
func calculateEmptyHash() int {
|
||||||
h := murmurInit(1)
|
return _emptyPredictionContextHash
|
||||||
return murmurFinish(h, 0)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used to cache {@link BasePredictionContext} objects. Its used for the shared
|
// Used to cache {@link BasePredictionContext} objects. Its used for the shared
|
||||||
@ -113,15 +119,15 @@ type BaseSingletonPredictionContext struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewBaseSingletonPredictionContext(parent PredictionContext, returnState int) *BaseSingletonPredictionContext {
|
func NewBaseSingletonPredictionContext(parent PredictionContext, returnState int) *BaseSingletonPredictionContext {
|
||||||
|
var cachedHash int
|
||||||
|
if parent != nil {
|
||||||
|
cachedHash = calculateHash(parent, returnState)
|
||||||
|
} else {
|
||||||
|
cachedHash = calculateEmptyHash()
|
||||||
|
}
|
||||||
|
|
||||||
s := new(BaseSingletonPredictionContext)
|
s := new(BaseSingletonPredictionContext)
|
||||||
s.BasePredictionContext = NewBasePredictionContext(37)
|
s.BasePredictionContext = NewBasePredictionContext(cachedHash)
|
||||||
|
|
||||||
if parent != nil {
|
|
||||||
s.cachedHash = calculateHash(parent, returnState)
|
|
||||||
} else {
|
|
||||||
s.cachedHash = calculateEmptyHash()
|
|
||||||
}
|
|
||||||
|
|
||||||
s.parentCtx = parent
|
s.parentCtx = parent
|
||||||
s.returnState = returnState
|
s.returnState = returnState
|
||||||
@ -175,15 +181,7 @@ func (b *BaseSingletonPredictionContext) equals(other PredictionContext) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseSingletonPredictionContext) hash() int {
|
func (b *BaseSingletonPredictionContext) hash() int {
|
||||||
h := murmurInit(1)
|
return b.cachedHash
|
||||||
|
|
||||||
if b.parentCtx == nil {
|
|
||||||
return murmurFinish(h, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
h = murmurUpdate(h, b.parentCtx.hash())
|
|
||||||
h = murmurUpdate(h, b.returnState)
|
|
||||||
return murmurFinish(h, 2)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseSingletonPredictionContext) String() string {
|
func (b *BaseSingletonPredictionContext) String() string {
|
||||||
@ -253,13 +251,20 @@ func NewArrayPredictionContext(parents []PredictionContext, returnStates []int)
|
|||||||
// from {@link //EMPTY} and non-empty. We merge {@link //EMPTY} by using
|
// from {@link //EMPTY} and non-empty. We merge {@link //EMPTY} by using
|
||||||
// nil parent and
|
// nil parent and
|
||||||
// returnState == {@link //EmptyReturnState}.
|
// returnState == {@link //EmptyReturnState}.
|
||||||
|
hash := murmurInit(1)
|
||||||
|
|
||||||
|
for _, parent := range parents {
|
||||||
|
hash = murmurUpdate(hash, parent.hash())
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, returnState := range returnStates {
|
||||||
|
hash = murmurUpdate(hash, returnState)
|
||||||
|
}
|
||||||
|
|
||||||
|
hash = murmurFinish(hash, len(parents)<<1)
|
||||||
|
|
||||||
c := new(ArrayPredictionContext)
|
c := new(ArrayPredictionContext)
|
||||||
c.BasePredictionContext = NewBasePredictionContext(37)
|
c.BasePredictionContext = NewBasePredictionContext(hash)
|
||||||
|
|
||||||
for i := range parents {
|
|
||||||
c.cachedHash += calculateHash(parents[i], returnStates[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
c.parents = parents
|
c.parents = parents
|
||||||
c.returnStates = returnStates
|
c.returnStates = returnStates
|
||||||
@ -305,17 +310,7 @@ func (a *ArrayPredictionContext) equals(other PredictionContext) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *ArrayPredictionContext) hash() int {
|
func (a *ArrayPredictionContext) hash() int {
|
||||||
h := murmurInit(1)
|
return a.BasePredictionContext.cachedHash
|
||||||
|
|
||||||
for _, p := range a.parents {
|
|
||||||
h = murmurUpdate(h, p.hash())
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, r := range a.returnStates {
|
|
||||||
h = murmurUpdate(h, r)
|
|
||||||
}
|
|
||||||
|
|
||||||
return murmurFinish(h, 2 * len(a.parents))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *ArrayPredictionContext) String() string {
|
func (a *ArrayPredictionContext) String() string {
|
||||||
|
2
vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go
generated
vendored
2
vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go
generated
vendored
@ -49,7 +49,7 @@ var tokenTypeMapCache = make(map[string]int)
|
|||||||
var ruleIndexMapCache = make(map[string]int)
|
var ruleIndexMapCache = make(map[string]int)
|
||||||
|
|
||||||
func (b *BaseRecognizer) checkVersion(toolVersion string) {
|
func (b *BaseRecognizer) checkVersion(toolVersion string) {
|
||||||
runtimeVersion := "4.9.2"
|
runtimeVersion := "4.9.3"
|
||||||
if runtimeVersion != toolVersion {
|
if runtimeVersion != toolVersion {
|
||||||
fmt.Println("ANTLR runtime and generated code versions disagree: " + runtimeVersion + "!=" + toolVersion)
|
fmt.Println("ANTLR runtime and generated code versions disagree: " + runtimeVersion + "!=" + toolVersion)
|
||||||
}
|
}
|
||||||
|
49
vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go
generated
vendored
49
vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go
generated
vendored
@ -108,7 +108,15 @@ func (p *Predicate) equals(other interface{}) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *Predicate) hash() int {
|
func (p *Predicate) hash() int {
|
||||||
return p.ruleIndex*43 + p.predIndex*47
|
h := murmurInit(0)
|
||||||
|
h = murmurUpdate(h, p.ruleIndex)
|
||||||
|
h = murmurUpdate(h, p.predIndex)
|
||||||
|
if p.isCtxDependent {
|
||||||
|
h = murmurUpdate(h, 1)
|
||||||
|
} else {
|
||||||
|
h = murmurUpdate(h, 0)
|
||||||
|
}
|
||||||
|
return murmurFinish(h, 3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Predicate) String() string {
|
func (p *Predicate) String() string {
|
||||||
@ -154,21 +162,24 @@ func (p *PrecedencePredicate) equals(other interface{}) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PrecedencePredicate) hash() int {
|
func (p *PrecedencePredicate) hash() int {
|
||||||
return p.precedence * 51
|
h := uint32(1)
|
||||||
|
h = 31*h + uint32(p.precedence)
|
||||||
|
return int(h)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PrecedencePredicate) String() string {
|
func (p *PrecedencePredicate) String() string {
|
||||||
return "{" + strconv.Itoa(p.precedence) + ">=prec}?"
|
return "{" + strconv.Itoa(p.precedence) + ">=prec}?"
|
||||||
}
|
}
|
||||||
|
|
||||||
func PrecedencePredicatefilterPrecedencePredicates(set *Set) []*PrecedencePredicate {
|
func PrecedencePredicatefilterPrecedencePredicates(set Set) []*PrecedencePredicate {
|
||||||
result := make([]*PrecedencePredicate, 0)
|
result := make([]*PrecedencePredicate, 0)
|
||||||
|
|
||||||
for _, v := range set.values() {
|
set.Each(func(v interface{}) bool {
|
||||||
if c2, ok := v.(*PrecedencePredicate); ok {
|
if c2, ok := v.(*PrecedencePredicate); ok {
|
||||||
result = append(result, c2)
|
result = append(result, c2)
|
||||||
}
|
}
|
||||||
}
|
return true
|
||||||
|
})
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
@ -182,21 +193,21 @@ type AND struct {
|
|||||||
|
|
||||||
func NewAND(a, b SemanticContext) *AND {
|
func NewAND(a, b SemanticContext) *AND {
|
||||||
|
|
||||||
operands := NewSet(nil, nil)
|
operands := NewArray2DHashSet(nil, nil)
|
||||||
if aa, ok := a.(*AND); ok {
|
if aa, ok := a.(*AND); ok {
|
||||||
for _, o := range aa.opnds {
|
for _, o := range aa.opnds {
|
||||||
operands.add(o)
|
operands.Add(o)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
operands.add(a)
|
operands.Add(a)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ba, ok := b.(*AND); ok {
|
if ba, ok := b.(*AND); ok {
|
||||||
for _, o := range ba.opnds {
|
for _, o := range ba.opnds {
|
||||||
operands.add(o)
|
operands.Add(o)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
operands.add(b)
|
operands.Add(b)
|
||||||
}
|
}
|
||||||
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
|
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
|
||||||
if len(precedencePredicates) > 0 {
|
if len(precedencePredicates) > 0 {
|
||||||
@ -209,10 +220,10 @@ func NewAND(a, b SemanticContext) *AND {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
operands.add(reduced)
|
operands.Add(reduced)
|
||||||
}
|
}
|
||||||
|
|
||||||
vs := operands.values()
|
vs := operands.Values()
|
||||||
opnds := make([]SemanticContext, len(vs))
|
opnds := make([]SemanticContext, len(vs))
|
||||||
for i, v := range vs {
|
for i, v := range vs {
|
||||||
opnds[i] = v.(SemanticContext)
|
opnds[i] = v.(SemanticContext)
|
||||||
@ -334,21 +345,21 @@ type OR struct {
|
|||||||
|
|
||||||
func NewOR(a, b SemanticContext) *OR {
|
func NewOR(a, b SemanticContext) *OR {
|
||||||
|
|
||||||
operands := NewSet(nil, nil)
|
operands := NewArray2DHashSet(nil, nil)
|
||||||
if aa, ok := a.(*OR); ok {
|
if aa, ok := a.(*OR); ok {
|
||||||
for _, o := range aa.opnds {
|
for _, o := range aa.opnds {
|
||||||
operands.add(o)
|
operands.Add(o)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
operands.add(a)
|
operands.Add(a)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ba, ok := b.(*OR); ok {
|
if ba, ok := b.(*OR); ok {
|
||||||
for _, o := range ba.opnds {
|
for _, o := range ba.opnds {
|
||||||
operands.add(o)
|
operands.Add(o)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
operands.add(b)
|
operands.Add(b)
|
||||||
}
|
}
|
||||||
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
|
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
|
||||||
if len(precedencePredicates) > 0 {
|
if len(precedencePredicates) > 0 {
|
||||||
@ -361,10 +372,10 @@ func NewOR(a, b SemanticContext) *OR {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
operands.add(reduced)
|
operands.Add(reduced)
|
||||||
}
|
}
|
||||||
|
|
||||||
vs := operands.values()
|
vs := operands.Values()
|
||||||
|
|
||||||
opnds := make([]SemanticContext, len(vs))
|
opnds := make([]SemanticContext, len(vs))
|
||||||
for i, v := range vs {
|
for i, v := range vs {
|
||||||
|
9
vendor/github.com/antlr/antlr4/runtime/Go/antlr/transition.go
generated
vendored
9
vendor/github.com/antlr/antlr4/runtime/Go/antlr/transition.go
generated
vendored
@ -7,6 +7,7 @@ package antlr
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// atom, set, epsilon, action, predicate, rule transitions.
|
// atom, set, epsilon, action, predicate, rule transitions.
|
||||||
@ -236,7 +237,13 @@ func (t *RangeTransition) Matches(symbol, minVocabSymbol, maxVocabSymbol int) bo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *RangeTransition) String() string {
|
func (t *RangeTransition) String() string {
|
||||||
return "'" + string(t.start) + "'..'" + string(t.stop) + "'"
|
var sb strings.Builder
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
sb.WriteRune(rune(t.start))
|
||||||
|
sb.WriteString("'..'")
|
||||||
|
sb.WriteRune(rune(t.stop))
|
||||||
|
sb.WriteByte('\'')
|
||||||
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
type AbstractPredicateTransition interface {
|
type AbstractPredicateTransition interface {
|
||||||
|
172
vendor/github.com/antlr/antlr4/runtime/Go/antlr/utils.go
generated
vendored
172
vendor/github.com/antlr/antlr4/runtime/Go/antlr/utils.go
generated
vendored
@ -47,35 +47,6 @@ func (s *IntStack) Push(e int) {
|
|||||||
*s = append(*s, e)
|
*s = append(*s, e)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Set struct {
|
|
||||||
data map[int][]interface{}
|
|
||||||
hashcodeFunction func(interface{}) int
|
|
||||||
equalsFunction func(interface{}, interface{}) bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewSet(
|
|
||||||
hashcodeFunction func(interface{}) int,
|
|
||||||
equalsFunction func(interface{}, interface{}) bool) *Set {
|
|
||||||
|
|
||||||
s := new(Set)
|
|
||||||
|
|
||||||
s.data = make(map[int][]interface{})
|
|
||||||
|
|
||||||
if hashcodeFunction != nil {
|
|
||||||
s.hashcodeFunction = hashcodeFunction
|
|
||||||
} else {
|
|
||||||
s.hashcodeFunction = standardHashFunction
|
|
||||||
}
|
|
||||||
|
|
||||||
if equalsFunction == nil {
|
|
||||||
s.equalsFunction = standardEqualsFunction
|
|
||||||
} else {
|
|
||||||
s.equalsFunction = equalsFunction
|
|
||||||
}
|
|
||||||
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
func standardEqualsFunction(a interface{}, b interface{}) bool {
|
func standardEqualsFunction(a interface{}, b interface{}) bool {
|
||||||
|
|
||||||
ac, oka := a.(comparable)
|
ac, oka := a.(comparable)
|
||||||
@ -100,72 +71,6 @@ type hasher interface {
|
|||||||
hash() int
|
hash() int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Set) length() int {
|
|
||||||
return len(s.data)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Set) add(value interface{}) interface{} {
|
|
||||||
|
|
||||||
key := s.hashcodeFunction(value)
|
|
||||||
|
|
||||||
values := s.data[key]
|
|
||||||
|
|
||||||
if s.data[key] != nil {
|
|
||||||
for i := 0; i < len(values); i++ {
|
|
||||||
if s.equalsFunction(value, values[i]) {
|
|
||||||
return values[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
s.data[key] = append(s.data[key], value)
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
v := make([]interface{}, 1, 10)
|
|
||||||
v[0] = value
|
|
||||||
s.data[key] = v
|
|
||||||
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Set) contains(value interface{}) bool {
|
|
||||||
|
|
||||||
key := s.hashcodeFunction(value)
|
|
||||||
|
|
||||||
values := s.data[key]
|
|
||||||
|
|
||||||
if s.data[key] != nil {
|
|
||||||
for i := 0; i < len(values); i++ {
|
|
||||||
if s.equalsFunction(value, values[i]) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Set) values() []interface{} {
|
|
||||||
var l []interface{}
|
|
||||||
|
|
||||||
for _, v := range s.data {
|
|
||||||
l = append(l, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
return l
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Set) String() string {
|
|
||||||
r := ""
|
|
||||||
|
|
||||||
for _, av := range s.data {
|
|
||||||
for _, v := range av {
|
|
||||||
r += fmt.Sprint(v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
type BitSet struct {
|
type BitSet struct {
|
||||||
data map[int]bool
|
data map[int]bool
|
||||||
}
|
}
|
||||||
@ -353,65 +258,38 @@ func PrintArrayJavaStyle(sa []string) string {
|
|||||||
return buffer.String()
|
return buffer.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
// The following routines were lifted from bits.rotate* available in Go 1.9.
|
|
||||||
|
|
||||||
const uintSize = 32 << (^uint(0) >> 32 & 1) // 32 or 64
|
|
||||||
|
|
||||||
// rotateLeft returns the value of x rotated left by (k mod UintSize) bits.
|
|
||||||
// To rotate x right by k bits, call RotateLeft(x, -k).
|
|
||||||
func rotateLeft(x uint, k int) uint {
|
|
||||||
if uintSize == 32 {
|
|
||||||
return uint(rotateLeft32(uint32(x), k))
|
|
||||||
}
|
|
||||||
return uint(rotateLeft64(uint64(x), k))
|
|
||||||
}
|
|
||||||
|
|
||||||
// rotateLeft32 returns the value of x rotated left by (k mod 32) bits.
|
|
||||||
func rotateLeft32(x uint32, k int) uint32 {
|
|
||||||
const n = 32
|
|
||||||
s := uint(k) & (n - 1)
|
|
||||||
return x<<s | x>>(n-s)
|
|
||||||
}
|
|
||||||
|
|
||||||
// rotateLeft64 returns the value of x rotated left by (k mod 64) bits.
|
|
||||||
func rotateLeft64(x uint64, k int) uint64 {
|
|
||||||
const n = 64
|
|
||||||
s := uint(k) & (n - 1)
|
|
||||||
return x<<s | x>>(n-s)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// murmur hash
|
// murmur hash
|
||||||
const (
|
|
||||||
c1_32 uint = 0xCC9E2D51
|
|
||||||
c2_32 uint = 0x1B873593
|
|
||||||
n1_32 uint = 0xE6546B64
|
|
||||||
)
|
|
||||||
|
|
||||||
func murmurInit(seed int) int {
|
func murmurInit(seed int) int {
|
||||||
return seed
|
return seed
|
||||||
}
|
}
|
||||||
|
|
||||||
func murmurUpdate(h1 int, k1 int) int {
|
func murmurUpdate(h int, value int) int {
|
||||||
var k1u uint
|
const c1 uint32 = 0xCC9E2D51
|
||||||
k1u = uint(k1) * c1_32
|
const c2 uint32 = 0x1B873593
|
||||||
k1u = rotateLeft(k1u, 15)
|
const r1 uint32 = 15
|
||||||
k1u *= c2_32
|
const r2 uint32 = 13
|
||||||
|
const m uint32 = 5
|
||||||
|
const n uint32 = 0xE6546B64
|
||||||
|
|
||||||
var h1u = uint(h1) ^ k1u
|
k := uint32(value)
|
||||||
k1u = rotateLeft(k1u, 13)
|
k *= c1
|
||||||
h1u = h1u*5 + 0xe6546b64
|
k = (k << r1) | (k >> (32 - r1))
|
||||||
return int(h1u)
|
k *= c2
|
||||||
|
|
||||||
|
hash := uint32(h) ^ k
|
||||||
|
hash = (hash << r2) | (hash >> (32 - r2))
|
||||||
|
hash = hash*m + n
|
||||||
|
return int(hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
func murmurFinish(h1 int, numberOfWords int) int {
|
func murmurFinish(h int, numberOfWords int) int {
|
||||||
var h1u uint = uint(h1)
|
var hash = uint32(h)
|
||||||
h1u ^= uint(numberOfWords * 4)
|
hash ^= uint32(numberOfWords) << 2
|
||||||
h1u ^= h1u >> 16
|
hash ^= hash >> 16
|
||||||
h1u *= uint(0x85ebca6b)
|
hash *= 0x85ebca6b
|
||||||
h1u ^= h1u >> 13
|
hash ^= hash >> 13
|
||||||
h1u *= 0xc2b2ae35
|
hash *= 0xc2b2ae35
|
||||||
h1u ^= h1u >> 16
|
hash ^= hash >> 16
|
||||||
|
|
||||||
return int(h1u)
|
return int(hash)
|
||||||
}
|
}
|
||||||
|
237
vendor/github.com/antlr/antlr4/runtime/Go/antlr/utils_set.go
generated
vendored
Normal file
237
vendor/github.com/antlr/antlr4/runtime/Go/antlr/utils_set.go
generated
vendored
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
package antlr
|
||||||
|
|
||||||
|
import "math"
|
||||||
|
|
||||||
|
const (
|
||||||
|
_initalCapacity = 16
|
||||||
|
_initalBucketCapacity = 8
|
||||||
|
_loadFactor = 0.75
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ Set = (*Array2DHashSet)(nil)
|
||||||
|
|
||||||
|
type Set interface {
|
||||||
|
Add(value interface{}) (added interface{})
|
||||||
|
Len() int
|
||||||
|
Get(value interface{}) (found interface{})
|
||||||
|
Contains(value interface{}) bool
|
||||||
|
Values() []interface{}
|
||||||
|
Each(f func(interface{}) bool)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Array2DHashSet struct {
|
||||||
|
buckets [][]interface{}
|
||||||
|
hashcodeFunction func(interface{}) int
|
||||||
|
equalsFunction func(interface{}, interface{}) bool
|
||||||
|
|
||||||
|
n int // How many elements in set
|
||||||
|
threshold int // when to expand
|
||||||
|
|
||||||
|
currentPrime int // jump by 4 primes each expand or whatever
|
||||||
|
initialBucketCapacity int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) Each(f func(interface{}) bool) {
|
||||||
|
if as.Len() < 1 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, bucket := range as.buckets {
|
||||||
|
for _, o := range bucket {
|
||||||
|
if o == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if !f(o) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) Values() []interface{} {
|
||||||
|
if as.Len() < 1 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
values := make([]interface{}, 0, as.Len())
|
||||||
|
as.Each(func(i interface{}) bool {
|
||||||
|
values = append(values, i)
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
return values
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) Contains(value interface{}) bool {
|
||||||
|
return as.Get(value) != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) Add(value interface{}) interface{} {
|
||||||
|
if as.n > as.threshold {
|
||||||
|
as.expand()
|
||||||
|
}
|
||||||
|
return as.innerAdd(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) expand() {
|
||||||
|
old := as.buckets
|
||||||
|
|
||||||
|
as.currentPrime += 4
|
||||||
|
|
||||||
|
var (
|
||||||
|
newCapacity = len(as.buckets) << 1
|
||||||
|
newTable = as.createBuckets(newCapacity)
|
||||||
|
newBucketLengths = make([]int, len(newTable))
|
||||||
|
)
|
||||||
|
|
||||||
|
as.buckets = newTable
|
||||||
|
as.threshold = int(float64(newCapacity) * _loadFactor)
|
||||||
|
|
||||||
|
for _, bucket := range old {
|
||||||
|
if bucket == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, o := range bucket {
|
||||||
|
if o == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
b := as.getBuckets(o)
|
||||||
|
bucketLength := newBucketLengths[b]
|
||||||
|
var newBucket []interface{}
|
||||||
|
if bucketLength == 0 {
|
||||||
|
// new bucket
|
||||||
|
newBucket = as.createBucket(as.initialBucketCapacity)
|
||||||
|
newTable[b] = newBucket
|
||||||
|
} else {
|
||||||
|
newBucket = newTable[b]
|
||||||
|
if bucketLength == len(newBucket) {
|
||||||
|
// expand
|
||||||
|
newBucketCopy := make([]interface{}, len(newBucket)<<1)
|
||||||
|
copy(newBucketCopy[:bucketLength], newBucket)
|
||||||
|
newBucket = newBucketCopy
|
||||||
|
newTable[b] = newBucket
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
newBucket[bucketLength] = o
|
||||||
|
newBucketLengths[b]++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) Len() int {
|
||||||
|
return as.n
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) Get(o interface{}) interface{} {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
b := as.getBuckets(o)
|
||||||
|
bucket := as.buckets[b]
|
||||||
|
if bucket == nil { // no bucket
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, e := range bucket {
|
||||||
|
if e == nil {
|
||||||
|
return nil // empty slot; not there
|
||||||
|
}
|
||||||
|
if as.equalsFunction(e, o) {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) innerAdd(o interface{}) interface{} {
|
||||||
|
b := as.getBuckets(o)
|
||||||
|
|
||||||
|
bucket := as.buckets[b]
|
||||||
|
|
||||||
|
// new bucket
|
||||||
|
if bucket == nil {
|
||||||
|
bucket = as.createBucket(as.initialBucketCapacity)
|
||||||
|
bucket[0] = o
|
||||||
|
|
||||||
|
as.buckets[b] = bucket
|
||||||
|
as.n++
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// look for it in bucket
|
||||||
|
for i := 0; i < len(bucket); i++ {
|
||||||
|
existing := bucket[i]
|
||||||
|
if existing == nil { // empty slot; not there, add.
|
||||||
|
bucket[i] = o
|
||||||
|
as.n++
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
if as.equalsFunction(existing, o) { // found existing, quit
|
||||||
|
return existing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// full bucket, expand and add to end
|
||||||
|
oldLength := len(bucket)
|
||||||
|
bucketCopy := make([]interface{}, oldLength<<1)
|
||||||
|
copy(bucketCopy[:oldLength], bucket)
|
||||||
|
bucket = bucketCopy
|
||||||
|
as.buckets[b] = bucket
|
||||||
|
bucket[oldLength] = o
|
||||||
|
as.n++
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) getBuckets(value interface{}) int {
|
||||||
|
hash := as.hashcodeFunction(value)
|
||||||
|
return hash & (len(as.buckets) - 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) createBuckets(cap int) [][]interface{} {
|
||||||
|
return make([][]interface{}, cap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (as *Array2DHashSet) createBucket(cap int) []interface{} {
|
||||||
|
return make([]interface{}, cap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewArray2DHashSetWithCap(
|
||||||
|
hashcodeFunction func(interface{}) int,
|
||||||
|
equalsFunction func(interface{}, interface{}) bool,
|
||||||
|
initCap int,
|
||||||
|
initBucketCap int,
|
||||||
|
) *Array2DHashSet {
|
||||||
|
if hashcodeFunction == nil {
|
||||||
|
hashcodeFunction = standardHashFunction
|
||||||
|
}
|
||||||
|
|
||||||
|
if equalsFunction == nil {
|
||||||
|
equalsFunction = standardEqualsFunction
|
||||||
|
}
|
||||||
|
|
||||||
|
ret := &Array2DHashSet{
|
||||||
|
hashcodeFunction: hashcodeFunction,
|
||||||
|
equalsFunction: equalsFunction,
|
||||||
|
|
||||||
|
n: 0,
|
||||||
|
threshold: int(math.Floor(_initalCapacity * _loadFactor)),
|
||||||
|
|
||||||
|
currentPrime: 1,
|
||||||
|
initialBucketCapacity: initBucketCap,
|
||||||
|
}
|
||||||
|
|
||||||
|
ret.buckets = ret.createBuckets(initCap)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewArray2DHashSet(
|
||||||
|
hashcodeFunction func(interface{}) int,
|
||||||
|
equalsFunction func(interface{}, interface{}) bool,
|
||||||
|
) *Array2DHashSet {
|
||||||
|
return NewArray2DHashSetWithCap(hashcodeFunction, equalsFunction, _initalCapacity, _initalBucketCapacity)
|
||||||
|
}
|
3
vendor/github.com/google/cel-go/cel/BUILD.bazel
generated
vendored
3
vendor/github.com/google/cel-go/cel/BUILD.bazel
generated
vendored
@ -44,7 +44,9 @@ go_library(
|
|||||||
go_test(
|
go_test(
|
||||||
name = "go_default_test",
|
name = "go_default_test",
|
||||||
srcs = [
|
srcs = [
|
||||||
|
"cel_example_test.go",
|
||||||
"cel_test.go",
|
"cel_test.go",
|
||||||
|
"env_test.go",
|
||||||
"io_test.go",
|
"io_test.go",
|
||||||
],
|
],
|
||||||
data = [
|
data = [
|
||||||
@ -66,6 +68,7 @@ go_test(
|
|||||||
"//test/proto3pb:go_default_library",
|
"//test/proto3pb:go_default_library",
|
||||||
"@io_bazel_rules_go//proto/wkt:descriptor_go_proto",
|
"@io_bazel_rules_go//proto/wkt:descriptor_go_proto",
|
||||||
"@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
|
"@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
|
||||||
|
"@org_golang_google_protobuf//proto:go_default_library",
|
||||||
"@org_golang_google_protobuf//types/known/structpb:go_default_library",
|
"@org_golang_google_protobuf//types/known/structpb:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
124
vendor/github.com/google/cel-go/cel/env.go
generated
vendored
124
vendor/github.com/google/cel-go/cel/env.go
generated
vendored
@ -32,9 +32,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Source interface representing a user-provided expression.
|
// Source interface representing a user-provided expression.
|
||||||
type Source interface {
|
type Source = common.Source
|
||||||
common.Source
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ast representing the checked or unchecked expression, its source, and related metadata such as
|
// Ast representing the checked or unchecked expression, its source, and related metadata such as
|
||||||
// source position information.
|
// source position information.
|
||||||
@ -56,7 +54,7 @@ func (ast *Ast) IsChecked() bool {
|
|||||||
return ast.typeMap != nil && len(ast.typeMap) > 0
|
return ast.typeMap != nil && len(ast.typeMap) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// SourceInfo returns character offset and newling position information about expression elements.
|
// SourceInfo returns character offset and newline position information about expression elements.
|
||||||
func (ast *Ast) SourceInfo() *exprpb.SourceInfo {
|
func (ast *Ast) SourceInfo() *exprpb.SourceInfo {
|
||||||
return ast.info
|
return ast.info
|
||||||
}
|
}
|
||||||
@ -98,6 +96,7 @@ type Env struct {
|
|||||||
chk *checker.Env
|
chk *checker.Env
|
||||||
chkErr error
|
chkErr error
|
||||||
chkOnce sync.Once
|
chkOnce sync.Once
|
||||||
|
chkOpts []checker.Option
|
||||||
|
|
||||||
// Program options tied to the environment
|
// Program options tied to the environment
|
||||||
progOpts []ProgramOption
|
progOpts []ProgramOption
|
||||||
@ -110,8 +109,16 @@ type Env struct {
|
|||||||
// See the EnvOption helper functions for the options that can be used to configure the
|
// See the EnvOption helper functions for the options that can be used to configure the
|
||||||
// environment.
|
// environment.
|
||||||
func NewEnv(opts ...EnvOption) (*Env, error) {
|
func NewEnv(opts ...EnvOption) (*Env, error) {
|
||||||
stdOpts := append([]EnvOption{StdLib()}, opts...)
|
// Extend the statically configured standard environment, disabling eager validation to ensure
|
||||||
return NewCustomEnv(stdOpts...)
|
// the cost of setup for the environment is still just as cheap as it is in v0.11.x and earlier
|
||||||
|
// releases. The user provided options can easily re-enable the eager validation as they are
|
||||||
|
// processed after this default option.
|
||||||
|
stdOpts := append([]EnvOption{EagerlyValidateDeclarations(false)}, opts...)
|
||||||
|
env, err := getStdEnv()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return env.Extend(stdOpts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCustomEnv creates a custom program environment which is not automatically configured with the
|
// NewCustomEnv creates a custom program environment which is not automatically configured with the
|
||||||
@ -152,25 +159,8 @@ func (e *Env) Check(ast *Ast) (*Ast, *Issues) {
|
|||||||
pe, _ := AstToParsedExpr(ast)
|
pe, _ := AstToParsedExpr(ast)
|
||||||
|
|
||||||
// Construct the internal checker env, erroring if there is an issue adding the declarations.
|
// Construct the internal checker env, erroring if there is an issue adding the declarations.
|
||||||
e.chkOnce.Do(func() {
|
err := e.initChecker()
|
||||||
ce, err := checker.NewEnv(e.Container, e.provider,
|
if err != nil {
|
||||||
checker.HomogeneousAggregateLiterals(
|
|
||||||
e.HasFeature(featureDisableDynamicAggregateLiterals)),
|
|
||||||
checker.CrossTypeNumericComparisons(
|
|
||||||
e.HasFeature(featureCrossTypeNumericComparisons)))
|
|
||||||
if err != nil {
|
|
||||||
e.chkErr = err
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = ce.Add(e.declarations...)
|
|
||||||
if err != nil {
|
|
||||||
e.chkErr = err
|
|
||||||
return
|
|
||||||
}
|
|
||||||
e.chk = ce
|
|
||||||
})
|
|
||||||
// The once call will ensure that this value is set or nil for all invocations.
|
|
||||||
if e.chkErr != nil {
|
|
||||||
errs := common.NewErrors(ast.Source())
|
errs := common.NewErrors(ast.Source())
|
||||||
errs.ReportError(common.NoLocation, e.chkErr.Error())
|
errs.ReportError(common.NoLocation, e.chkErr.Error())
|
||||||
return nil, NewIssues(errs)
|
return nil, NewIssues(errs)
|
||||||
@ -210,7 +200,7 @@ func (e *Env) Compile(txt string) (*Ast, *Issues) {
|
|||||||
// issues discovered during Check.
|
// issues discovered during Check.
|
||||||
//
|
//
|
||||||
// Note, for parse-only uses of CEL use Parse.
|
// Note, for parse-only uses of CEL use Parse.
|
||||||
func (e *Env) CompileSource(src common.Source) (*Ast, *Issues) {
|
func (e *Env) CompileSource(src Source) (*Ast, *Issues) {
|
||||||
ast, iss := e.ParseSource(src)
|
ast, iss := e.ParseSource(src)
|
||||||
if iss.Err() != nil {
|
if iss.Err() != nil {
|
||||||
return nil, iss
|
return nil, iss
|
||||||
@ -233,11 +223,29 @@ func (e *Env) Extend(opts ...EnvOption) (*Env, error) {
|
|||||||
if e.chkErr != nil {
|
if e.chkErr != nil {
|
||||||
return nil, e.chkErr
|
return nil, e.chkErr
|
||||||
}
|
}
|
||||||
// Copy slices.
|
|
||||||
decsCopy := make([]*exprpb.Decl, len(e.declarations))
|
// The type-checker is configured with Declarations. The declarations may either be provided
|
||||||
|
// as options which have not yet been validated, or may come from a previous checker instance
|
||||||
|
// whose types have already been validated.
|
||||||
|
chkOptsCopy := make([]checker.Option, len(e.chkOpts))
|
||||||
|
copy(chkOptsCopy, e.chkOpts)
|
||||||
|
|
||||||
|
// Copy the declarations if needed.
|
||||||
|
decsCopy := []*exprpb.Decl{}
|
||||||
|
if e.chk != nil {
|
||||||
|
// If the type-checker has already been instantiated, then the e.declarations have been
|
||||||
|
// valdiated within the chk instance.
|
||||||
|
chkOptsCopy = append(chkOptsCopy, checker.ValidatedDeclarations(e.chk))
|
||||||
|
} else {
|
||||||
|
// If the type-checker has not been instantiated, ensure the unvalidated declarations are
|
||||||
|
// provided to the extended Env instance.
|
||||||
|
decsCopy = make([]*exprpb.Decl, len(e.declarations))
|
||||||
|
copy(decsCopy, e.declarations)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy macros and program options
|
||||||
macsCopy := make([]parser.Macro, len(e.macros))
|
macsCopy := make([]parser.Macro, len(e.macros))
|
||||||
progOptsCopy := make([]ProgramOption, len(e.progOpts))
|
progOptsCopy := make([]ProgramOption, len(e.progOpts))
|
||||||
copy(decsCopy, e.declarations)
|
|
||||||
copy(macsCopy, e.macros)
|
copy(macsCopy, e.macros)
|
||||||
copy(progOptsCopy, e.progOpts)
|
copy(progOptsCopy, e.progOpts)
|
||||||
|
|
||||||
@ -281,6 +289,7 @@ func (e *Env) Extend(opts ...EnvOption) (*Env, error) {
|
|||||||
adapter: adapter,
|
adapter: adapter,
|
||||||
features: featuresCopy,
|
features: featuresCopy,
|
||||||
provider: provider,
|
provider: provider,
|
||||||
|
chkOpts: chkOptsCopy,
|
||||||
}
|
}
|
||||||
return ext.configure(opts)
|
return ext.configure(opts)
|
||||||
}
|
}
|
||||||
@ -294,7 +303,7 @@ func (e *Env) HasFeature(flag int) bool {
|
|||||||
|
|
||||||
// Parse parses the input expression value `txt` to a Ast and/or a set of Issues.
|
// Parse parses the input expression value `txt` to a Ast and/or a set of Issues.
|
||||||
//
|
//
|
||||||
// This form of Parse creates a common.Source value for the input `txt` and forwards to the
|
// This form of Parse creates a Source value for the input `txt` and forwards to the
|
||||||
// ParseSource method.
|
// ParseSource method.
|
||||||
func (e *Env) Parse(txt string) (*Ast, *Issues) {
|
func (e *Env) Parse(txt string) (*Ast, *Issues) {
|
||||||
src := common.NewTextSource(txt)
|
src := common.NewTextSource(txt)
|
||||||
@ -308,7 +317,7 @@ func (e *Env) Parse(txt string) (*Ast, *Issues) {
|
|||||||
//
|
//
|
||||||
// It is possible to have both non-nil Ast and Issues values returned from this call; however,
|
// It is possible to have both non-nil Ast and Issues values returned from this call; however,
|
||||||
// the mere presence of an Ast does not imply that it is valid for use.
|
// the mere presence of an Ast does not imply that it is valid for use.
|
||||||
func (e *Env) ParseSource(src common.Source) (*Ast, *Issues) {
|
func (e *Env) ParseSource(src Source) (*Ast, *Issues) {
|
||||||
res, errs := e.prsr.Parse(src)
|
res, errs := e.prsr.Parse(src)
|
||||||
if len(errs.GetErrors()) > 0 {
|
if len(errs.GetErrors()) > 0 {
|
||||||
return nil, &Issues{errs: errs}
|
return nil, &Issues{errs: errs}
|
||||||
@ -316,7 +325,7 @@ func (e *Env) ParseSource(src common.Source) (*Ast, *Issues) {
|
|||||||
// Manually create the Ast to ensure that the text source information is propagated on
|
// Manually create the Ast to ensure that the text source information is propagated on
|
||||||
// subsequent calls to Check.
|
// subsequent calls to Check.
|
||||||
return &Ast{
|
return &Ast{
|
||||||
source: Source(src),
|
source: src,
|
||||||
expr: res.GetExpr(),
|
expr: res.GetExpr(),
|
||||||
info: res.GetSourceInfo()}, nil
|
info: res.GetSourceInfo()}, nil
|
||||||
}
|
}
|
||||||
@ -426,6 +435,8 @@ func (e *Env) configure(opts []EnvOption) (*Env, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Configure the parser.
|
||||||
prsrOpts := []parser.Option{parser.Macros(e.macros...)}
|
prsrOpts := []parser.Option{parser.Macros(e.macros...)}
|
||||||
if e.HasFeature(featureEnableMacroCallTracking) {
|
if e.HasFeature(featureEnableMacroCallTracking) {
|
||||||
prsrOpts = append(prsrOpts, parser.PopulateMacroCalls(true))
|
prsrOpts = append(prsrOpts, parser.PopulateMacroCalls(true))
|
||||||
@ -434,9 +445,44 @@ func (e *Env) configure(opts []EnvOption) (*Env, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The simplest way to eagerly validate declarations on environment creation is to compile
|
||||||
|
// a dummy program and check for the presence of e.chkErr being non-nil.
|
||||||
|
if e.HasFeature(featureEagerlyValidateDeclarations) {
|
||||||
|
err := e.initChecker()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return e, nil
|
return e, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Env) initChecker() error {
|
||||||
|
e.chkOnce.Do(func() {
|
||||||
|
chkOpts := []checker.Option{}
|
||||||
|
chkOpts = append(chkOpts, e.chkOpts...)
|
||||||
|
chkOpts = append(chkOpts,
|
||||||
|
checker.HomogeneousAggregateLiterals(
|
||||||
|
e.HasFeature(featureDisableDynamicAggregateLiterals)),
|
||||||
|
checker.CrossTypeNumericComparisons(
|
||||||
|
e.HasFeature(featureCrossTypeNumericComparisons)))
|
||||||
|
|
||||||
|
ce, err := checker.NewEnv(e.Container, e.provider, chkOpts...)
|
||||||
|
if err != nil {
|
||||||
|
e.chkErr = err
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = ce.Add(e.declarations...)
|
||||||
|
if err != nil {
|
||||||
|
e.chkErr = err
|
||||||
|
return
|
||||||
|
}
|
||||||
|
e.chk = ce
|
||||||
|
})
|
||||||
|
return e.chkErr
|
||||||
|
}
|
||||||
|
|
||||||
// Issues defines methods for inspecting the error details of parse and check calls.
|
// Issues defines methods for inspecting the error details of parse and check calls.
|
||||||
//
|
//
|
||||||
// Note: in the future, non-fatal warnings and notices may be inspectable via the Issues struct.
|
// Note: in the future, non-fatal warnings and notices may be inspectable via the Issues struct.
|
||||||
@ -488,3 +534,17 @@ func (i *Issues) String() string {
|
|||||||
}
|
}
|
||||||
return i.errs.ToDisplayString()
|
return i.errs.ToDisplayString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getStdEnv lazy initializes the CEL standard environment.
|
||||||
|
func getStdEnv() (*Env, error) {
|
||||||
|
stdEnvInit.Do(func() {
|
||||||
|
stdEnv, stdEnvErr = NewCustomEnv(StdLib(), EagerlyValidateDeclarations(true))
|
||||||
|
})
|
||||||
|
return stdEnv, stdEnvErr
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
stdEnvInit sync.Once
|
||||||
|
stdEnv *Env
|
||||||
|
stdEnvErr error
|
||||||
|
)
|
||||||
|
4
vendor/github.com/google/cel-go/cel/io.go
generated
vendored
4
vendor/github.com/google/cel-go/cel/io.go
generated
vendored
@ -44,7 +44,7 @@ func CheckedExprToAst(checkedExpr *exprpb.CheckedExpr) *Ast {
|
|||||||
// through future calls.
|
// through future calls.
|
||||||
//
|
//
|
||||||
// Prefer CheckedExprToAst if loading expressions from storage.
|
// Prefer CheckedExprToAst if loading expressions from storage.
|
||||||
func CheckedExprToAstWithSource(checkedExpr *exprpb.CheckedExpr, src common.Source) *Ast {
|
func CheckedExprToAstWithSource(checkedExpr *exprpb.CheckedExpr, src Source) *Ast {
|
||||||
refMap := checkedExpr.GetReferenceMap()
|
refMap := checkedExpr.GetReferenceMap()
|
||||||
if refMap == nil {
|
if refMap == nil {
|
||||||
refMap = map[int64]*exprpb.Reference{}
|
refMap = map[int64]*exprpb.Reference{}
|
||||||
@ -96,7 +96,7 @@ func ParsedExprToAst(parsedExpr *exprpb.ParsedExpr) *Ast {
|
|||||||
// expression, or if you need to separately check a subset of an expression.
|
// expression, or if you need to separately check a subset of an expression.
|
||||||
//
|
//
|
||||||
// Prefer ParsedExprToAst if loading expressions from storage.
|
// Prefer ParsedExprToAst if loading expressions from storage.
|
||||||
func ParsedExprToAstWithSource(parsedExpr *exprpb.ParsedExpr, src common.Source) *Ast {
|
func ParsedExprToAstWithSource(parsedExpr *exprpb.ParsedExpr, src Source) *Ast {
|
||||||
si := parsedExpr.GetSourceInfo()
|
si := parsedExpr.GetSourceInfo()
|
||||||
if si == nil {
|
if si == nil {
|
||||||
si = &exprpb.SourceInfo{}
|
si = &exprpb.SourceInfo{}
|
||||||
|
4
vendor/github.com/google/cel-go/cel/library.go
generated
vendored
4
vendor/github.com/google/cel-go/cel/library.go
generated
vendored
@ -20,14 +20,14 @@ import (
|
|||||||
"github.com/google/cel-go/parser"
|
"github.com/google/cel-go/parser"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Library provides a collection of EnvOption and ProgramOption values used to confiugre a CEL
|
// Library provides a collection of EnvOption and ProgramOption values used to configure a CEL
|
||||||
// environment for a particular use case or with a related set of functionality.
|
// environment for a particular use case or with a related set of functionality.
|
||||||
//
|
//
|
||||||
// Note, the ProgramOption values provided by a library are expected to be static and not vary
|
// Note, the ProgramOption values provided by a library are expected to be static and not vary
|
||||||
// between calls to Env.Program(). If there is a need for such dynamic configuration, prefer to
|
// between calls to Env.Program(). If there is a need for such dynamic configuration, prefer to
|
||||||
// configure these options outside the Library and within the Env.Program() call directly.
|
// configure these options outside the Library and within the Env.Program() call directly.
|
||||||
type Library interface {
|
type Library interface {
|
||||||
// CompileOptions returns a collection of funcitional options for configuring the Parse / Check
|
// CompileOptions returns a collection of functional options for configuring the Parse / Check
|
||||||
// environment.
|
// environment.
|
||||||
CompileOptions() []EnvOption
|
CompileOptions() []EnvOption
|
||||||
|
|
||||||
|
16
vendor/github.com/google/cel-go/cel/options.go
generated
vendored
16
vendor/github.com/google/cel-go/cel/options.go
generated
vendored
@ -53,6 +53,10 @@ const (
|
|||||||
|
|
||||||
// Enable the use of cross-type numeric comparisons at the type-checker.
|
// Enable the use of cross-type numeric comparisons at the type-checker.
|
||||||
featureCrossTypeNumericComparisons
|
featureCrossTypeNumericComparisons
|
||||||
|
|
||||||
|
// Enable eager validation of declarations to ensure that Env values created
|
||||||
|
// with `Extend` inherit a validated list of declarations from the parent Env.
|
||||||
|
featureEagerlyValidateDeclarations
|
||||||
)
|
)
|
||||||
|
|
||||||
// EnvOption is a functional interface for configuring the environment.
|
// EnvOption is a functional interface for configuring the environment.
|
||||||
@ -103,6 +107,18 @@ func Declarations(decls ...*exprpb.Decl) EnvOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EagerlyValidateDeclarations ensures that any collisions between configured declarations are caught
|
||||||
|
// at the time of the `NewEnv` call.
|
||||||
|
//
|
||||||
|
// Eagerly validating declarations is also useful for bootstrapping a base `cel.Env` value.
|
||||||
|
// Calls to base `Env.Extend()` will be significantly faster when declarations are eagerly validated
|
||||||
|
// as declarations will be collision-checked at most once and only incrementally by way of `Extend`
|
||||||
|
//
|
||||||
|
// Disabled by default as not all environments are used for type-checking.
|
||||||
|
func EagerlyValidateDeclarations(enabled bool) EnvOption {
|
||||||
|
return features(featureEagerlyValidateDeclarations, enabled)
|
||||||
|
}
|
||||||
|
|
||||||
// HomogeneousAggregateLiterals option ensures that list and map literal entry types must agree
|
// HomogeneousAggregateLiterals option ensures that list and map literal entry types must agree
|
||||||
// during type-checking.
|
// during type-checking.
|
||||||
//
|
//
|
||||||
|
2
vendor/github.com/google/cel-go/cel/program.go
generated
vendored
2
vendor/github.com/google/cel-go/cel/program.go
generated
vendored
@ -49,7 +49,7 @@ type Program interface {
|
|||||||
// to support cancellation and timeouts. This method must be used in conjunction with the
|
// to support cancellation and timeouts. This method must be used in conjunction with the
|
||||||
// InterruptCheckFrequency() option for cancellation interrupts to be impact evaluation.
|
// InterruptCheckFrequency() option for cancellation interrupts to be impact evaluation.
|
||||||
//
|
//
|
||||||
// The vars value may eitehr be an `interpreter.Activation` or `map[string]interface{}`.
|
// The vars value may either be an `interpreter.Activation` or `map[string]interface{}`.
|
||||||
//
|
//
|
||||||
// The output contract for `ContextEval` is otherwise identical to the `Eval` method.
|
// The output contract for `ContextEval` is otherwise identical to the `Eval` method.
|
||||||
ContextEval(context.Context, interface{}) (ref.Val, *EvalDetails, error)
|
ContextEval(context.Context, interface{}) (ref.Val, *EvalDetails, error)
|
||||||
|
30
vendor/github.com/google/cel-go/checker/checker.go
generated
vendored
30
vendor/github.com/google/cel-go/checker/checker.go
generated
vendored
@ -168,11 +168,9 @@ func (c *checker) checkSelect(e *exprpb.Expr) {
|
|||||||
if found {
|
if found {
|
||||||
ident := c.env.LookupIdent(qname)
|
ident := c.env.LookupIdent(qname)
|
||||||
if ident != nil {
|
if ident != nil {
|
||||||
if sel.TestOnly {
|
// We don't check for a TestOnly expression here since the `found` result is
|
||||||
c.errors.expressionDoesNotSelectField(c.location(e))
|
// always going to be false for TestOnly expressions.
|
||||||
c.setType(e, decls.Bool)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// Rewrite the node to be a variable reference to the resolved fully-qualified
|
// Rewrite the node to be a variable reference to the resolved fully-qualified
|
||||||
// variable name.
|
// variable name.
|
||||||
c.setType(e, ident.GetIdent().Type)
|
c.setType(e, ident.GetIdent().Type)
|
||||||
@ -208,7 +206,7 @@ func (c *checker) checkSelect(e *exprpb.Expr) {
|
|||||||
resultType = fieldType.Type
|
resultType = fieldType.Type
|
||||||
}
|
}
|
||||||
case kindTypeParam:
|
case kindTypeParam:
|
||||||
// Set the operand type to DYN to prevent assignment to a potentionally incorrect type
|
// Set the operand type to DYN to prevent assignment to a potentially incorrect type
|
||||||
// at a later point in type-checking. The isAssignable call will update the type
|
// at a later point in type-checking. The isAssignable call will update the type
|
||||||
// substitutions for the type param under the covers.
|
// substitutions for the type param under the covers.
|
||||||
c.isAssignable(decls.Dyn, targetType)
|
c.isAssignable(decls.Dyn, targetType)
|
||||||
@ -323,6 +321,12 @@ func (c *checker) resolveOverload(
|
|||||||
var resultType *exprpb.Type
|
var resultType *exprpb.Type
|
||||||
var checkedRef *exprpb.Reference
|
var checkedRef *exprpb.Reference
|
||||||
for _, overload := range fn.GetFunction().Overloads {
|
for _, overload := range fn.GetFunction().Overloads {
|
||||||
|
// Determine whether the overload is currently considered.
|
||||||
|
if c.env.isOverloadDisabled(overload.GetOverloadId()) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure the call style for the overload matches.
|
||||||
if (target == nil && overload.IsInstanceFunction) ||
|
if (target == nil && overload.IsInstanceFunction) ||
|
||||||
(target != nil && !overload.IsInstanceFunction) {
|
(target != nil && !overload.IsInstanceFunction) {
|
||||||
// not a compatible call style.
|
// not a compatible call style.
|
||||||
@ -330,26 +334,26 @@ func (c *checker) resolveOverload(
|
|||||||
}
|
}
|
||||||
|
|
||||||
overloadType := decls.NewFunctionType(overload.ResultType, overload.Params...)
|
overloadType := decls.NewFunctionType(overload.ResultType, overload.Params...)
|
||||||
if len(overload.TypeParams) > 0 {
|
if len(overload.GetTypeParams()) > 0 {
|
||||||
// Instantiate overload's type with fresh type variables.
|
// Instantiate overload's type with fresh type variables.
|
||||||
substitutions := newMapping()
|
substitutions := newMapping()
|
||||||
for _, typePar := range overload.TypeParams {
|
for _, typePar := range overload.GetTypeParams() {
|
||||||
substitutions.add(decls.NewTypeParamType(typePar), c.newTypeVar())
|
substitutions.add(decls.NewTypeParamType(typePar), c.newTypeVar())
|
||||||
}
|
}
|
||||||
overloadType = substitute(substitutions, overloadType, false)
|
overloadType = substitute(substitutions, overloadType, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
candidateArgTypes := overloadType.GetFunction().ArgTypes
|
candidateArgTypes := overloadType.GetFunction().GetArgTypes()
|
||||||
if c.isAssignableList(argTypes, candidateArgTypes) {
|
if c.isAssignableList(argTypes, candidateArgTypes) {
|
||||||
if checkedRef == nil {
|
if checkedRef == nil {
|
||||||
checkedRef = newFunctionReference(overload.OverloadId)
|
checkedRef = newFunctionReference(overload.GetOverloadId())
|
||||||
} else {
|
} else {
|
||||||
checkedRef.OverloadId = append(checkedRef.OverloadId, overload.OverloadId)
|
checkedRef.OverloadId = append(checkedRef.OverloadId, overload.GetOverloadId())
|
||||||
}
|
}
|
||||||
|
|
||||||
// First matching overload, determines result type.
|
// First matching overload, determines result type.
|
||||||
fnResultType := substitute(c.mappings,
|
fnResultType := substitute(c.mappings,
|
||||||
overloadType.GetFunction().ResultType,
|
overloadType.GetFunction().GetResultType(),
|
||||||
false)
|
false)
|
||||||
if resultType == nil {
|
if resultType == nil {
|
||||||
resultType = fnResultType
|
resultType = fnResultType
|
||||||
@ -478,7 +482,7 @@ func (c *checker) checkComprehension(e *exprpb.Expr) {
|
|||||||
// Ranges over the keys.
|
// Ranges over the keys.
|
||||||
varType = rangeType.GetMapType().KeyType
|
varType = rangeType.GetMapType().KeyType
|
||||||
case kindDyn, kindError, kindTypeParam:
|
case kindDyn, kindError, kindTypeParam:
|
||||||
// Set the range type to DYN to prevent assignment to a potentionally incorrect type
|
// Set the range type to DYN to prevent assignment to a potentially incorrect type
|
||||||
// at a later point in type-checking. The isAssignable call will update the type
|
// at a later point in type-checking. The isAssignable call will update the type
|
||||||
// substitutions for the type param under the covers.
|
// substitutions for the type param under the covers.
|
||||||
c.isAssignable(decls.Dyn, rangeType)
|
c.isAssignable(decls.Dyn, rangeType)
|
||||||
|
10
vendor/github.com/google/cel-go/checker/cost.go
generated
vendored
10
vendor/github.com/google/cel-go/checker/cost.go
generated
vendored
@ -121,7 +121,7 @@ type SizeEstimate struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add adds to another SizeEstimate and returns the sum.
|
// Add adds to another SizeEstimate and returns the sum.
|
||||||
// If add would result in an uint64 overflow, the result is Maxuint64.
|
// If add would result in an uint64 overflow, the result is math.MaxUint64.
|
||||||
func (se SizeEstimate) Add(sizeEstimate SizeEstimate) SizeEstimate {
|
func (se SizeEstimate) Add(sizeEstimate SizeEstimate) SizeEstimate {
|
||||||
return SizeEstimate{
|
return SizeEstimate{
|
||||||
addUint64NoOverflow(se.Min, sizeEstimate.Min),
|
addUint64NoOverflow(se.Min, sizeEstimate.Min),
|
||||||
@ -130,7 +130,7 @@ func (se SizeEstimate) Add(sizeEstimate SizeEstimate) SizeEstimate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Multiply multiplies by another SizeEstimate and returns the product.
|
// Multiply multiplies by another SizeEstimate and returns the product.
|
||||||
// If multiply would result in an uint64 overflow, the result is Maxuint64.
|
// If multiply would result in an uint64 overflow, the result is math.MaxUint64.
|
||||||
func (se SizeEstimate) Multiply(sizeEstimate SizeEstimate) SizeEstimate {
|
func (se SizeEstimate) Multiply(sizeEstimate SizeEstimate) SizeEstimate {
|
||||||
return SizeEstimate{
|
return SizeEstimate{
|
||||||
multiplyUint64NoOverflow(se.Min, sizeEstimate.Min),
|
multiplyUint64NoOverflow(se.Min, sizeEstimate.Min),
|
||||||
@ -148,7 +148,7 @@ func (se SizeEstimate) MultiplyByCostFactor(costPerUnit float64) CostEstimate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MultiplyByCost multiplies by the cost and returns the product.
|
// MultiplyByCost multiplies by the cost and returns the product.
|
||||||
// If multiply would result in an uint64 overflow, the result is Maxuint64.
|
// If multiply would result in an uint64 overflow, the result is math.MaxUint64.
|
||||||
func (se SizeEstimate) MultiplyByCost(cost CostEstimate) CostEstimate {
|
func (se SizeEstimate) MultiplyByCost(cost CostEstimate) CostEstimate {
|
||||||
return CostEstimate{
|
return CostEstimate{
|
||||||
multiplyUint64NoOverflow(se.Min, cost.Min),
|
multiplyUint64NoOverflow(se.Min, cost.Min),
|
||||||
@ -175,7 +175,7 @@ type CostEstimate struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add adds the costs and returns the sum.
|
// Add adds the costs and returns the sum.
|
||||||
// If add would result in an uint64 overflow for the min or max, the value is set to Maxuint64.
|
// If add would result in an uint64 overflow for the min or max, the value is set to math.MaxUint64.
|
||||||
func (ce CostEstimate) Add(cost CostEstimate) CostEstimate {
|
func (ce CostEstimate) Add(cost CostEstimate) CostEstimate {
|
||||||
return CostEstimate{
|
return CostEstimate{
|
||||||
addUint64NoOverflow(ce.Min, cost.Min),
|
addUint64NoOverflow(ce.Min, cost.Min),
|
||||||
@ -184,7 +184,7 @@ func (ce CostEstimate) Add(cost CostEstimate) CostEstimate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Multiply multiplies by the cost and returns the product.
|
// Multiply multiplies by the cost and returns the product.
|
||||||
// If multiply would result in an uint64 overflow, the result is Maxuint64.
|
// If multiply would result in an uint64 overflow, the result is math.MaxUint64.
|
||||||
func (ce CostEstimate) Multiply(cost CostEstimate) CostEstimate {
|
func (ce CostEstimate) Multiply(cost CostEstimate) CostEstimate {
|
||||||
return CostEstimate{
|
return CostEstimate{
|
||||||
multiplyUint64NoOverflow(ce.Min, cost.Min),
|
multiplyUint64NoOverflow(ce.Min, cost.Min),
|
||||||
|
36
vendor/github.com/google/cel-go/checker/decls/scopes.go
generated
vendored
36
vendor/github.com/google/cel-go/checker/decls/scopes.go
generated
vendored
@ -33,6 +33,19 @@ func NewScopes() *Scopes {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copy creates a copy of the current Scopes values, including a copy of its parent if non-nil.
|
||||||
|
func (s *Scopes) Copy() *Scopes {
|
||||||
|
cpy := NewScopes()
|
||||||
|
if s == nil {
|
||||||
|
return cpy
|
||||||
|
}
|
||||||
|
if s.parent != nil {
|
||||||
|
cpy.parent = s.parent.Copy()
|
||||||
|
}
|
||||||
|
cpy.scopes = s.scopes.copy()
|
||||||
|
return cpy
|
||||||
|
}
|
||||||
|
|
||||||
// Push creates a new Scopes value which references the current Scope as its parent.
|
// Push creates a new Scopes value which references the current Scope as its parent.
|
||||||
func (s *Scopes) Push() *Scopes {
|
func (s *Scopes) Push() *Scopes {
|
||||||
return &Scopes{
|
return &Scopes{
|
||||||
@ -80,9 +93,9 @@ func (s *Scopes) FindIdentInScope(name string) *exprpb.Decl {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddFunction adds the function Decl to the current scope.
|
// SetFunction adds the function Decl to the current scope.
|
||||||
// Note: Any previous entry for a function in the current scope with the same name is overwritten.
|
// Note: Any previous entry for a function in the current scope with the same name is overwritten.
|
||||||
func (s *Scopes) AddFunction(fn *exprpb.Decl) {
|
func (s *Scopes) SetFunction(fn *exprpb.Decl) {
|
||||||
s.scopes.functions[fn.Name] = fn
|
s.scopes.functions[fn.Name] = fn
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,13 +113,30 @@ func (s *Scopes) FindFunction(name string) *exprpb.Decl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Group is a set of Decls that is pushed on or popped off a Scopes as a unit.
|
// Group is a set of Decls that is pushed on or popped off a Scopes as a unit.
|
||||||
// Contains separate namespaces for idenifier and function Decls.
|
// Contains separate namespaces for identifier and function Decls.
|
||||||
// (Should be named "Scope" perhaps?)
|
// (Should be named "Scope" perhaps?)
|
||||||
type Group struct {
|
type Group struct {
|
||||||
idents map[string]*exprpb.Decl
|
idents map[string]*exprpb.Decl
|
||||||
functions map[string]*exprpb.Decl
|
functions map[string]*exprpb.Decl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// copy creates a new Group instance with a shallow copy of the variables and functions.
|
||||||
|
// If callers need to mutate the exprpb.Decl definitions for a Function, they should copy-on-write.
|
||||||
|
func (g *Group) copy() *Group {
|
||||||
|
cpy := &Group{
|
||||||
|
idents: make(map[string]*exprpb.Decl, len(g.idents)),
|
||||||
|
functions: make(map[string]*exprpb.Decl, len(g.functions)),
|
||||||
|
}
|
||||||
|
for n, id := range g.idents {
|
||||||
|
cpy.idents[n] = id
|
||||||
|
}
|
||||||
|
for n, fn := range g.functions {
|
||||||
|
cpy.functions[n] = fn
|
||||||
|
}
|
||||||
|
return cpy
|
||||||
|
}
|
||||||
|
|
||||||
|
// newGroup creates a new Group with empty maps for identifiers and functions.
|
||||||
func newGroup() *Group {
|
func newGroup() *Group {
|
||||||
return &Group{
|
return &Group{
|
||||||
idents: make(map[string]*exprpb.Decl),
|
idents: make(map[string]*exprpb.Decl),
|
||||||
|
31
vendor/github.com/google/cel-go/checker/env.go
generated
vendored
31
vendor/github.com/google/cel-go/checker/env.go
generated
vendored
@ -18,6 +18,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
|
||||||
"github.com/google/cel-go/checker/decls"
|
"github.com/google/cel-go/checker/decls"
|
||||||
"github.com/google/cel-go/common/containers"
|
"github.com/google/cel-go/common/containers"
|
||||||
"github.com/google/cel-go/common/overloads"
|
"github.com/google/cel-go/common/overloads"
|
||||||
@ -99,6 +101,9 @@ func NewEnv(container *containers.Container, provider ref.TypeProvider, opts ...
|
|||||||
if envOptions.crossTypeNumericComparisons {
|
if envOptions.crossTypeNumericComparisons {
|
||||||
filteredOverloadIDs = make(map[string]struct{})
|
filteredOverloadIDs = make(map[string]struct{})
|
||||||
}
|
}
|
||||||
|
if envOptions.validatedDeclarations != nil {
|
||||||
|
declarations = envOptions.validatedDeclarations.Copy()
|
||||||
|
}
|
||||||
return &Env{
|
return &Env{
|
||||||
container: container,
|
container: container,
|
||||||
provider: provider,
|
provider: provider,
|
||||||
@ -117,7 +122,7 @@ func (e *Env) Add(decls ...*exprpb.Decl) error {
|
|||||||
case *exprpb.Decl_Ident:
|
case *exprpb.Decl_Ident:
|
||||||
errMsgs = append(errMsgs, e.addIdent(sanitizeIdent(decl)))
|
errMsgs = append(errMsgs, e.addIdent(sanitizeIdent(decl)))
|
||||||
case *exprpb.Decl_Function:
|
case *exprpb.Decl_Function:
|
||||||
errMsgs = append(errMsgs, e.addFunction(sanitizeFunction(decl))...)
|
errMsgs = append(errMsgs, e.setFunction(sanitizeFunction(decl))...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return formatError(errMsgs)
|
return formatError(errMsgs)
|
||||||
@ -204,22 +209,22 @@ func (e *Env) addOverload(f *exprpb.Decl, overload *exprpb.Decl_FunctionDecl_Ove
|
|||||||
return errMsgs
|
return errMsgs
|
||||||
}
|
}
|
||||||
|
|
||||||
// addFunction adds the function Decl to the Env.
|
// setFunction adds the function Decl to the Env.
|
||||||
// Adds a function decl if one doesn't already exist, then adds all overloads from the Decl.
|
// Adds a function decl if one doesn't already exist, then adds all overloads from the Decl.
|
||||||
// If overload overlaps with an existing overload, adds to the errors in the Env instead.
|
// If overload overlaps with an existing overload, adds to the errors in the Env instead.
|
||||||
func (e *Env) addFunction(decl *exprpb.Decl) []errorMsg {
|
func (e *Env) setFunction(decl *exprpb.Decl) []errorMsg {
|
||||||
current := e.declarations.FindFunction(decl.Name)
|
current := e.declarations.FindFunction(decl.Name)
|
||||||
if current == nil {
|
if current == nil {
|
||||||
//Add the function declaration without overloads and check the overloads below.
|
//Add the function declaration without overloads and check the overloads below.
|
||||||
current = decls.NewFunction(decl.Name)
|
current = decls.NewFunction(decl.Name)
|
||||||
e.declarations.AddFunction(current)
|
} else {
|
||||||
|
// Copy on write since we don't know where this original definition came from.
|
||||||
|
current = proto.Clone(current).(*exprpb.Decl)
|
||||||
}
|
}
|
||||||
|
e.declarations.SetFunction(current)
|
||||||
|
|
||||||
errorMsgs := make([]errorMsg, 0)
|
errorMsgs := make([]errorMsg, 0)
|
||||||
for _, overload := range decl.GetFunction().GetOverloads() {
|
for _, overload := range decl.GetFunction().GetOverloads() {
|
||||||
if _, found := e.filteredOverloadIDs[overload.GetOverloadId()]; found {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
errorMsgs = append(errorMsgs, e.addOverload(current, overload)...)
|
errorMsgs = append(errorMsgs, e.addOverload(current, overload)...)
|
||||||
}
|
}
|
||||||
return errorMsgs
|
return errorMsgs
|
||||||
@ -236,6 +241,12 @@ func (e *Env) addIdent(decl *exprpb.Decl) errorMsg {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isOverloadDisabled returns whether the overloadID is disabled in the current environment.
|
||||||
|
func (e *Env) isOverloadDisabled(overloadID string) bool {
|
||||||
|
_, found := e.filteredOverloadIDs[overloadID]
|
||||||
|
return found
|
||||||
|
}
|
||||||
|
|
||||||
// sanitizeFunction replaces well-known types referenced by message name with their equivalent
|
// sanitizeFunction replaces well-known types referenced by message name with their equivalent
|
||||||
// CEL built-in type instances.
|
// CEL built-in type instances.
|
||||||
func sanitizeFunction(decl *exprpb.Decl) *exprpb.Decl {
|
func sanitizeFunction(decl *exprpb.Decl) *exprpb.Decl {
|
||||||
@ -313,6 +324,12 @@ func getObjectWellKnownType(t *exprpb.Type) *exprpb.Type {
|
|||||||
return pb.CheckedWellKnowns[t.GetMessageType()]
|
return pb.CheckedWellKnowns[t.GetMessageType()]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// validatedDeclarations returns a reference to the validated variable and function declaration scope stack.
|
||||||
|
// must be copied before use.
|
||||||
|
func (e *Env) validatedDeclarations() *decls.Scopes {
|
||||||
|
return e.declarations
|
||||||
|
}
|
||||||
|
|
||||||
// enterScope creates a new Env instance with a new innermost declaration scope.
|
// enterScope creates a new Env instance with a new innermost declaration scope.
|
||||||
func (e *Env) enterScope() *Env {
|
func (e *Env) enterScope() *Env {
|
||||||
childDecls := e.declarations.Push()
|
childDecls := e.declarations.Push()
|
||||||
|
4
vendor/github.com/google/cel-go/checker/errors.go
generated
vendored
4
vendor/github.com/google/cel-go/checker/errors.go
generated
vendored
@ -29,10 +29,6 @@ func (e *typeErrors) undeclaredReference(l common.Location, container string, na
|
|||||||
e.ReportError(l, "undeclared reference to '%s' (in container '%s')", name, container)
|
e.ReportError(l, "undeclared reference to '%s' (in container '%s')", name, container)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *typeErrors) expressionDoesNotSelectField(l common.Location) {
|
|
||||||
e.ReportError(l, "expression does not select a field")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *typeErrors) typeDoesNotSupportFieldSelection(l common.Location, t *exprpb.Type) {
|
func (e *typeErrors) typeDoesNotSupportFieldSelection(l common.Location, t *exprpb.Type) {
|
||||||
e.ReportError(l, "type '%s' does not support field selection", t)
|
e.ReportError(l, "type '%s' does not support field selection", t)
|
||||||
}
|
}
|
||||||
|
12
vendor/github.com/google/cel-go/checker/options.go
generated
vendored
12
vendor/github.com/google/cel-go/checker/options.go
generated
vendored
@ -14,9 +14,12 @@
|
|||||||
|
|
||||||
package checker
|
package checker
|
||||||
|
|
||||||
|
import "github.com/google/cel-go/checker/decls"
|
||||||
|
|
||||||
type options struct {
|
type options struct {
|
||||||
crossTypeNumericComparisons bool
|
crossTypeNumericComparisons bool
|
||||||
homogeneousAggregateLiterals bool
|
homogeneousAggregateLiterals bool
|
||||||
|
validatedDeclarations *decls.Scopes
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option is a functional option for configuring the type-checker
|
// Option is a functional option for configuring the type-checker
|
||||||
@ -39,3 +42,12 @@ func HomogeneousAggregateLiterals(enabled bool) Option {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ValidatedDeclarations provides a references to validated declarations which will be copied
|
||||||
|
// into new checker instances.
|
||||||
|
func ValidatedDeclarations(env *Env) Option {
|
||||||
|
return func(opts *options) error {
|
||||||
|
opts.validatedDeclarations = env.validatedDeclarations()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
102
vendor/github.com/google/cel-go/checker/types.go
generated
vendored
102
vendor/github.com/google/cel-go/checker/types.go
generated
vendored
@ -149,21 +149,6 @@ func isEqualOrLessSpecific(t1 *exprpb.Type, t2 *exprpb.Type) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
case kindFunction:
|
|
||||||
fn1 := t1.GetFunction()
|
|
||||||
fn2 := t2.GetFunction()
|
|
||||||
if len(fn1.ArgTypes) != len(fn2.ArgTypes) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if !isEqualOrLessSpecific(fn1.ResultType, fn2.ResultType) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
for i, a1 := range fn1.ArgTypes {
|
|
||||||
if !isEqualOrLessSpecific(a1, fn2.ArgTypes[i]) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
case kindList:
|
case kindList:
|
||||||
return isEqualOrLessSpecific(t1.GetListType().ElemType, t2.GetListType().ElemType)
|
return isEqualOrLessSpecific(t1.GetListType().ElemType, t2.GetListType().ElemType)
|
||||||
case kindMap:
|
case kindMap:
|
||||||
@ -180,43 +165,26 @@ func isEqualOrLessSpecific(t1 *exprpb.Type, t2 *exprpb.Type) bool {
|
|||||||
|
|
||||||
/// internalIsAssignable returns true if t1 is assignable to t2.
|
/// internalIsAssignable returns true if t1 is assignable to t2.
|
||||||
func internalIsAssignable(m *mapping, t1 *exprpb.Type, t2 *exprpb.Type) bool {
|
func internalIsAssignable(m *mapping, t1 *exprpb.Type, t2 *exprpb.Type) bool {
|
||||||
// A type is always assignable to itself.
|
|
||||||
// Early terminate the call to avoid cases of infinite recursion.
|
|
||||||
if proto.Equal(t1, t2) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
// Process type parameters.
|
// Process type parameters.
|
||||||
kind1, kind2 := kindOf(t1), kindOf(t2)
|
kind1, kind2 := kindOf(t1), kindOf(t2)
|
||||||
if kind2 == kindTypeParam {
|
if kind2 == kindTypeParam {
|
||||||
if t2Sub, found := m.find(t2); found {
|
// If t2 is a valid type substitution for t1, return true.
|
||||||
// If the types are compatible, pick the more general type and return true
|
valid, t2HasSub := isValidTypeSubstitution(m, t1, t2)
|
||||||
if !internalIsAssignable(m, t1, t2Sub) {
|
if valid {
|
||||||
return false
|
|
||||||
}
|
|
||||||
m.add(t2, mostGeneral(t1, t2Sub))
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if notReferencedIn(m, t2, t1) {
|
// If t2 is not a valid type sub for t1, and already has a known substitution return false
|
||||||
m.add(t2, t1)
|
// since it is not possible for t1 to be a substitution for t2.
|
||||||
return true
|
if !valid && t2HasSub {
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
// Otherwise, fall through to check whether t1 is a possible substitution for t2.
|
||||||
}
|
}
|
||||||
if kind1 == kindTypeParam {
|
if kind1 == kindTypeParam {
|
||||||
// For the lower type bound, we currently do not perform adjustment. The restricted
|
// Return whether t1 is a valid substitution for t2. If not, do no additional checks as the
|
||||||
// way we use type parameters in lower type bounds, it is not necessary, but may
|
// possible type substitutions have been searched in both directions.
|
||||||
// become if we generalize type unification.
|
valid, _ := isValidTypeSubstitution(m, t2, t1)
|
||||||
if t1Sub, found := m.find(t1); found {
|
return valid
|
||||||
// If the types are compatible, pick the more general type and return true
|
|
||||||
if !internalIsAssignable(m, t1Sub, t2) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
m.add(t1, mostGeneral(t1Sub, t2))
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
if notReferencedIn(m, t1, t2) {
|
|
||||||
m.add(t1, t2)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Next check for wildcard types.
|
// Next check for wildcard types.
|
||||||
@ -262,18 +230,40 @@ func internalIsAssignable(m *mapping, t1 *exprpb.Type, t2 *exprpb.Type) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isValidTypeSubstitution returns whether t2 (or its type substitution) is a valid type
|
||||||
|
// substitution for t1, and whether t2 has a type substitution in mapping m.
|
||||||
|
//
|
||||||
|
// The type t2 is a valid substitution for t1 if any of the following statements is true
|
||||||
|
// - t2 has a type substitition (t2sub) equal to t1
|
||||||
|
// - t2 has a type substitution (t2sub) assignable to t1
|
||||||
|
// - t2 does not occur within t1.
|
||||||
|
func isValidTypeSubstitution(m *mapping, t1, t2 *exprpb.Type) (valid, hasSub bool) {
|
||||||
|
if t2Sub, found := m.find(t2); found {
|
||||||
|
kind1, kind2 := kindOf(t1), kindOf(t2)
|
||||||
|
if kind1 == kind2 && proto.Equal(t1, t2Sub) {
|
||||||
|
return true, true
|
||||||
|
}
|
||||||
|
// If the types are compatible, pick the more general type and return true
|
||||||
|
if internalIsAssignable(m, t1, t2Sub) {
|
||||||
|
m.add(t2, mostGeneral(t1, t2Sub))
|
||||||
|
return true, true
|
||||||
|
}
|
||||||
|
return false, true
|
||||||
|
}
|
||||||
|
if notReferencedIn(m, t2, t1) {
|
||||||
|
m.add(t2, t1)
|
||||||
|
return true, false
|
||||||
|
}
|
||||||
|
return false, false
|
||||||
|
}
|
||||||
|
|
||||||
// internalIsAssignableAbstractType returns true if the abstract type names agree and all type
|
// internalIsAssignableAbstractType returns true if the abstract type names agree and all type
|
||||||
// parameters are assignable.
|
// parameters are assignable.
|
||||||
func internalIsAssignableAbstractType(m *mapping,
|
func internalIsAssignableAbstractType(m *mapping,
|
||||||
a1 *exprpb.Type_AbstractType,
|
a1 *exprpb.Type_AbstractType,
|
||||||
a2 *exprpb.Type_AbstractType) bool {
|
a2 *exprpb.Type_AbstractType) bool {
|
||||||
if a1.GetName() != a2.GetName() {
|
return a1.GetName() == a2.GetName() &&
|
||||||
return false
|
internalIsAssignableList(m, a1.GetParameterTypes(), a2.GetParameterTypes())
|
||||||
}
|
|
||||||
if internalIsAssignableList(m, a1.GetParameterTypes(), a2.GetParameterTypes()) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// internalIsAssignableFunction returns true if the function return type and arg types are
|
// internalIsAssignableFunction returns true if the function return type and arg types are
|
||||||
@ -421,15 +411,6 @@ func notReferencedIn(m *mapping, t *exprpb.Type, withinType *exprpb.Type) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
case kindFunction:
|
|
||||||
fn := withinType.GetFunction()
|
|
||||||
types := flattenFunctionTypes(fn)
|
|
||||||
for _, a := range types {
|
|
||||||
if !notReferencedIn(m, t, a) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
case kindList:
|
case kindList:
|
||||||
return notReferencedIn(m, t, withinType.GetListType().ElemType)
|
return notReferencedIn(m, t, withinType.GetListType().ElemType)
|
||||||
case kindMap:
|
case kindMap:
|
||||||
@ -454,7 +435,6 @@ func substitute(m *mapping, t *exprpb.Type, typeParamToDyn bool) *exprpb.Type {
|
|||||||
}
|
}
|
||||||
switch kind {
|
switch kind {
|
||||||
case kindAbstract:
|
case kindAbstract:
|
||||||
// TODO: implement!
|
|
||||||
at := t.GetAbstractType()
|
at := t.GetAbstractType()
|
||||||
params := make([]*exprpb.Type, len(at.GetParameterTypes()))
|
params := make([]*exprpb.Type, len(at.GetParameterTypes()))
|
||||||
for i, p := range at.GetParameterTypes() {
|
for i, p := range at.GetParameterTypes() {
|
||||||
|
2
vendor/github.com/google/cel-go/common/location.go
generated
vendored
2
vendor/github.com/google/cel-go/common/location.go
generated
vendored
@ -27,7 +27,7 @@ type SourceLocation struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// Location implements the SourcceLocation interface.
|
// Location implements the SourceLocation interface.
|
||||||
_ Location = &SourceLocation{}
|
_ Location = &SourceLocation{}
|
||||||
// NoLocation is a particular illegal location.
|
// NoLocation is a particular illegal location.
|
||||||
NoLocation = &SourceLocation{-1, -1}
|
NoLocation = &SourceLocation{-1, -1}
|
||||||
|
2
vendor/github.com/google/cel-go/common/operators/operators.go
generated
vendored
2
vendor/github.com/google/cel-go/common/operators/operators.go
generated
vendored
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
// Package operators defines the internal function names of operators.
|
// Package operators defines the internal function names of operators.
|
||||||
//
|
//
|
||||||
// ALl operators in the expression language are modelled as function calls.
|
// All operators in the expression language are modelled as function calls.
|
||||||
package operators
|
package operators
|
||||||
|
|
||||||
// String "names" for CEL operators.
|
// String "names" for CEL operators.
|
||||||
|
1
vendor/github.com/google/cel-go/common/types/BUILD.bazel
generated
vendored
1
vendor/github.com/google/cel-go/common/types/BUILD.bazel
generated
vendored
@ -73,6 +73,7 @@ go_test(
|
|||||||
"timestamp_test.go",
|
"timestamp_test.go",
|
||||||
"type_test.go",
|
"type_test.go",
|
||||||
"uint_test.go",
|
"uint_test.go",
|
||||||
|
"util_test.go",
|
||||||
],
|
],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
|
13
vendor/github.com/google/cel-go/common/types/bool.go
generated
vendored
13
vendor/github.com/google/cel-go/common/types/bool.go
generated
vendored
@ -130,12 +130,11 @@ func (b Bool) Value() interface{} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// IsBool returns whether the input ref.Val or ref.Type is equal to BoolType.
|
// IsBool returns whether the input ref.Val or ref.Type is equal to BoolType.
|
||||||
func IsBool(elem interface{}) bool {
|
func IsBool(elem ref.Val) bool {
|
||||||
switch elem := elem.(type) {
|
switch elem.(type) {
|
||||||
case ref.Type:
|
case Bool:
|
||||||
return elem == BoolType
|
return true
|
||||||
case ref.Val:
|
default:
|
||||||
return IsBool(elem.Type())
|
return false
|
||||||
}
|
}
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
2
vendor/github.com/google/cel-go/common/types/bytes.go
generated
vendored
2
vendor/github.com/google/cel-go/common/types/bytes.go
generated
vendored
@ -53,7 +53,7 @@ func (b Bytes) Add(other ref.Val) ref.Val {
|
|||||||
return append(b, otherBytes...)
|
return append(b, otherBytes...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compare implments traits.Comparer interface method by lexicographic ordering.
|
// Compare implements traits.Comparer interface method by lexicographic ordering.
|
||||||
func (b Bytes) Compare(other ref.Val) ref.Val {
|
func (b Bytes) Compare(other ref.Val) ref.Val {
|
||||||
otherBytes, ok := other.(Bytes)
|
otherBytes, ok := other.(Bytes)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
6
vendor/github.com/google/cel-go/common/types/compare.go
generated
vendored
6
vendor/github.com/google/cel-go/common/types/compare.go
generated
vendored
@ -16,6 +16,8 @@ package types
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"math"
|
"math"
|
||||||
|
|
||||||
|
"github.com/google/cel-go/common/types/ref"
|
||||||
)
|
)
|
||||||
|
|
||||||
func compareDoubleInt(d Double, i Int) Int {
|
func compareDoubleInt(d Double, i Int) Int {
|
||||||
@ -74,7 +76,7 @@ func compareDouble(a, b Double) Int {
|
|||||||
return IntZero
|
return IntZero
|
||||||
}
|
}
|
||||||
|
|
||||||
func compareInt(a, b Int) Int {
|
func compareInt(a, b Int) ref.Val {
|
||||||
if a < b {
|
if a < b {
|
||||||
return IntNegOne
|
return IntNegOne
|
||||||
}
|
}
|
||||||
@ -84,7 +86,7 @@ func compareInt(a, b Int) Int {
|
|||||||
return IntZero
|
return IntZero
|
||||||
}
|
}
|
||||||
|
|
||||||
func compareUint(a, b Uint) Int {
|
func compareUint(a, b Uint) ref.Val {
|
||||||
if a < b {
|
if a < b {
|
||||||
return IntNegOne
|
return IntNegOne
|
||||||
}
|
}
|
||||||
|
13
vendor/github.com/google/cel-go/common/types/err.go
generated
vendored
13
vendor/github.com/google/cel-go/common/types/err.go
generated
vendored
@ -78,12 +78,10 @@ func ValOrErr(val ref.Val, format string, args ...interface{}) ref.Val {
|
|||||||
if val == nil {
|
if val == nil {
|
||||||
return NewErr(format, args...)
|
return NewErr(format, args...)
|
||||||
}
|
}
|
||||||
switch val.Type() {
|
if IsUnknownOrError(val) {
|
||||||
case ErrType, UnknownType:
|
|
||||||
return val
|
return val
|
||||||
default:
|
|
||||||
return NewErr(format, args...)
|
|
||||||
}
|
}
|
||||||
|
return NewErr(format, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// wrapErr wraps an existing Go error value into a CEL Err value.
|
// wrapErr wraps an existing Go error value into a CEL Err value.
|
||||||
@ -126,5 +124,10 @@ func (e *Err) Value() interface{} {
|
|||||||
// IsError returns whether the input element ref.Type or ref.Val is equal to
|
// IsError returns whether the input element ref.Type or ref.Val is equal to
|
||||||
// the ErrType singleton.
|
// the ErrType singleton.
|
||||||
func IsError(val ref.Val) bool {
|
func IsError(val ref.Val) bool {
|
||||||
return val.Type() == ErrType
|
switch val.(type) {
|
||||||
|
case *Err:
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
75
vendor/github.com/google/cel-go/common/types/list.go
generated
vendored
75
vendor/github.com/google/cel-go/common/types/list.go
generated
vendored
@ -96,14 +96,16 @@ func NewJSONList(adapter ref.TypeAdapter, l *structpb.ListValue) traits.Lister {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewMutableList creates a new mutable list whose internal state can be modified.
|
// NewMutableList creates a new mutable list whose internal state can be modified.
|
||||||
//
|
func NewMutableList(adapter ref.TypeAdapter) traits.MutableLister {
|
||||||
// The mutable list only handles `Add` calls correctly as it is intended only for use within
|
var mutableValues []ref.Val
|
||||||
// comprehension loops which generate an immutable result upon completion.
|
|
||||||
func NewMutableList(adapter ref.TypeAdapter) traits.Lister {
|
|
||||||
return &mutableList{
|
return &mutableList{
|
||||||
TypeAdapter: adapter,
|
baseList: &baseList{
|
||||||
baseList: nil,
|
TypeAdapter: adapter,
|
||||||
mutableValues: []ref.Val{},
|
value: mutableValues,
|
||||||
|
size: 0,
|
||||||
|
get: func(i int) interface{} { return mutableValues[i] },
|
||||||
|
},
|
||||||
|
mutableValues: mutableValues,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,16 +240,14 @@ func (l *baseList) Equal(other ref.Val) ref.Val {
|
|||||||
|
|
||||||
// Get implements the traits.Indexer interface method.
|
// Get implements the traits.Indexer interface method.
|
||||||
func (l *baseList) Get(index ref.Val) ref.Val {
|
func (l *baseList) Get(index ref.Val) ref.Val {
|
||||||
i, ok := index.(Int)
|
ind, err := indexOrError(index)
|
||||||
if !ok {
|
if err != nil {
|
||||||
return ValOrErr(index, "unsupported index type '%s' in list", index.Type())
|
return ValOrErr(index, err.Error())
|
||||||
}
|
}
|
||||||
iv := int(i)
|
if ind < 0 || ind >= l.size {
|
||||||
if iv < 0 || iv >= l.size {
|
return NewErr("index '%d' out of range in list size '%d'", ind, l.Size())
|
||||||
return NewErr("index '%d' out of range in list size '%d'", i, l.Size())
|
|
||||||
}
|
}
|
||||||
elem := l.get(iv)
|
return l.NativeToValue(l.get(ind))
|
||||||
return l.NativeToValue(elem)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Iterator implements the traits.Iterable interface method.
|
// Iterator implements the traits.Iterable interface method.
|
||||||
@ -272,20 +272,25 @@ func (l *baseList) Value() interface{} {
|
|||||||
|
|
||||||
// mutableList aggregates values into its internal storage. For use with internal CEL variables only.
|
// mutableList aggregates values into its internal storage. For use with internal CEL variables only.
|
||||||
type mutableList struct {
|
type mutableList struct {
|
||||||
ref.TypeAdapter
|
|
||||||
*baseList
|
*baseList
|
||||||
mutableValues []ref.Val
|
mutableValues []ref.Val
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add copies elements from the other list into the internal storage of the mutable list.
|
// Add copies elements from the other list into the internal storage of the mutable list.
|
||||||
|
// The ref.Val returned by Add is the receiver.
|
||||||
func (l *mutableList) Add(other ref.Val) ref.Val {
|
func (l *mutableList) Add(other ref.Val) ref.Val {
|
||||||
otherList, ok := other.(traits.Lister)
|
switch otherList := other.(type) {
|
||||||
if !ok {
|
case *mutableList:
|
||||||
|
l.mutableValues = append(l.mutableValues, otherList.mutableValues...)
|
||||||
|
l.size += len(otherList.mutableValues)
|
||||||
|
case traits.Lister:
|
||||||
|
for i := IntZero; i < otherList.Size().(Int); i++ {
|
||||||
|
l.size++
|
||||||
|
l.mutableValues = append(l.mutableValues, otherList.Get(i))
|
||||||
|
}
|
||||||
|
default:
|
||||||
return MaybeNoSuchOverloadErr(otherList)
|
return MaybeNoSuchOverloadErr(otherList)
|
||||||
}
|
}
|
||||||
for i := IntZero; i < otherList.Size().(Int); i++ {
|
|
||||||
l.mutableValues = append(l.mutableValues, otherList.Get(i))
|
|
||||||
}
|
|
||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -323,7 +328,7 @@ func (l *concatList) Add(other ref.Val) ref.Val {
|
|||||||
nextList: otherList}
|
nextList: otherList}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Contains implments the traits.Container interface method.
|
// Contains implements the traits.Container interface method.
|
||||||
func (l *concatList) Contains(elem ref.Val) ref.Val {
|
func (l *concatList) Contains(elem ref.Val) ref.Val {
|
||||||
// The concat list relies on the IsErrorOrUnknown checks against the input element to be
|
// The concat list relies on the IsErrorOrUnknown checks against the input element to be
|
||||||
// performed by the `prevList` and/or `nextList`.
|
// performed by the `prevList` and/or `nextList`.
|
||||||
@ -391,10 +396,11 @@ func (l *concatList) Equal(other ref.Val) ref.Val {
|
|||||||
|
|
||||||
// Get implements the traits.Indexer interface method.
|
// Get implements the traits.Indexer interface method.
|
||||||
func (l *concatList) Get(index ref.Val) ref.Val {
|
func (l *concatList) Get(index ref.Val) ref.Val {
|
||||||
i, ok := index.(Int)
|
ind, err := indexOrError(index)
|
||||||
if !ok {
|
if err != nil {
|
||||||
return MaybeNoSuchOverloadErr(index)
|
return ValOrErr(index, err.Error())
|
||||||
}
|
}
|
||||||
|
i := Int(ind)
|
||||||
if i < l.prevList.Size().(Int) {
|
if i < l.prevList.Size().(Int) {
|
||||||
return l.prevList.Get(i)
|
return l.prevList.Get(i)
|
||||||
}
|
}
|
||||||
@ -462,3 +468,22 @@ func (it *listIterator) Next() ref.Val {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func indexOrError(index ref.Val) (int, error) {
|
||||||
|
switch iv := index.(type) {
|
||||||
|
case Int:
|
||||||
|
return int(iv), nil
|
||||||
|
case Double:
|
||||||
|
if ik, ok := doubleToInt64Lossless(float64(iv)); ok {
|
||||||
|
return int(ik), nil
|
||||||
|
}
|
||||||
|
return -1, fmt.Errorf("unsupported index value %v in list", index)
|
||||||
|
case Uint:
|
||||||
|
if ik, ok := uint64ToInt64Lossless(uint64(iv)); ok {
|
||||||
|
return int(ik), nil
|
||||||
|
}
|
||||||
|
return -1, fmt.Errorf("unsupported index value %v in list", index)
|
||||||
|
default:
|
||||||
|
return -1, fmt.Errorf("unsupported index type '%s' in list", index.Type())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
4
vendor/github.com/google/cel-go/common/types/map.go
generated
vendored
4
vendor/github.com/google/cel-go/common/types/map.go
generated
vendored
@ -105,7 +105,7 @@ var (
|
|||||||
// This interface implements portions of the API surface area required by the traits.Mapper
|
// This interface implements portions of the API surface area required by the traits.Mapper
|
||||||
// interface.
|
// interface.
|
||||||
type mapAccessor interface {
|
type mapAccessor interface {
|
||||||
// Find returns a value, if one exists, for the inpput key.
|
// Find returns a value, if one exists, for the input key.
|
||||||
//
|
//
|
||||||
// If the key is not found the function returns (nil, false).
|
// If the key is not found the function returns (nil, false).
|
||||||
Find(ref.Val) (ref.Val, bool)
|
Find(ref.Val) (ref.Val, bool)
|
||||||
@ -429,7 +429,7 @@ func (a *refValMapAccessor) Find(key ref.Val) (ref.Val, bool) {
|
|||||||
case Double:
|
case Double:
|
||||||
if ik, ok := doubleToInt64Lossless(float64(k)); ok {
|
if ik, ok := doubleToInt64Lossless(float64(k)); ok {
|
||||||
if keyVal, found := a.mapVal[Int(ik)]; found {
|
if keyVal, found := a.mapVal[Int(ik)]; found {
|
||||||
return keyVal, true
|
return keyVal, found
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if uk, ok := doubleToUint64Lossless(float64(k)); ok {
|
if uk, ok := doubleToUint64Lossless(float64(k)); ok {
|
||||||
|
8
vendor/github.com/google/cel-go/common/types/overflow.go
generated
vendored
8
vendor/github.com/google/cel-go/common/types/overflow.go
generated
vendored
@ -316,7 +316,7 @@ func doubleToUint64Checked(v float64) (uint64, error) {
|
|||||||
return uint64(v), nil
|
return uint64(v), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// int64toUint64Checked converts an int64 to a uint64 value.
|
// int64ToUint64Checked converts an int64 to a uint64 value.
|
||||||
//
|
//
|
||||||
// If the conversion fails due to overflow the error return value will be non-nil.
|
// If the conversion fails due to overflow the error return value will be non-nil.
|
||||||
func int64ToUint64Checked(v int64) (uint64, error) {
|
func int64ToUint64Checked(v int64) (uint64, error) {
|
||||||
@ -326,7 +326,7 @@ func int64ToUint64Checked(v int64) (uint64, error) {
|
|||||||
return uint64(v), nil
|
return uint64(v), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// int64toInt32Checked converts an int64 to an int32 value.
|
// int64ToInt32Checked converts an int64 to an int32 value.
|
||||||
//
|
//
|
||||||
// If the conversion fails due to overflow the error return value will be non-nil.
|
// If the conversion fails due to overflow the error return value will be non-nil.
|
||||||
func int64ToInt32Checked(v int64) (int32, error) {
|
func int64ToInt32Checked(v int64) (int32, error) {
|
||||||
@ -336,7 +336,7 @@ func int64ToInt32Checked(v int64) (int32, error) {
|
|||||||
return int32(v), nil
|
return int32(v), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// uint64toUint32Checked converts a uint64 to a uint32 value.
|
// uint64ToUint32Checked converts a uint64 to a uint32 value.
|
||||||
//
|
//
|
||||||
// If the conversion fails due to overflow the error return value will be non-nil.
|
// If the conversion fails due to overflow the error return value will be non-nil.
|
||||||
func uint64ToUint32Checked(v uint64) (uint32, error) {
|
func uint64ToUint32Checked(v uint64) (uint32, error) {
|
||||||
@ -346,7 +346,7 @@ func uint64ToUint32Checked(v uint64) (uint32, error) {
|
|||||||
return uint32(v), nil
|
return uint32(v), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// uint64toInt64Checked converts a uint64 to an int64 value.
|
// uint64ToInt64Checked converts a uint64 to an int64 value.
|
||||||
//
|
//
|
||||||
// If the conversion fails due to overflow the error return value will be non-nil.
|
// If the conversion fails due to overflow the error return value will be non-nil.
|
||||||
func uint64ToInt64Checked(v uint64) (int64, error) {
|
func uint64ToInt64Checked(v uint64) (int64, error) {
|
||||||
|
2
vendor/github.com/google/cel-go/common/types/string.go
generated
vendored
2
vendor/github.com/google/cel-go/common/types/string.go
generated
vendored
@ -167,7 +167,7 @@ func (s String) Match(pattern ref.Val) ref.Val {
|
|||||||
return Bool(matched)
|
return Bool(matched)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Receive implements traits.Reciever.Receive.
|
// Receive implements traits.Receiver.Receive.
|
||||||
func (s String) Receive(function string, overload string, args []ref.Val) ref.Val {
|
func (s String) Receive(function string, overload string, args []ref.Val) ref.Val {
|
||||||
switch len(args) {
|
switch len(args) {
|
||||||
case 1:
|
case 1:
|
||||||
|
2
vendor/github.com/google/cel-go/common/types/timestamp.go
generated
vendored
2
vendor/github.com/google/cel-go/common/types/timestamp.go
generated
vendored
@ -138,7 +138,7 @@ func (t Timestamp) Equal(other ref.Val) ref.Val {
|
|||||||
return Bool(ok && t.Time.Equal(otherTime.Time))
|
return Bool(ok && t.Time.Equal(otherTime.Time))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Receive implements traits.Reciever.Receive.
|
// Receive implements traits.Receiver.Receive.
|
||||||
func (t Timestamp) Receive(function string, overload string, args []ref.Val) ref.Val {
|
func (t Timestamp) Receive(function string, overload string, args []ref.Val) ref.Val {
|
||||||
switch len(args) {
|
switch len(args) {
|
||||||
case 0:
|
case 0:
|
||||||
|
1
vendor/github.com/google/cel-go/common/types/traits/lister.go
generated
vendored
1
vendor/github.com/google/cel-go/common/types/traits/lister.go
generated
vendored
@ -28,5 +28,6 @@ type Lister interface {
|
|||||||
|
|
||||||
// MutableLister interface which emits an immutable result after an intermediate computation.
|
// MutableLister interface which emits an immutable result after an intermediate computation.
|
||||||
type MutableLister interface {
|
type MutableLister interface {
|
||||||
|
Lister
|
||||||
ToImmutableList() Lister
|
ToImmutableList() Lister
|
||||||
}
|
}
|
||||||
|
11
vendor/github.com/google/cel-go/common/types/unknown.go
generated
vendored
11
vendor/github.com/google/cel-go/common/types/unknown.go
generated
vendored
@ -34,12 +34,12 @@ func (u Unknown) ConvertToNative(typeDesc reflect.Type) (interface{}, error) {
|
|||||||
return u.Value(), nil
|
return u.Value(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ConvertToType implements ref.Val.ConvertToType.
|
// ConvertToType is an identity function since unknown values cannot be modified.
|
||||||
func (u Unknown) ConvertToType(typeVal ref.Type) ref.Val {
|
func (u Unknown) ConvertToType(typeVal ref.Type) ref.Val {
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
// Equal implements ref.Val.Equal.
|
// Equal is an identity function since unknown values cannot be modified.
|
||||||
func (u Unknown) Equal(other ref.Val) ref.Val {
|
func (u Unknown) Equal(other ref.Val) ref.Val {
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
@ -57,5 +57,10 @@ func (u Unknown) Value() interface{} {
|
|||||||
// IsUnknown returns whether the element ref.Type or ref.Val is equal to the
|
// IsUnknown returns whether the element ref.Type or ref.Val is equal to the
|
||||||
// UnknownType singleton.
|
// UnknownType singleton.
|
||||||
func IsUnknown(val ref.Val) bool {
|
func IsUnknown(val ref.Val) bool {
|
||||||
return val.Type() == UnknownType
|
switch val.(type) {
|
||||||
|
case Unknown:
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
6
vendor/github.com/google/cel-go/common/types/util.go
generated
vendored
6
vendor/github.com/google/cel-go/common/types/util.go
generated
vendored
@ -18,10 +18,10 @@ import (
|
|||||||
"github.com/google/cel-go/common/types/ref"
|
"github.com/google/cel-go/common/types/ref"
|
||||||
)
|
)
|
||||||
|
|
||||||
// IsUnknownOrError returns whether the input element ref.Val is an ErrType or UnknonwType.
|
// IsUnknownOrError returns whether the input element ref.Val is an ErrType or UnknownType.
|
||||||
func IsUnknownOrError(val ref.Val) bool {
|
func IsUnknownOrError(val ref.Val) bool {
|
||||||
switch val.Type() {
|
switch val.(type) {
|
||||||
case UnknownType, ErrType:
|
case Unknown, *Err:
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
12
vendor/github.com/google/cel-go/interpreter/activation.go
generated
vendored
12
vendor/github.com/google/cel-go/interpreter/activation.go
generated
vendored
@ -35,13 +35,17 @@ type Activation interface {
|
|||||||
Parent() Activation
|
Parent() Activation
|
||||||
}
|
}
|
||||||
|
|
||||||
// EmptyActivation returns a variable free activation.
|
// EmptyActivation returns a variable-free activation.
|
||||||
func EmptyActivation() Activation {
|
func EmptyActivation() Activation {
|
||||||
// This call cannot fail.
|
return emptyActivation{}
|
||||||
a, _ := NewActivation(map[string]interface{}{})
|
|
||||||
return a
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// emptyActivation is a variable-free activation.
|
||||||
|
type emptyActivation struct{}
|
||||||
|
|
||||||
|
func (emptyActivation) ResolveName(string) (interface{}, bool) { return nil, false }
|
||||||
|
func (emptyActivation) Parent() Activation { return nil }
|
||||||
|
|
||||||
// NewActivation returns an activation based on a map-based binding where the map keys are
|
// NewActivation returns an activation based on a map-based binding where the map keys are
|
||||||
// expected to be qualified names used with ResolveName calls.
|
// expected to be qualified names used with ResolveName calls.
|
||||||
//
|
//
|
||||||
|
6
vendor/github.com/google/cel-go/interpreter/attribute_patterns.go
generated
vendored
6
vendor/github.com/google/cel-go/interpreter/attribute_patterns.go
generated
vendored
@ -105,7 +105,7 @@ func (apat *AttributePattern) QualifierPatterns() []*AttributeQualifierPattern {
|
|||||||
return apat.qualifierPatterns
|
return apat.qualifierPatterns
|
||||||
}
|
}
|
||||||
|
|
||||||
// AttributeQualifierPattern holds a wilcard or valued qualifier pattern.
|
// AttributeQualifierPattern holds a wildcard or valued qualifier pattern.
|
||||||
type AttributeQualifierPattern struct {
|
type AttributeQualifierPattern struct {
|
||||||
wildcard bool
|
wildcard bool
|
||||||
value interface{}
|
value interface{}
|
||||||
@ -125,7 +125,7 @@ func (qpat *AttributeQualifierPattern) Matches(q Qualifier) bool {
|
|||||||
// type, is equal to the value held in the Qualifier. This interface is used by the
|
// type, is equal to the value held in the Qualifier. This interface is used by the
|
||||||
// AttributeQualifierPattern to determine pattern matches for non-wildcard qualifier patterns.
|
// AttributeQualifierPattern to determine pattern matches for non-wildcard qualifier patterns.
|
||||||
//
|
//
|
||||||
// Note: Attribute values are also Qualifier values; however, Attriutes are resolved before
|
// Note: Attribute values are also Qualifier values; however, Attributes are resolved before
|
||||||
// qualification happens. This is an implementation detail, but one relevant to why the Attribute
|
// qualification happens. This is an implementation detail, but one relevant to why the Attribute
|
||||||
// types do not surface in the list of implementations.
|
// types do not surface in the list of implementations.
|
||||||
//
|
//
|
||||||
@ -206,7 +206,7 @@ func (fac *partialAttributeFactory) AbsoluteAttribute(id int64, names ...string)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MaybeAttribute implementation of the AttributeFactory interface which ensure that the set of
|
// MaybeAttribute implementation of the AttributeFactory interface which ensure that the set of
|
||||||
// 'maybe' NamespacedAttribute values are produced using the PartialAttributeFactory rather than
|
// 'maybe' NamespacedAttribute values are produced using the partialAttributeFactory rather than
|
||||||
// the base AttributeFactory implementation.
|
// the base AttributeFactory implementation.
|
||||||
func (fac *partialAttributeFactory) MaybeAttribute(id int64, name string) Attribute {
|
func (fac *partialAttributeFactory) MaybeAttribute(id int64, name string) Attribute {
|
||||||
return &maybeAttribute{
|
return &maybeAttribute{
|
||||||
|
4
vendor/github.com/google/cel-go/interpreter/attributes.go
generated
vendored
4
vendor/github.com/google/cel-go/interpreter/attributes.go
generated
vendored
@ -587,7 +587,7 @@ func (a *relativeAttribute) Resolve(vars Activation) (interface{}, error) {
|
|||||||
if types.IsUnknown(v) {
|
if types.IsUnknown(v) {
|
||||||
return v, nil
|
return v, nil
|
||||||
}
|
}
|
||||||
// Next, qualify it. Qualification handles unkonwns as well, so there's no need to recheck.
|
// Next, qualify it. Qualification handles unknowns as well, so there's no need to recheck.
|
||||||
var err error
|
var err error
|
||||||
var obj interface{} = v
|
var obj interface{} = v
|
||||||
for _, qual := range a.qualifiers {
|
for _, qual := range a.qualifiers {
|
||||||
@ -637,6 +637,8 @@ func newQualifier(adapter ref.TypeAdapter, id int64, v interface{}) (Qualifier,
|
|||||||
qual = &uintQualifier{id: id, value: uint64(val), celValue: val, adapter: adapter}
|
qual = &uintQualifier{id: id, value: uint64(val), celValue: val, adapter: adapter}
|
||||||
case types.Bool:
|
case types.Bool:
|
||||||
qual = &boolQualifier{id: id, value: bool(val), celValue: val, adapter: adapter}
|
qual = &boolQualifier{id: id, value: bool(val), celValue: val, adapter: adapter}
|
||||||
|
case types.Double:
|
||||||
|
qual = &doubleQualifier{id: id, value: float64(val), celValue: val, adapter: adapter}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("invalid qualifier type: %T", v)
|
return nil, fmt.Errorf("invalid qualifier type: %T", v)
|
||||||
}
|
}
|
||||||
|
2
vendor/github.com/google/cel-go/interpreter/decorators.go
generated
vendored
2
vendor/github.com/google/cel-go/interpreter/decorators.go
generated
vendored
@ -98,7 +98,7 @@ func decDisableShortcircuits() InterpretableDecorator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// decOptimize optimizes the program plan by looking for common evaluation patterns and
|
// decOptimize optimizes the program plan by looking for common evaluation patterns and
|
||||||
// conditionally precomputating the result.
|
// conditionally precomputing the result.
|
||||||
// - build list and map values with constant elements.
|
// - build list and map values with constant elements.
|
||||||
// - convert 'in' operations to set membership tests if possible.
|
// - convert 'in' operations to set membership tests if possible.
|
||||||
func decOptimize() InterpretableDecorator {
|
func decOptimize() InterpretableDecorator {
|
||||||
|
18
vendor/github.com/google/cel-go/interpreter/interpretable.go
generated
vendored
18
vendor/github.com/google/cel-go/interpreter/interpretable.go
generated
vendored
@ -677,7 +677,19 @@ func (m *evalMap) Eval(ctx Activation) ref.Val {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *evalMap) InitVals() []Interpretable {
|
func (m *evalMap) InitVals() []Interpretable {
|
||||||
return append(m.keys, m.vals...)
|
if len(m.keys) != len(m.vals) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
result := make([]Interpretable, len(m.keys)+len(m.vals))
|
||||||
|
idx := 0
|
||||||
|
for i, k := range m.keys {
|
||||||
|
v := m.vals[i]
|
||||||
|
result[idx] = k
|
||||||
|
idx++
|
||||||
|
result[idx] = v
|
||||||
|
idx++
|
||||||
|
}
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *evalMap) Type() ref.Type {
|
func (m *evalMap) Type() ref.Type {
|
||||||
@ -852,7 +864,7 @@ func (fold *evalFold) Cost() (min, max int64) {
|
|||||||
iMax + aMax + cMax*rangeCnt + sMax*rangeCnt + rMax
|
iMax + aMax + cMax*rangeCnt + sMax*rangeCnt + rMax
|
||||||
}
|
}
|
||||||
|
|
||||||
// Optional Intepretable implementations that specialize, subsume, or extend the core evaluation
|
// Optional Interpretable implementations that specialize, subsume, or extend the core evaluation
|
||||||
// plan via decorators.
|
// plan via decorators.
|
||||||
|
|
||||||
// evalSetMembership is an Interpretable implementation which tests whether an input value
|
// evalSetMembership is an Interpretable implementation which tests whether an input value
|
||||||
@ -969,7 +981,7 @@ func (e *evalWatchConstQual) Qualify(vars Activation, obj interface{}) (interfac
|
|||||||
return out, err
|
return out, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// QualifierValueEquals tests whether the incoming value is equal to the qualificying constant.
|
// QualifierValueEquals tests whether the incoming value is equal to the qualifying constant.
|
||||||
func (e *evalWatchConstQual) QualifierValueEquals(value interface{}) bool {
|
func (e *evalWatchConstQual) QualifierValueEquals(value interface{}) bool {
|
||||||
qve, ok := e.ConstantQualifier.(qualifierValueEquator)
|
qve, ok := e.ConstantQualifier.(qualifierValueEquator)
|
||||||
return ok && qve.QualifierValueEquals(value)
|
return ok && qve.QualifierValueEquals(value)
|
||||||
|
2
vendor/github.com/google/cel-go/interpreter/interpreter.go
generated
vendored
2
vendor/github.com/google/cel-go/interpreter/interpreter.go
generated
vendored
@ -162,7 +162,7 @@ type exprInterpreter struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewInterpreter builds an Interpreter from a Dispatcher and TypeProvider which will be used
|
// NewInterpreter builds an Interpreter from a Dispatcher and TypeProvider which will be used
|
||||||
// throughout the Eval of all Interpretable instances gerenated from it.
|
// throughout the Eval of all Interpretable instances generated from it.
|
||||||
func NewInterpreter(dispatcher Dispatcher,
|
func NewInterpreter(dispatcher Dispatcher,
|
||||||
container *containers.Container,
|
container *containers.Container,
|
||||||
provider ref.TypeProvider,
|
provider ref.TypeProvider,
|
||||||
|
2
vendor/github.com/google/cel-go/interpreter/planner.go
generated
vendored
2
vendor/github.com/google/cel-go/interpreter/planner.go
generated
vendored
@ -77,7 +77,7 @@ func newUncheckedPlanner(disp Dispatcher,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// planner is an implementatio of the interpretablePlanner interface.
|
// planner is an implementation of the interpretablePlanner interface.
|
||||||
type planner struct {
|
type planner struct {
|
||||||
disp Dispatcher
|
disp Dispatcher
|
||||||
provider ref.TypeProvider
|
provider ref.TypeProvider
|
||||||
|
2
vendor/github.com/google/cel-go/interpreter/prune.go
generated
vendored
2
vendor/github.com/google/cel-go/interpreter/prune.go
generated
vendored
@ -228,7 +228,7 @@ func (p *astPruner) prune(node *exprpb.Expr) (*exprpb.Expr, bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// We have either an unknown/error value, or something we dont want to
|
// We have either an unknown/error value, or something we don't want to
|
||||||
// transform, or expression was not evaluated. If possible, drill down
|
// transform, or expression was not evaluated. If possible, drill down
|
||||||
// more.
|
// more.
|
||||||
|
|
||||||
|
87
vendor/github.com/google/cel-go/interpreter/runtimecost.go
generated
vendored
87
vendor/github.com/google/cel-go/interpreter/runtimecost.go
generated
vendored
@ -41,26 +41,42 @@ func CostObserver(tracker *CostTracker) EvalObserver {
|
|||||||
case ConstantQualifier:
|
case ConstantQualifier:
|
||||||
// TODO: Push identifiers on to the stack before observing constant qualifiers that apply to them
|
// TODO: Push identifiers on to the stack before observing constant qualifiers that apply to them
|
||||||
// and enable the below pop. Once enabled this can case can be collapsed into the Qualifier case.
|
// and enable the below pop. Once enabled this can case can be collapsed into the Qualifier case.
|
||||||
//tracker.stack.pop(1)
|
|
||||||
tracker.cost++
|
tracker.cost++
|
||||||
case InterpretableConst:
|
case InterpretableConst:
|
||||||
// zero cost
|
// zero cost
|
||||||
case InterpretableAttribute:
|
case InterpretableAttribute:
|
||||||
// Ternary has no direct cost. All cost is from the conditional and the true/false branch expressions.
|
switch a := t.Attr().(type) {
|
||||||
_, isConditional := t.Attr().(*conditionalAttribute)
|
case *conditionalAttribute:
|
||||||
if !isConditional {
|
// Ternary has no direct cost. All cost is from the conditional and the true/false branch expressions.
|
||||||
|
tracker.stack.drop(a.falsy.ID(), a.truthy.ID(), a.expr.ID())
|
||||||
|
default:
|
||||||
|
tracker.stack.drop(t.Attr().ID())
|
||||||
tracker.cost += common.SelectAndIdentCost
|
tracker.cost += common.SelectAndIdentCost
|
||||||
}
|
}
|
||||||
case *evalExhaustiveConditional, *evalOr, *evalAnd, *evalExhaustiveOr, *evalExhaustiveAnd:
|
case *evalExhaustiveConditional:
|
||||||
// Ternary has no direct cost. All cost is from the conditional and the true/false branch expressions.
|
// Ternary has no direct cost. All cost is from the conditional and the true/false branch expressions.
|
||||||
|
tracker.stack.drop(t.attr.falsy.ID(), t.attr.truthy.ID(), t.attr.expr.ID())
|
||||||
|
|
||||||
|
// While the field names are identical, the boolean operation eval structs do not share an interface and so
|
||||||
|
// must be handled individually.
|
||||||
|
case *evalOr:
|
||||||
|
tracker.stack.drop(t.rhs.ID(), t.lhs.ID())
|
||||||
|
case *evalAnd:
|
||||||
|
tracker.stack.drop(t.rhs.ID(), t.lhs.ID())
|
||||||
|
case *evalExhaustiveOr:
|
||||||
|
tracker.stack.drop(t.rhs.ID(), t.lhs.ID())
|
||||||
|
case *evalExhaustiveAnd:
|
||||||
|
tracker.stack.drop(t.rhs.ID(), t.lhs.ID())
|
||||||
|
case *evalFold:
|
||||||
|
tracker.stack.drop(t.iterRange.ID())
|
||||||
case Qualifier:
|
case Qualifier:
|
||||||
tracker.stack.pop(1)
|
|
||||||
tracker.cost++
|
tracker.cost++
|
||||||
case InterpretableCall:
|
case InterpretableCall:
|
||||||
if argVals, ok := tracker.stack.pop(len(t.Args())); ok {
|
if argVals, ok := tracker.stack.dropArgs(t.Args()); ok {
|
||||||
tracker.cost += tracker.costCall(t, argVals, val)
|
tracker.cost += tracker.costCall(t, argVals, val)
|
||||||
}
|
}
|
||||||
case InterpretableConstructor:
|
case InterpretableConstructor:
|
||||||
|
tracker.stack.dropArgs(t.InitVals())
|
||||||
switch t.Type() {
|
switch t.Type() {
|
||||||
case types.ListType:
|
case types.ListType:
|
||||||
tracker.cost += common.ListCreateBaseCost
|
tracker.cost += common.ListCreateBaseCost
|
||||||
@ -70,7 +86,7 @@ func CostObserver(tracker *CostTracker) EvalObserver {
|
|||||||
tracker.cost += common.StructCreateBaseCost
|
tracker.cost += common.StructCreateBaseCost
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tracker.stack.push(val)
|
tracker.stack.push(val, id)
|
||||||
|
|
||||||
if tracker.Limit != nil && tracker.cost > *tracker.Limit {
|
if tracker.Limit != nil && tracker.cost > *tracker.Limit {
|
||||||
panic(EvalCancelledError{Cause: CostLimitExceeded, Message: "operation cancelled: actual cost limit exceeded"})
|
panic(EvalCancelledError{Cause: CostLimitExceeded, Message: "operation cancelled: actual cost limit exceeded"})
|
||||||
@ -170,19 +186,56 @@ func (c CostTracker) actualSize(value ref.Val) uint64 {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
// refValStack keeps track of values of the stack for cost calculation purposes
|
type stackVal struct {
|
||||||
type refValStack []ref.Val
|
Val ref.Val
|
||||||
|
ID int64
|
||||||
|
}
|
||||||
|
|
||||||
func (s *refValStack) push(value ref.Val) {
|
// refValStack keeps track of values of the stack for cost calculation purposes
|
||||||
|
type refValStack []stackVal
|
||||||
|
|
||||||
|
func (s *refValStack) push(val ref.Val, id int64) {
|
||||||
|
value := stackVal{Val: val, ID: id}
|
||||||
*s = append(*s, value)
|
*s = append(*s, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *refValStack) pop(count int) ([]ref.Val, bool) {
|
// TODO: Allowing drop and dropArgs to remove stack items above the IDs they are provided is a workaround. drop and dropArgs
|
||||||
if len(*s) < count {
|
// should find and remove only the stack items matching the provided IDs once all attributes are properly pushed and popped from stack.
|
||||||
|
|
||||||
|
// drop searches the stack for each ID and removes the ID and all stack items above it.
|
||||||
|
// If none of the IDs are found, the stack is not modified.
|
||||||
|
// WARNING: It is possible for multiple expressions with the same ID to exist (due to how macros are implemented) so it's
|
||||||
|
// possible that a dropped ID will remain on the stack. They should be removed when IDs on the stack are popped.
|
||||||
|
func (s *refValStack) drop(ids ...int64) {
|
||||||
|
for _, id := range ids {
|
||||||
|
for idx := len(*s) - 1; idx >= 0; idx-- {
|
||||||
|
if (*s)[idx].ID == id {
|
||||||
|
*s = (*s)[:idx]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// dropArgs searches the stack for all the args by their IDs, accumulates their associated ref.Vals and drops any
|
||||||
|
// stack items above any of the arg IDs. If any of the IDs are not found the stack, false is returned.
|
||||||
|
// Args are assumed to be found in the stack in reverse order, i.e. the last arg is expected to be found highest in
|
||||||
|
// the stack.
|
||||||
|
// WARNING: It is possible for multiple expressions with the same ID to exist (due to how macros are implemented) so it's
|
||||||
|
// possible that a dropped ID will remain on the stack. They should be removed when IDs on the stack are popped.
|
||||||
|
func (s *refValStack) dropArgs(args []Interpretable) ([]ref.Val, bool) {
|
||||||
|
result := make([]ref.Val, len(args))
|
||||||
|
argloop:
|
||||||
|
for nIdx := len(args) - 1; nIdx >= 0; nIdx-- {
|
||||||
|
for idx := len(*s) - 1; idx >= 0; idx-- {
|
||||||
|
if (*s)[idx].ID == args[nIdx].ID() {
|
||||||
|
el := (*s)[idx]
|
||||||
|
*s = (*s)[:idx]
|
||||||
|
result[nIdx] = el.Val
|
||||||
|
continue argloop
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
idx := len(*s) - count
|
return result, true
|
||||||
el := (*s)[idx:]
|
|
||||||
*s = (*s)[:idx]
|
|
||||||
return el, true
|
|
||||||
}
|
}
|
||||||
|
5
vendor/google.golang.org/grpc/MAINTAINERS.md
generated
vendored
5
vendor/google.golang.org/grpc/MAINTAINERS.md
generated
vendored
@ -8,17 +8,18 @@ See [CONTRIBUTING.md](https://github.com/grpc/grpc-community/blob/master/CONTRIB
|
|||||||
for general contribution guidelines.
|
for general contribution guidelines.
|
||||||
|
|
||||||
## Maintainers (in alphabetical order)
|
## Maintainers (in alphabetical order)
|
||||||
- [canguler](https://github.com/canguler), Google LLC
|
|
||||||
- [cesarghali](https://github.com/cesarghali), Google LLC
|
- [cesarghali](https://github.com/cesarghali), Google LLC
|
||||||
- [dfawley](https://github.com/dfawley), Google LLC
|
- [dfawley](https://github.com/dfawley), Google LLC
|
||||||
- [easwars](https://github.com/easwars), Google LLC
|
- [easwars](https://github.com/easwars), Google LLC
|
||||||
- [jadekler](https://github.com/jadekler), Google LLC
|
|
||||||
- [menghanl](https://github.com/menghanl), Google LLC
|
- [menghanl](https://github.com/menghanl), Google LLC
|
||||||
- [srini100](https://github.com/srini100), Google LLC
|
- [srini100](https://github.com/srini100), Google LLC
|
||||||
|
|
||||||
## Emeritus Maintainers (in alphabetical order)
|
## Emeritus Maintainers (in alphabetical order)
|
||||||
- [adelez](https://github.com/adelez), Google LLC
|
- [adelez](https://github.com/adelez), Google LLC
|
||||||
|
- [canguler](https://github.com/canguler), Google LLC
|
||||||
- [iamqizhao](https://github.com/iamqizhao), Google LLC
|
- [iamqizhao](https://github.com/iamqizhao), Google LLC
|
||||||
|
- [jadekler](https://github.com/jadekler), Google LLC
|
||||||
- [jtattermusch](https://github.com/jtattermusch), Google LLC
|
- [jtattermusch](https://github.com/jtattermusch), Google LLC
|
||||||
- [lyuxuan](https://github.com/lyuxuan), Google LLC
|
- [lyuxuan](https://github.com/lyuxuan), Google LLC
|
||||||
- [makmukhi](https://github.com/makmukhi), Google LLC
|
- [makmukhi](https://github.com/makmukhi), Google LLC
|
||||||
|
2
vendor/google.golang.org/grpc/Makefile
generated
vendored
2
vendor/google.golang.org/grpc/Makefile
generated
vendored
@ -41,8 +41,6 @@ vetdeps:
|
|||||||
clean \
|
clean \
|
||||||
proto \
|
proto \
|
||||||
test \
|
test \
|
||||||
testappengine \
|
|
||||||
testappenginedeps \
|
|
||||||
testrace \
|
testrace \
|
||||||
vet \
|
vet \
|
||||||
vetdeps
|
vetdeps
|
||||||
|
13
vendor/google.golang.org/grpc/NOTICE.txt
generated
vendored
Normal file
13
vendor/google.golang.org/grpc/NOTICE.txt
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Copyright 2014 gRPC authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
80
vendor/google.golang.org/grpc/attributes/attributes.go
generated
vendored
80
vendor/google.golang.org/grpc/attributes/attributes.go
generated
vendored
@ -25,55 +25,77 @@
|
|||||||
// later release.
|
// later release.
|
||||||
package attributes
|
package attributes
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
// Attributes is an immutable struct for storing and retrieving generic
|
// Attributes is an immutable struct for storing and retrieving generic
|
||||||
// key/value pairs. Keys must be hashable, and users should define their own
|
// key/value pairs. Keys must be hashable, and users should define their own
|
||||||
// types for keys.
|
// types for keys. Values should not be modified after they are added to an
|
||||||
|
// Attributes or if they were received from one. If values implement 'Equal(o
|
||||||
|
// interface{}) bool', it will be called by (*Attributes).Equal to determine
|
||||||
|
// whether two values with the same key should be considered equal.
|
||||||
type Attributes struct {
|
type Attributes struct {
|
||||||
m map[interface{}]interface{}
|
m map[interface{}]interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a new Attributes containing all key/value pairs in kvs. If the
|
// New returns a new Attributes containing the key/value pair.
|
||||||
// same key appears multiple times, the last value overwrites all previous
|
func New(key, value interface{}) *Attributes {
|
||||||
// values for that key. Panics if len(kvs) is not even.
|
return &Attributes{m: map[interface{}]interface{}{key: value}}
|
||||||
func New(kvs ...interface{}) *Attributes {
|
|
||||||
if len(kvs)%2 != 0 {
|
|
||||||
panic(fmt.Sprintf("attributes.New called with unexpected input: len(kvs) = %v", len(kvs)))
|
|
||||||
}
|
|
||||||
a := &Attributes{m: make(map[interface{}]interface{}, len(kvs)/2)}
|
|
||||||
for i := 0; i < len(kvs)/2; i++ {
|
|
||||||
a.m[kvs[i*2]] = kvs[i*2+1]
|
|
||||||
}
|
|
||||||
return a
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithValues returns a new Attributes containing all key/value pairs in a and
|
// WithValue returns a new Attributes containing the previous keys and values
|
||||||
// kvs. Panics if len(kvs) is not even. If the same key appears multiple
|
// and the new key/value pair. If the same key appears multiple times, the
|
||||||
// times, the last value overwrites all previous values for that key. To
|
// last value overwrites all previous values for that key. To remove an
|
||||||
// remove an existing key, use a nil value.
|
// existing key, use a nil value. value should not be modified later.
|
||||||
func (a *Attributes) WithValues(kvs ...interface{}) *Attributes {
|
func (a *Attributes) WithValue(key, value interface{}) *Attributes {
|
||||||
if a == nil {
|
if a == nil {
|
||||||
return New(kvs...)
|
return New(key, value)
|
||||||
}
|
}
|
||||||
if len(kvs)%2 != 0 {
|
n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)}
|
||||||
panic(fmt.Sprintf("attributes.New called with unexpected input: len(kvs) = %v", len(kvs)))
|
|
||||||
}
|
|
||||||
n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+len(kvs)/2)}
|
|
||||||
for k, v := range a.m {
|
for k, v := range a.m {
|
||||||
n.m[k] = v
|
n.m[k] = v
|
||||||
}
|
}
|
||||||
for i := 0; i < len(kvs)/2; i++ {
|
n.m[key] = value
|
||||||
n.m[kvs[i*2]] = kvs[i*2+1]
|
|
||||||
}
|
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
// Value returns the value associated with these attributes for key, or nil if
|
// Value returns the value associated with these attributes for key, or nil if
|
||||||
// no value is associated with key.
|
// no value is associated with key. The returned value should not be modified.
|
||||||
func (a *Attributes) Value(key interface{}) interface{} {
|
func (a *Attributes) Value(key interface{}) interface{} {
|
||||||
if a == nil {
|
if a == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return a.m[key]
|
return a.m[key]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Equal returns whether a and o are equivalent. If 'Equal(o interface{})
|
||||||
|
// bool' is implemented for a value in the attributes, it is called to
|
||||||
|
// determine if the value matches the one stored in the other attributes. If
|
||||||
|
// Equal is not implemented, standard equality is used to determine if the two
|
||||||
|
// values are equal. Note that some types (e.g. maps) aren't comparable by
|
||||||
|
// default, so they must be wrapped in a struct, or in an alias type, with Equal
|
||||||
|
// defined.
|
||||||
|
func (a *Attributes) Equal(o *Attributes) bool {
|
||||||
|
if a == nil && o == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if a == nil || o == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if len(a.m) != len(o.m) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
for k, v := range a.m {
|
||||||
|
ov, ok := o.m[k]
|
||||||
|
if !ok {
|
||||||
|
// o missing element of a
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok {
|
||||||
|
if !eq.Equal(ov) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else if v != ov {
|
||||||
|
// Fallback to a standard equality check if Value is unimplemented.
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
97
vendor/google.golang.org/grpc/balancer/balancer.go
generated
vendored
97
vendor/google.golang.org/grpc/balancer/balancer.go
generated
vendored
@ -75,24 +75,26 @@ func Get(name string) Builder {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// SubConn represents a gRPC sub connection.
|
// A SubConn represents a single connection to a gRPC backend service.
|
||||||
// Each sub connection contains a list of addresses. gRPC will
|
|
||||||
// try to connect to them (in sequence), and stop trying the
|
|
||||||
// remainder once one connection is successful.
|
|
||||||
//
|
//
|
||||||
// The reconnect backoff will be applied on the list, not a single address.
|
// Each SubConn contains a list of addresses.
|
||||||
// For example, try_on_all_addresses -> backoff -> try_on_all_addresses.
|
|
||||||
//
|
//
|
||||||
// All SubConns start in IDLE, and will not try to connect. To trigger
|
// All SubConns start in IDLE, and will not try to connect. To trigger the
|
||||||
// the connecting, Balancers must call Connect.
|
// connecting, Balancers must call Connect. If a connection re-enters IDLE,
|
||||||
// When the connection encounters an error, it will reconnect immediately.
|
// Balancers must call Connect again to trigger a new connection attempt.
|
||||||
// When the connection becomes IDLE, it will not reconnect unless Connect is
|
|
||||||
// called.
|
|
||||||
//
|
//
|
||||||
// This interface is to be implemented by gRPC. Users should not need a
|
// gRPC will try to connect to the addresses in sequence, and stop trying the
|
||||||
// brand new implementation of this interface. For the situations like
|
// remainder once the first connection is successful. If an attempt to connect
|
||||||
// testing, the new implementation should embed this interface. This allows
|
// to all addresses encounters an error, the SubConn will enter
|
||||||
// gRPC to add new methods to this interface.
|
// TRANSIENT_FAILURE for a backoff period, and then transition to IDLE.
|
||||||
|
//
|
||||||
|
// Once established, if a connection is lost, the SubConn will transition
|
||||||
|
// directly to IDLE.
|
||||||
|
//
|
||||||
|
// This interface is to be implemented by gRPC. Users should not need their own
|
||||||
|
// implementation of this interface. For situations like testing, any
|
||||||
|
// implementations should embed this interface. This allows gRPC to add new
|
||||||
|
// methods to this interface.
|
||||||
type SubConn interface {
|
type SubConn interface {
|
||||||
// UpdateAddresses updates the addresses used in this SubConn.
|
// UpdateAddresses updates the addresses used in this SubConn.
|
||||||
// gRPC checks if currently-connected address is still in the new list.
|
// gRPC checks if currently-connected address is still in the new list.
|
||||||
@ -172,25 +174,32 @@ type ClientConn interface {
|
|||||||
|
|
||||||
// BuildOptions contains additional information for Build.
|
// BuildOptions contains additional information for Build.
|
||||||
type BuildOptions struct {
|
type BuildOptions struct {
|
||||||
// DialCreds is the transport credential the Balancer implementation can
|
// DialCreds is the transport credentials to use when communicating with a
|
||||||
// use to dial to a remote load balancer server. The Balancer implementations
|
// remote load balancer server. Balancer implementations which do not
|
||||||
// can ignore this if it does not need to talk to another party securely.
|
// communicate with a remote load balancer server can ignore this field.
|
||||||
DialCreds credentials.TransportCredentials
|
DialCreds credentials.TransportCredentials
|
||||||
// CredsBundle is the credentials bundle that the Balancer can use.
|
// CredsBundle is the credentials bundle to use when communicating with a
|
||||||
|
// remote load balancer server. Balancer implementations which do not
|
||||||
|
// communicate with a remote load balancer server can ignore this field.
|
||||||
CredsBundle credentials.Bundle
|
CredsBundle credentials.Bundle
|
||||||
// Dialer is the custom dialer the Balancer implementation can use to dial
|
// Dialer is the custom dialer to use when communicating with a remote load
|
||||||
// to a remote load balancer server. The Balancer implementations
|
// balancer server. Balancer implementations which do not communicate with a
|
||||||
// can ignore this if it doesn't need to talk to remote balancer.
|
// remote load balancer server can ignore this field.
|
||||||
Dialer func(context.Context, string) (net.Conn, error)
|
Dialer func(context.Context, string) (net.Conn, error)
|
||||||
// ChannelzParentID is the entity parent's channelz unique identification number.
|
// Authority is the server name to use as part of the authentication
|
||||||
|
// handshake when communicating with a remote load balancer server. Balancer
|
||||||
|
// implementations which do not communicate with a remote load balancer
|
||||||
|
// server can ignore this field.
|
||||||
|
Authority string
|
||||||
|
// ChannelzParentID is the parent ClientConn's channelz ID.
|
||||||
ChannelzParentID int64
|
ChannelzParentID int64
|
||||||
// CustomUserAgent is the custom user agent set on the parent ClientConn.
|
// CustomUserAgent is the custom user agent set on the parent ClientConn.
|
||||||
// The balancer should set the same custom user agent if it creates a
|
// The balancer should set the same custom user agent if it creates a
|
||||||
// ClientConn.
|
// ClientConn.
|
||||||
CustomUserAgent string
|
CustomUserAgent string
|
||||||
// Target contains the parsed address info of the dial target. It is the same resolver.Target as
|
// Target contains the parsed address info of the dial target. It is the
|
||||||
// passed to the resolver.
|
// same resolver.Target as passed to the resolver. See the documentation for
|
||||||
// See the documentation for the resolver.Target type for details about what it contains.
|
// the resolver.Target type for details about what it contains.
|
||||||
Target resolver.Target
|
Target resolver.Target
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,6 +335,20 @@ type Balancer interface {
|
|||||||
Close()
|
Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ExitIdler is an optional interface for balancers to implement. If
|
||||||
|
// implemented, ExitIdle will be called when ClientConn.Connect is called, if
|
||||||
|
// the ClientConn is idle. If unimplemented, ClientConn.Connect will cause
|
||||||
|
// all SubConns to connect.
|
||||||
|
//
|
||||||
|
// Notice: it will be required for all balancers to implement this in a future
|
||||||
|
// release.
|
||||||
|
type ExitIdler interface {
|
||||||
|
// ExitIdle instructs the LB policy to reconnect to backends / exit the
|
||||||
|
// IDLE state, if appropriate and possible. Note that SubConns that enter
|
||||||
|
// the IDLE state will not reconnect until SubConn.Connect is called.
|
||||||
|
ExitIdle()
|
||||||
|
}
|
||||||
|
|
||||||
// SubConnState describes the state of a SubConn.
|
// SubConnState describes the state of a SubConn.
|
||||||
type SubConnState struct {
|
type SubConnState struct {
|
||||||
// ConnectivityState is the connectivity state of the SubConn.
|
// ConnectivityState is the connectivity state of the SubConn.
|
||||||
@ -353,8 +376,10 @@ var ErrBadResolverState = errors.New("bad resolver state")
|
|||||||
//
|
//
|
||||||
// It's not thread safe.
|
// It's not thread safe.
|
||||||
type ConnectivityStateEvaluator struct {
|
type ConnectivityStateEvaluator struct {
|
||||||
numReady uint64 // Number of addrConns in ready state.
|
numReady uint64 // Number of addrConns in ready state.
|
||||||
numConnecting uint64 // Number of addrConns in connecting state.
|
numConnecting uint64 // Number of addrConns in connecting state.
|
||||||
|
numTransientFailure uint64 // Number of addrConns in transient failure state.
|
||||||
|
numIdle uint64 // Number of addrConns in idle state.
|
||||||
}
|
}
|
||||||
|
|
||||||
// RecordTransition records state change happening in subConn and based on that
|
// RecordTransition records state change happening in subConn and based on that
|
||||||
@ -362,9 +387,11 @@ type ConnectivityStateEvaluator struct {
|
|||||||
//
|
//
|
||||||
// - If at least one SubConn in Ready, the aggregated state is Ready;
|
// - If at least one SubConn in Ready, the aggregated state is Ready;
|
||||||
// - Else if at least one SubConn in Connecting, the aggregated state is Connecting;
|
// - Else if at least one SubConn in Connecting, the aggregated state is Connecting;
|
||||||
// - Else the aggregated state is TransientFailure.
|
// - Else if at least one SubConn is TransientFailure, the aggregated state is Transient Failure;
|
||||||
|
// - Else if at least one SubConn is Idle, the aggregated state is Idle;
|
||||||
|
// - Else there are no subconns and the aggregated state is Transient Failure
|
||||||
//
|
//
|
||||||
// Idle and Shutdown are not considered.
|
// Shutdown is not considered.
|
||||||
func (cse *ConnectivityStateEvaluator) RecordTransition(oldState, newState connectivity.State) connectivity.State {
|
func (cse *ConnectivityStateEvaluator) RecordTransition(oldState, newState connectivity.State) connectivity.State {
|
||||||
// Update counters.
|
// Update counters.
|
||||||
for idx, state := range []connectivity.State{oldState, newState} {
|
for idx, state := range []connectivity.State{oldState, newState} {
|
||||||
@ -374,6 +401,10 @@ func (cse *ConnectivityStateEvaluator) RecordTransition(oldState, newState conne
|
|||||||
cse.numReady += updateVal
|
cse.numReady += updateVal
|
||||||
case connectivity.Connecting:
|
case connectivity.Connecting:
|
||||||
cse.numConnecting += updateVal
|
cse.numConnecting += updateVal
|
||||||
|
case connectivity.TransientFailure:
|
||||||
|
cse.numTransientFailure += updateVal
|
||||||
|
case connectivity.Idle:
|
||||||
|
cse.numIdle += updateVal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,5 +415,11 @@ func (cse *ConnectivityStateEvaluator) RecordTransition(oldState, newState conne
|
|||||||
if cse.numConnecting > 0 {
|
if cse.numConnecting > 0 {
|
||||||
return connectivity.Connecting
|
return connectivity.Connecting
|
||||||
}
|
}
|
||||||
|
if cse.numTransientFailure > 0 {
|
||||||
|
return connectivity.TransientFailure
|
||||||
|
}
|
||||||
|
if cse.numIdle > 0 {
|
||||||
|
return connectivity.Idle
|
||||||
|
}
|
||||||
return connectivity.TransientFailure
|
return connectivity.TransientFailure
|
||||||
}
|
}
|
||||||
|
80
vendor/google.golang.org/grpc/balancer/base/balancer.go
generated
vendored
80
vendor/google.golang.org/grpc/balancer/base/balancer.go
generated
vendored
@ -22,7 +22,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"google.golang.org/grpc/attributes"
|
|
||||||
"google.golang.org/grpc/balancer"
|
"google.golang.org/grpc/balancer"
|
||||||
"google.golang.org/grpc/connectivity"
|
"google.golang.org/grpc/connectivity"
|
||||||
"google.golang.org/grpc/grpclog"
|
"google.golang.org/grpc/grpclog"
|
||||||
@ -42,7 +41,7 @@ func (bb *baseBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions)
|
|||||||
cc: cc,
|
cc: cc,
|
||||||
pickerBuilder: bb.pickerBuilder,
|
pickerBuilder: bb.pickerBuilder,
|
||||||
|
|
||||||
subConns: make(map[resolver.Address]subConnInfo),
|
subConns: resolver.NewAddressMap(),
|
||||||
scStates: make(map[balancer.SubConn]connectivity.State),
|
scStates: make(map[balancer.SubConn]connectivity.State),
|
||||||
csEvltr: &balancer.ConnectivityStateEvaluator{},
|
csEvltr: &balancer.ConnectivityStateEvaluator{},
|
||||||
config: bb.config,
|
config: bb.config,
|
||||||
@ -58,11 +57,6 @@ func (bb *baseBuilder) Name() string {
|
|||||||
return bb.name
|
return bb.name
|
||||||
}
|
}
|
||||||
|
|
||||||
type subConnInfo struct {
|
|
||||||
subConn balancer.SubConn
|
|
||||||
attrs *attributes.Attributes
|
|
||||||
}
|
|
||||||
|
|
||||||
type baseBalancer struct {
|
type baseBalancer struct {
|
||||||
cc balancer.ClientConn
|
cc balancer.ClientConn
|
||||||
pickerBuilder PickerBuilder
|
pickerBuilder PickerBuilder
|
||||||
@ -70,7 +64,7 @@ type baseBalancer struct {
|
|||||||
csEvltr *balancer.ConnectivityStateEvaluator
|
csEvltr *balancer.ConnectivityStateEvaluator
|
||||||
state connectivity.State
|
state connectivity.State
|
||||||
|
|
||||||
subConns map[resolver.Address]subConnInfo // `attributes` is stripped from the keys of this map (the addresses)
|
subConns *resolver.AddressMap
|
||||||
scStates map[balancer.SubConn]connectivity.State
|
scStates map[balancer.SubConn]connectivity.State
|
||||||
picker balancer.Picker
|
picker balancer.Picker
|
||||||
config Config
|
config Config
|
||||||
@ -81,7 +75,7 @@ type baseBalancer struct {
|
|||||||
|
|
||||||
func (b *baseBalancer) ResolverError(err error) {
|
func (b *baseBalancer) ResolverError(err error) {
|
||||||
b.resolverErr = err
|
b.resolverErr = err
|
||||||
if len(b.subConns) == 0 {
|
if b.subConns.Len() == 0 {
|
||||||
b.state = connectivity.TransientFailure
|
b.state = connectivity.TransientFailure
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,52 +99,29 @@ func (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error {
|
|||||||
// Successful resolution; clear resolver error and ensure we return nil.
|
// Successful resolution; clear resolver error and ensure we return nil.
|
||||||
b.resolverErr = nil
|
b.resolverErr = nil
|
||||||
// addrsSet is the set converted from addrs, it's used for quick lookup of an address.
|
// addrsSet is the set converted from addrs, it's used for quick lookup of an address.
|
||||||
addrsSet := make(map[resolver.Address]struct{})
|
addrsSet := resolver.NewAddressMap()
|
||||||
for _, a := range s.ResolverState.Addresses {
|
for _, a := range s.ResolverState.Addresses {
|
||||||
// Strip attributes from addresses before using them as map keys. So
|
addrsSet.Set(a, nil)
|
||||||
// that when two addresses only differ in attributes pointers (but with
|
if _, ok := b.subConns.Get(a); !ok {
|
||||||
// the same attribute content), they are considered the same address.
|
|
||||||
//
|
|
||||||
// Note that this doesn't handle the case where the attribute content is
|
|
||||||
// different. So if users want to set different attributes to create
|
|
||||||
// duplicate connections to the same backend, it doesn't work. This is
|
|
||||||
// fine for now, because duplicate is done by setting Metadata today.
|
|
||||||
//
|
|
||||||
// TODO: read attributes to handle duplicate connections.
|
|
||||||
aNoAttrs := a
|
|
||||||
aNoAttrs.Attributes = nil
|
|
||||||
addrsSet[aNoAttrs] = struct{}{}
|
|
||||||
if scInfo, ok := b.subConns[aNoAttrs]; !ok {
|
|
||||||
// a is a new address (not existing in b.subConns).
|
// a is a new address (not existing in b.subConns).
|
||||||
//
|
|
||||||
// When creating SubConn, the original address with attributes is
|
|
||||||
// passed through. So that connection configurations in attributes
|
|
||||||
// (like creds) will be used.
|
|
||||||
sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{HealthCheckEnabled: b.config.HealthCheck})
|
sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{HealthCheckEnabled: b.config.HealthCheck})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warningf("base.baseBalancer: failed to create new SubConn: %v", err)
|
logger.Warningf("base.baseBalancer: failed to create new SubConn: %v", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
b.subConns[aNoAttrs] = subConnInfo{subConn: sc, attrs: a.Attributes}
|
b.subConns.Set(a, sc)
|
||||||
b.scStates[sc] = connectivity.Idle
|
b.scStates[sc] = connectivity.Idle
|
||||||
|
b.csEvltr.RecordTransition(connectivity.Shutdown, connectivity.Idle)
|
||||||
sc.Connect()
|
sc.Connect()
|
||||||
} else {
|
|
||||||
// Always update the subconn's address in case the attributes
|
|
||||||
// changed.
|
|
||||||
//
|
|
||||||
// The SubConn does a reflect.DeepEqual of the new and old
|
|
||||||
// addresses. So this is a noop if the current address is the same
|
|
||||||
// as the old one (including attributes).
|
|
||||||
scInfo.attrs = a.Attributes
|
|
||||||
b.subConns[aNoAttrs] = scInfo
|
|
||||||
b.cc.UpdateAddresses(scInfo.subConn, []resolver.Address{a})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for a, scInfo := range b.subConns {
|
for _, a := range b.subConns.Keys() {
|
||||||
|
sci, _ := b.subConns.Get(a)
|
||||||
|
sc := sci.(balancer.SubConn)
|
||||||
// a was removed by resolver.
|
// a was removed by resolver.
|
||||||
if _, ok := addrsSet[a]; !ok {
|
if _, ok := addrsSet.Get(a); !ok {
|
||||||
b.cc.RemoveSubConn(scInfo.subConn)
|
b.cc.RemoveSubConn(sc)
|
||||||
delete(b.subConns, a)
|
b.subConns.Delete(a)
|
||||||
// Keep the state of this sc in b.scStates until sc's state becomes Shutdown.
|
// Keep the state of this sc in b.scStates until sc's state becomes Shutdown.
|
||||||
// The entry will be deleted in UpdateSubConnState.
|
// The entry will be deleted in UpdateSubConnState.
|
||||||
}
|
}
|
||||||
@ -192,10 +163,11 @@ func (b *baseBalancer) regeneratePicker() {
|
|||||||
readySCs := make(map[balancer.SubConn]SubConnInfo)
|
readySCs := make(map[balancer.SubConn]SubConnInfo)
|
||||||
|
|
||||||
// Filter out all ready SCs from full subConn map.
|
// Filter out all ready SCs from full subConn map.
|
||||||
for addr, scInfo := range b.subConns {
|
for _, addr := range b.subConns.Keys() {
|
||||||
if st, ok := b.scStates[scInfo.subConn]; ok && st == connectivity.Ready {
|
sci, _ := b.subConns.Get(addr)
|
||||||
addr.Attributes = scInfo.attrs
|
sc := sci.(balancer.SubConn)
|
||||||
readySCs[scInfo.subConn] = SubConnInfo{Address: addr}
|
if st, ok := b.scStates[sc]; ok && st == connectivity.Ready {
|
||||||
|
readySCs[sc] = SubConnInfo{Address: addr}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.picker = b.pickerBuilder.Build(PickerBuildInfo{ReadySCs: readySCs})
|
b.picker = b.pickerBuilder.Build(PickerBuildInfo{ReadySCs: readySCs})
|
||||||
@ -213,10 +185,14 @@ func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.Su
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if oldS == connectivity.TransientFailure && s == connectivity.Connecting {
|
if oldS == connectivity.TransientFailure &&
|
||||||
// Once a subconn enters TRANSIENT_FAILURE, ignore subsequent
|
(s == connectivity.Connecting || s == connectivity.Idle) {
|
||||||
|
// Once a subconn enters TRANSIENT_FAILURE, ignore subsequent IDLE or
|
||||||
// CONNECTING transitions to prevent the aggregated state from being
|
// CONNECTING transitions to prevent the aggregated state from being
|
||||||
// always CONNECTING when many backends exist but are all down.
|
// always CONNECTING when many backends exist but are all down.
|
||||||
|
if s == connectivity.Idle {
|
||||||
|
sc.Connect()
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
b.scStates[sc] = s
|
b.scStates[sc] = s
|
||||||
@ -242,7 +218,6 @@ func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.Su
|
|||||||
b.state == connectivity.TransientFailure {
|
b.state == connectivity.TransientFailure {
|
||||||
b.regeneratePicker()
|
b.regeneratePicker()
|
||||||
}
|
}
|
||||||
|
|
||||||
b.cc.UpdateState(balancer.State{ConnectivityState: b.state, Picker: b.picker})
|
b.cc.UpdateState(balancer.State{ConnectivityState: b.state, Picker: b.picker})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,6 +226,11 @@ func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.Su
|
|||||||
func (b *baseBalancer) Close() {
|
func (b *baseBalancer) Close() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ExitIdle is a nop because the base balancer attempts to stay connected to
|
||||||
|
// all SubConns at all times.
|
||||||
|
func (b *baseBalancer) ExitIdle() {
|
||||||
|
}
|
||||||
|
|
||||||
// NewErrPicker returns a Picker that always returns err on Pick().
|
// NewErrPicker returns a Picker that always returns err on Pick().
|
||||||
func NewErrPicker(err error) balancer.Picker {
|
func NewErrPicker(err error) balancer.Picker {
|
||||||
return &errPicker{err: err}
|
return &errPicker{err: err}
|
||||||
|
2
vendor/google.golang.org/grpc/balancer/grpclb/state/state.go
generated
vendored
2
vendor/google.golang.org/grpc/balancer/grpclb/state/state.go
generated
vendored
@ -39,7 +39,7 @@ type State struct {
|
|||||||
// Set returns a copy of the provided state with attributes containing s. s's
|
// Set returns a copy of the provided state with attributes containing s. s's
|
||||||
// data should not be mutated after calling Set.
|
// data should not be mutated after calling Set.
|
||||||
func Set(state resolver.State, s *State) resolver.State {
|
func Set(state resolver.State, s *State) resolver.State {
|
||||||
state.Attributes = state.Attributes.WithValues(key, s)
|
state.Attributes = state.Attributes.WithValue(key, s)
|
||||||
return state
|
return state
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go
generated
vendored
4
vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go
generated
vendored
@ -47,11 +47,11 @@ func init() {
|
|||||||
type rrPickerBuilder struct{}
|
type rrPickerBuilder struct{}
|
||||||
|
|
||||||
func (*rrPickerBuilder) Build(info base.PickerBuildInfo) balancer.Picker {
|
func (*rrPickerBuilder) Build(info base.PickerBuildInfo) balancer.Picker {
|
||||||
logger.Infof("roundrobinPicker: newPicker called with info: %v", info)
|
logger.Infof("roundrobinPicker: Build called with info: %v", info)
|
||||||
if len(info.ReadySCs) == 0 {
|
if len(info.ReadySCs) == 0 {
|
||||||
return base.NewErrPicker(balancer.ErrNoSubConnAvailable)
|
return base.NewErrPicker(balancer.ErrNoSubConnAvailable)
|
||||||
}
|
}
|
||||||
var scs []balancer.SubConn
|
scs := make([]balancer.SubConn, 0, len(info.ReadySCs))
|
||||||
for sc := range info.ReadySCs {
|
for sc := range info.ReadySCs {
|
||||||
scs = append(scs, sc)
|
scs = append(scs, sc)
|
||||||
}
|
}
|
||||||
|
53
vendor/google.golang.org/grpc/balancer_conn_wrappers.go
generated
vendored
53
vendor/google.golang.org/grpc/balancer_conn_wrappers.go
generated
vendored
@ -37,15 +37,20 @@ type scStateUpdate struct {
|
|||||||
err error
|
err error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// exitIdle contains no data and is just a signal sent on the updateCh in
|
||||||
|
// ccBalancerWrapper to instruct the balancer to exit idle.
|
||||||
|
type exitIdle struct{}
|
||||||
|
|
||||||
// ccBalancerWrapper is a wrapper on top of cc for balancers.
|
// ccBalancerWrapper is a wrapper on top of cc for balancers.
|
||||||
// It implements balancer.ClientConn interface.
|
// It implements balancer.ClientConn interface.
|
||||||
type ccBalancerWrapper struct {
|
type ccBalancerWrapper struct {
|
||||||
cc *ClientConn
|
cc *ClientConn
|
||||||
balancerMu sync.Mutex // synchronizes calls to the balancer
|
balancerMu sync.Mutex // synchronizes calls to the balancer
|
||||||
balancer balancer.Balancer
|
balancer balancer.Balancer
|
||||||
updateCh *buffer.Unbounded
|
hasExitIdle bool
|
||||||
closed *grpcsync.Event
|
updateCh *buffer.Unbounded
|
||||||
done *grpcsync.Event
|
closed *grpcsync.Event
|
||||||
|
done *grpcsync.Event
|
||||||
|
|
||||||
mu sync.Mutex
|
mu sync.Mutex
|
||||||
subConns map[*acBalancerWrapper]struct{}
|
subConns map[*acBalancerWrapper]struct{}
|
||||||
@ -61,6 +66,7 @@ func newCCBalancerWrapper(cc *ClientConn, b balancer.Builder, bopts balancer.Bui
|
|||||||
}
|
}
|
||||||
go ccb.watcher()
|
go ccb.watcher()
|
||||||
ccb.balancer = b.Build(ccb, bopts)
|
ccb.balancer = b.Build(ccb, bopts)
|
||||||
|
_, ccb.hasExitIdle = ccb.balancer.(balancer.ExitIdler)
|
||||||
return ccb
|
return ccb
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,6 +92,17 @@ func (ccb *ccBalancerWrapper) watcher() {
|
|||||||
ccb.cc.removeAddrConn(u.getAddrConn(), errConnDrain)
|
ccb.cc.removeAddrConn(u.getAddrConn(), errConnDrain)
|
||||||
}
|
}
|
||||||
ccb.mu.Unlock()
|
ccb.mu.Unlock()
|
||||||
|
case exitIdle:
|
||||||
|
if ccb.cc.GetState() == connectivity.Idle {
|
||||||
|
if ei, ok := ccb.balancer.(balancer.ExitIdler); ok {
|
||||||
|
// We already checked that the balancer implements
|
||||||
|
// ExitIdle before pushing the event to updateCh, but
|
||||||
|
// check conditionally again as defensive programming.
|
||||||
|
ccb.balancerMu.Lock()
|
||||||
|
ei.ExitIdle()
|
||||||
|
ccb.balancerMu.Unlock()
|
||||||
|
}
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
logger.Errorf("ccBalancerWrapper.watcher: unknown update %+v, type %T", t, t)
|
logger.Errorf("ccBalancerWrapper.watcher: unknown update %+v, type %T", t, t)
|
||||||
}
|
}
|
||||||
@ -118,6 +135,14 @@ func (ccb *ccBalancerWrapper) close() {
|
|||||||
<-ccb.done.Done()
|
<-ccb.done.Done()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ccb *ccBalancerWrapper) exitIdle() bool {
|
||||||
|
if !ccb.hasExitIdle {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
ccb.updateCh.Put(exitIdle{})
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func (ccb *ccBalancerWrapper) handleSubConnStateChange(sc balancer.SubConn, s connectivity.State, err error) {
|
func (ccb *ccBalancerWrapper) handleSubConnStateChange(sc balancer.SubConn, s connectivity.State, err error) {
|
||||||
// When updating addresses for a SubConn, if the address in use is not in
|
// When updating addresses for a SubConn, if the address in use is not in
|
||||||
// the new addresses, the old ac will be tearDown() and a new ac will be
|
// the new addresses, the old ac will be tearDown() and a new ac will be
|
||||||
@ -144,8 +169,8 @@ func (ccb *ccBalancerWrapper) updateClientConnState(ccs *balancer.ClientConnStat
|
|||||||
|
|
||||||
func (ccb *ccBalancerWrapper) resolverError(err error) {
|
func (ccb *ccBalancerWrapper) resolverError(err error) {
|
||||||
ccb.balancerMu.Lock()
|
ccb.balancerMu.Lock()
|
||||||
|
defer ccb.balancerMu.Unlock()
|
||||||
ccb.balancer.ResolverError(err)
|
ccb.balancer.ResolverError(err)
|
||||||
ccb.balancerMu.Unlock()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) {
|
func (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) {
|
||||||
@ -239,17 +264,17 @@ func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ac, err := cc.newAddrConn(addrs, opts)
|
newAC, err := cc.newAddrConn(addrs, opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
channelz.Warningf(logger, acbw.ac.channelzID, "acBalancerWrapper: UpdateAddresses: failed to newAddrConn: %v", err)
|
channelz.Warningf(logger, acbw.ac.channelzID, "acBalancerWrapper: UpdateAddresses: failed to newAddrConn: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
acbw.ac = ac
|
acbw.ac = newAC
|
||||||
ac.mu.Lock()
|
newAC.mu.Lock()
|
||||||
ac.acbw = acbw
|
newAC.acbw = acbw
|
||||||
ac.mu.Unlock()
|
newAC.mu.Unlock()
|
||||||
if acState != connectivity.Idle {
|
if acState != connectivity.Idle {
|
||||||
ac.connect()
|
go newAC.connect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -257,7 +282,7 @@ func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) {
|
|||||||
func (acbw *acBalancerWrapper) Connect() {
|
func (acbw *acBalancerWrapper) Connect() {
|
||||||
acbw.mu.Lock()
|
acbw.mu.Lock()
|
||||||
defer acbw.mu.Unlock()
|
defer acbw.mu.Unlock()
|
||||||
acbw.ac.connect()
|
go acbw.ac.connect()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (acbw *acBalancerWrapper) getAddrConn() *addrConn {
|
func (acbw *acBalancerWrapper) getAddrConn() *addrConn {
|
||||||
|
558
vendor/google.golang.org/grpc/clientconn.go
generated
vendored
558
vendor/google.golang.org/grpc/clientconn.go
generated
vendored
@ -23,6 +23,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
|
"net/url"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@ -37,7 +38,6 @@ import (
|
|||||||
"google.golang.org/grpc/internal/backoff"
|
"google.golang.org/grpc/internal/backoff"
|
||||||
"google.golang.org/grpc/internal/channelz"
|
"google.golang.org/grpc/internal/channelz"
|
||||||
"google.golang.org/grpc/internal/grpcsync"
|
"google.golang.org/grpc/internal/grpcsync"
|
||||||
"google.golang.org/grpc/internal/grpcutil"
|
|
||||||
iresolver "google.golang.org/grpc/internal/resolver"
|
iresolver "google.golang.org/grpc/internal/resolver"
|
||||||
"google.golang.org/grpc/internal/transport"
|
"google.golang.org/grpc/internal/transport"
|
||||||
"google.golang.org/grpc/keepalive"
|
"google.golang.org/grpc/keepalive"
|
||||||
@ -83,13 +83,13 @@ var (
|
|||||||
// errTransportCredsAndBundle indicates that creds bundle is used together
|
// errTransportCredsAndBundle indicates that creds bundle is used together
|
||||||
// with other individual Transport Credentials.
|
// with other individual Transport Credentials.
|
||||||
errTransportCredsAndBundle = errors.New("grpc: credentials.Bundle may not be used with individual TransportCredentials")
|
errTransportCredsAndBundle = errors.New("grpc: credentials.Bundle may not be used with individual TransportCredentials")
|
||||||
// errTransportCredentialsMissing indicates that users want to transmit security
|
// errNoTransportCredsInBundle indicated that the configured creds bundle
|
||||||
// information (e.g., OAuth2 token) which requires secure connection on an insecure
|
// returned a transport credentials which was nil.
|
||||||
// connection.
|
errNoTransportCredsInBundle = errors.New("grpc: credentials.Bundle must return non-nil transport credentials")
|
||||||
|
// errTransportCredentialsMissing indicates that users want to transmit
|
||||||
|
// security information (e.g., OAuth2 token) which requires secure
|
||||||
|
// connection on an insecure connection.
|
||||||
errTransportCredentialsMissing = errors.New("grpc: the credentials require transport level security (use grpc.WithTransportCredentials() to set)")
|
errTransportCredentialsMissing = errors.New("grpc: the credentials require transport level security (use grpc.WithTransportCredentials() to set)")
|
||||||
// errCredentialsConflict indicates that grpc.WithTransportCredentials()
|
|
||||||
// and grpc.WithInsecure() are both called for a connection.
|
|
||||||
errCredentialsConflict = errors.New("grpc: transport credentials are set for an insecure connection (grpc.WithTransportCredentials() and grpc.WithInsecure() are both called)")
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -177,17 +177,20 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
|
|||||||
cc.csMgr.channelzID = cc.channelzID
|
cc.csMgr.channelzID = cc.channelzID
|
||||||
}
|
}
|
||||||
|
|
||||||
if !cc.dopts.insecure {
|
if cc.dopts.copts.TransportCredentials == nil && cc.dopts.copts.CredsBundle == nil {
|
||||||
if cc.dopts.copts.TransportCredentials == nil && cc.dopts.copts.CredsBundle == nil {
|
return nil, errNoTransportSecurity
|
||||||
return nil, errNoTransportSecurity
|
}
|
||||||
}
|
if cc.dopts.copts.TransportCredentials != nil && cc.dopts.copts.CredsBundle != nil {
|
||||||
if cc.dopts.copts.TransportCredentials != nil && cc.dopts.copts.CredsBundle != nil {
|
return nil, errTransportCredsAndBundle
|
||||||
return nil, errTransportCredsAndBundle
|
}
|
||||||
}
|
if cc.dopts.copts.CredsBundle != nil && cc.dopts.copts.CredsBundle.TransportCredentials() == nil {
|
||||||
} else {
|
return nil, errNoTransportCredsInBundle
|
||||||
if cc.dopts.copts.TransportCredentials != nil || cc.dopts.copts.CredsBundle != nil {
|
}
|
||||||
return nil, errCredentialsConflict
|
transportCreds := cc.dopts.copts.TransportCredentials
|
||||||
}
|
if transportCreds == nil {
|
||||||
|
transportCreds = cc.dopts.copts.CredsBundle.TransportCredentials()
|
||||||
|
}
|
||||||
|
if transportCreds.Info().SecurityProtocol == "insecure" {
|
||||||
for _, cd := range cc.dopts.copts.PerRPCCredentials {
|
for _, cd := range cc.dopts.copts.PerRPCCredentials {
|
||||||
if cd.RequireTransportSecurity() {
|
if cd.RequireTransportSecurity() {
|
||||||
return nil, errTransportCredentialsMissing
|
return nil, errTransportCredentialsMissing
|
||||||
@ -248,38 +251,15 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Determine the resolver to use.
|
// Determine the resolver to use.
|
||||||
cc.parsedTarget = grpcutil.ParseTarget(cc.target, cc.dopts.copts.Dialer != nil)
|
resolverBuilder, err := cc.parseTargetAndFindResolver()
|
||||||
channelz.Infof(logger, cc.channelzID, "parsed scheme: %q", cc.parsedTarget.Scheme)
|
if err != nil {
|
||||||
resolverBuilder := cc.getResolver(cc.parsedTarget.Scheme)
|
return nil, err
|
||||||
if resolverBuilder == nil {
|
|
||||||
// If resolver builder is still nil, the parsed target's scheme is
|
|
||||||
// not registered. Fallback to default resolver and set Endpoint to
|
|
||||||
// the original target.
|
|
||||||
channelz.Infof(logger, cc.channelzID, "scheme %q not registered, fallback to default scheme", cc.parsedTarget.Scheme)
|
|
||||||
cc.parsedTarget = resolver.Target{
|
|
||||||
Scheme: resolver.GetDefaultScheme(),
|
|
||||||
Endpoint: target,
|
|
||||||
}
|
|
||||||
resolverBuilder = cc.getResolver(cc.parsedTarget.Scheme)
|
|
||||||
if resolverBuilder == nil {
|
|
||||||
return nil, fmt.Errorf("could not get resolver for default scheme: %q", cc.parsedTarget.Scheme)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
cc.authority, err = determineAuthority(cc.parsedTarget.Endpoint, cc.target, cc.dopts)
|
||||||
creds := cc.dopts.copts.TransportCredentials
|
if err != nil {
|
||||||
if creds != nil && creds.Info().ServerName != "" {
|
return nil, err
|
||||||
cc.authority = creds.Info().ServerName
|
|
||||||
} else if cc.dopts.insecure && cc.dopts.authority != "" {
|
|
||||||
cc.authority = cc.dopts.authority
|
|
||||||
} else if strings.HasPrefix(cc.target, "unix:") || strings.HasPrefix(cc.target, "unix-abstract:") {
|
|
||||||
cc.authority = "localhost"
|
|
||||||
} else if strings.HasPrefix(cc.parsedTarget.Endpoint, ":") {
|
|
||||||
cc.authority = "localhost" + cc.parsedTarget.Endpoint
|
|
||||||
} else {
|
|
||||||
// Use endpoint from "scheme://authority/endpoint" as the default
|
|
||||||
// authority for ClientConn.
|
|
||||||
cc.authority = cc.parsedTarget.Endpoint
|
|
||||||
}
|
}
|
||||||
|
channelz.Infof(logger, cc.channelzID, "Channel authority set to %q", cc.authority)
|
||||||
|
|
||||||
if cc.dopts.scChan != nil && !scSet {
|
if cc.dopts.scChan != nil && !scSet {
|
||||||
// Blocking wait for the initial service config.
|
// Blocking wait for the initial service config.
|
||||||
@ -305,6 +285,7 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
|
|||||||
DialCreds: credsClone,
|
DialCreds: credsClone,
|
||||||
CredsBundle: cc.dopts.copts.CredsBundle,
|
CredsBundle: cc.dopts.copts.CredsBundle,
|
||||||
Dialer: cc.dopts.copts.Dialer,
|
Dialer: cc.dopts.copts.Dialer,
|
||||||
|
Authority: cc.authority,
|
||||||
CustomUserAgent: cc.dopts.copts.UserAgent,
|
CustomUserAgent: cc.dopts.copts.UserAgent,
|
||||||
ChannelzParentID: cc.channelzID,
|
ChannelzParentID: cc.channelzID,
|
||||||
Target: cc.parsedTarget,
|
Target: cc.parsedTarget,
|
||||||
@ -322,6 +303,7 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
|
|||||||
// A blocking dial blocks until the clientConn is ready.
|
// A blocking dial blocks until the clientConn is ready.
|
||||||
if cc.dopts.block {
|
if cc.dopts.block {
|
||||||
for {
|
for {
|
||||||
|
cc.Connect()
|
||||||
s := cc.GetState()
|
s := cc.GetState()
|
||||||
if s == connectivity.Ready {
|
if s == connectivity.Ready {
|
||||||
break
|
break
|
||||||
@ -539,12 +521,31 @@ func (cc *ClientConn) WaitForStateChange(ctx context.Context, sourceState connec
|
|||||||
//
|
//
|
||||||
// Experimental
|
// Experimental
|
||||||
//
|
//
|
||||||
// Notice: This API is EXPERIMENTAL and may be changed or removed in a
|
// Notice: This API is EXPERIMENTAL and may be changed or removed in a later
|
||||||
// later release.
|
// release.
|
||||||
func (cc *ClientConn) GetState() connectivity.State {
|
func (cc *ClientConn) GetState() connectivity.State {
|
||||||
return cc.csMgr.getState()
|
return cc.csMgr.getState()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Connect causes all subchannels in the ClientConn to attempt to connect if
|
||||||
|
// the channel is idle. Does not wait for the connection attempts to begin
|
||||||
|
// before returning.
|
||||||
|
//
|
||||||
|
// Experimental
|
||||||
|
//
|
||||||
|
// Notice: This API is EXPERIMENTAL and may be changed or removed in a later
|
||||||
|
// release.
|
||||||
|
func (cc *ClientConn) Connect() {
|
||||||
|
cc.mu.Lock()
|
||||||
|
defer cc.mu.Unlock()
|
||||||
|
if cc.balancerWrapper != nil && cc.balancerWrapper.exitIdle() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for ac := range cc.conns {
|
||||||
|
go ac.connect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (cc *ClientConn) scWatcher() {
|
func (cc *ClientConn) scWatcher() {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -632,7 +633,10 @@ func (cc *ClientConn) updateResolverState(s resolver.State, err error) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ret error
|
var ret error
|
||||||
if cc.dopts.disableServiceConfig || s.ServiceConfig == nil {
|
if cc.dopts.disableServiceConfig {
|
||||||
|
channelz.Infof(logger, cc.channelzID, "ignoring service config from resolver (%v) and applying the default because service config is disabled", s.ServiceConfig)
|
||||||
|
cc.maybeApplyDefaultServiceConfig(s.Addresses)
|
||||||
|
} else if s.ServiceConfig == nil {
|
||||||
cc.maybeApplyDefaultServiceConfig(s.Addresses)
|
cc.maybeApplyDefaultServiceConfig(s.Addresses)
|
||||||
// TODO: do we need to apply a failing LB policy if there is no
|
// TODO: do we need to apply a failing LB policy if there is no
|
||||||
// default, per the error handling design?
|
// default, per the error handling design?
|
||||||
@ -845,8 +849,7 @@ func (ac *addrConn) connect() error {
|
|||||||
ac.updateConnectivityState(connectivity.Connecting, nil)
|
ac.updateConnectivityState(connectivity.Connecting, nil)
|
||||||
ac.mu.Unlock()
|
ac.mu.Unlock()
|
||||||
|
|
||||||
// Start a goroutine connecting to the server asynchronously.
|
ac.resetTransport()
|
||||||
go ac.resetTransport()
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -883,6 +886,7 @@ func (ac *addrConn) tryUpdateAddrs(addrs []resolver.Address) bool {
|
|||||||
// ac.state is Ready, try to find the connected address.
|
// ac.state is Ready, try to find the connected address.
|
||||||
var curAddrFound bool
|
var curAddrFound bool
|
||||||
for _, a := range addrs {
|
for _, a := range addrs {
|
||||||
|
a.ServerName = ac.cc.getServerName(a)
|
||||||
if reflect.DeepEqual(ac.curAddr, a) {
|
if reflect.DeepEqual(ac.curAddr, a) {
|
||||||
curAddrFound = true
|
curAddrFound = true
|
||||||
break
|
break
|
||||||
@ -896,6 +900,26 @@ func (ac *addrConn) tryUpdateAddrs(addrs []resolver.Address) bool {
|
|||||||
return curAddrFound
|
return curAddrFound
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getServerName determines the serverName to be used in the connection
|
||||||
|
// handshake. The default value for the serverName is the authority on the
|
||||||
|
// ClientConn, which either comes from the user's dial target or through an
|
||||||
|
// authority override specified using the WithAuthority dial option. Name
|
||||||
|
// resolvers can specify a per-address override for the serverName through the
|
||||||
|
// resolver.Address.ServerName field which is used only if the WithAuthority
|
||||||
|
// dial option was not used. The rationale is that per-address authority
|
||||||
|
// overrides specified by the name resolver can represent a security risk, while
|
||||||
|
// an override specified by the user is more dependable since they probably know
|
||||||
|
// what they are doing.
|
||||||
|
func (cc *ClientConn) getServerName(addr resolver.Address) string {
|
||||||
|
if cc.dopts.authority != "" {
|
||||||
|
return cc.dopts.authority
|
||||||
|
}
|
||||||
|
if addr.ServerName != "" {
|
||||||
|
return addr.ServerName
|
||||||
|
}
|
||||||
|
return cc.authority
|
||||||
|
}
|
||||||
|
|
||||||
func getMethodConfig(sc *ServiceConfig, method string) MethodConfig {
|
func getMethodConfig(sc *ServiceConfig, method string) MethodConfig {
|
||||||
if sc == nil {
|
if sc == nil {
|
||||||
return MethodConfig{}
|
return MethodConfig{}
|
||||||
@ -1135,112 +1159,86 @@ func (ac *addrConn) adjustParams(r transport.GoAwayReason) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ac *addrConn) resetTransport() {
|
func (ac *addrConn) resetTransport() {
|
||||||
for i := 0; ; i++ {
|
ac.mu.Lock()
|
||||||
if i > 0 {
|
if ac.state == connectivity.Shutdown {
|
||||||
ac.cc.resolveNow(resolver.ResolveNowOptions{})
|
|
||||||
}
|
|
||||||
|
|
||||||
ac.mu.Lock()
|
|
||||||
if ac.state == connectivity.Shutdown {
|
|
||||||
ac.mu.Unlock()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
addrs := ac.addrs
|
|
||||||
backoffFor := ac.dopts.bs.Backoff(ac.backoffIdx)
|
|
||||||
// This will be the duration that dial gets to finish.
|
|
||||||
dialDuration := minConnectTimeout
|
|
||||||
if ac.dopts.minConnectTimeout != nil {
|
|
||||||
dialDuration = ac.dopts.minConnectTimeout()
|
|
||||||
}
|
|
||||||
|
|
||||||
if dialDuration < backoffFor {
|
|
||||||
// Give dial more time as we keep failing to connect.
|
|
||||||
dialDuration = backoffFor
|
|
||||||
}
|
|
||||||
// We can potentially spend all the time trying the first address, and
|
|
||||||
// if the server accepts the connection and then hangs, the following
|
|
||||||
// addresses will never be tried.
|
|
||||||
//
|
|
||||||
// The spec doesn't mention what should be done for multiple addresses.
|
|
||||||
// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md#proposed-backoff-algorithm
|
|
||||||
connectDeadline := time.Now().Add(dialDuration)
|
|
||||||
|
|
||||||
ac.updateConnectivityState(connectivity.Connecting, nil)
|
|
||||||
ac.transport = nil
|
|
||||||
ac.mu.Unlock()
|
ac.mu.Unlock()
|
||||||
|
return
|
||||||
newTr, addr, reconnect, err := ac.tryAllAddrs(addrs, connectDeadline)
|
|
||||||
if err != nil {
|
|
||||||
// After exhausting all addresses, the addrConn enters
|
|
||||||
// TRANSIENT_FAILURE.
|
|
||||||
ac.mu.Lock()
|
|
||||||
if ac.state == connectivity.Shutdown {
|
|
||||||
ac.mu.Unlock()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ac.updateConnectivityState(connectivity.TransientFailure, err)
|
|
||||||
|
|
||||||
// Backoff.
|
|
||||||
b := ac.resetBackoff
|
|
||||||
ac.mu.Unlock()
|
|
||||||
|
|
||||||
timer := time.NewTimer(backoffFor)
|
|
||||||
select {
|
|
||||||
case <-timer.C:
|
|
||||||
ac.mu.Lock()
|
|
||||||
ac.backoffIdx++
|
|
||||||
ac.mu.Unlock()
|
|
||||||
case <-b:
|
|
||||||
timer.Stop()
|
|
||||||
case <-ac.ctx.Done():
|
|
||||||
timer.Stop()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
ac.mu.Lock()
|
|
||||||
if ac.state == connectivity.Shutdown {
|
|
||||||
ac.mu.Unlock()
|
|
||||||
newTr.Close(fmt.Errorf("reached connectivity state: SHUTDOWN"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ac.curAddr = addr
|
|
||||||
ac.transport = newTr
|
|
||||||
ac.backoffIdx = 0
|
|
||||||
|
|
||||||
hctx, hcancel := context.WithCancel(ac.ctx)
|
|
||||||
ac.startHealthCheck(hctx)
|
|
||||||
ac.mu.Unlock()
|
|
||||||
|
|
||||||
// Block until the created transport is down. And when this happens,
|
|
||||||
// we restart from the top of the addr list.
|
|
||||||
<-reconnect.Done()
|
|
||||||
hcancel()
|
|
||||||
// restart connecting - the top of the loop will set state to
|
|
||||||
// CONNECTING. This is against the current connectivity semantics doc,
|
|
||||||
// however it allows for graceful behavior for RPCs not yet dispatched
|
|
||||||
// - unfortunate timing would otherwise lead to the RPC failing even
|
|
||||||
// though the TRANSIENT_FAILURE state (called for by the doc) would be
|
|
||||||
// instantaneous.
|
|
||||||
//
|
|
||||||
// Ideally we should transition to Idle here and block until there is
|
|
||||||
// RPC activity that leads to the balancer requesting a reconnect of
|
|
||||||
// the associated SubConn.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addrs := ac.addrs
|
||||||
|
backoffFor := ac.dopts.bs.Backoff(ac.backoffIdx)
|
||||||
|
// This will be the duration that dial gets to finish.
|
||||||
|
dialDuration := minConnectTimeout
|
||||||
|
if ac.dopts.minConnectTimeout != nil {
|
||||||
|
dialDuration = ac.dopts.minConnectTimeout()
|
||||||
|
}
|
||||||
|
|
||||||
|
if dialDuration < backoffFor {
|
||||||
|
// Give dial more time as we keep failing to connect.
|
||||||
|
dialDuration = backoffFor
|
||||||
|
}
|
||||||
|
// We can potentially spend all the time trying the first address, and
|
||||||
|
// if the server accepts the connection and then hangs, the following
|
||||||
|
// addresses will never be tried.
|
||||||
|
//
|
||||||
|
// The spec doesn't mention what should be done for multiple addresses.
|
||||||
|
// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md#proposed-backoff-algorithm
|
||||||
|
connectDeadline := time.Now().Add(dialDuration)
|
||||||
|
|
||||||
|
ac.updateConnectivityState(connectivity.Connecting, nil)
|
||||||
|
ac.mu.Unlock()
|
||||||
|
|
||||||
|
if err := ac.tryAllAddrs(addrs, connectDeadline); err != nil {
|
||||||
|
ac.cc.resolveNow(resolver.ResolveNowOptions{})
|
||||||
|
// After exhausting all addresses, the addrConn enters
|
||||||
|
// TRANSIENT_FAILURE.
|
||||||
|
ac.mu.Lock()
|
||||||
|
if ac.state == connectivity.Shutdown {
|
||||||
|
ac.mu.Unlock()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ac.updateConnectivityState(connectivity.TransientFailure, err)
|
||||||
|
|
||||||
|
// Backoff.
|
||||||
|
b := ac.resetBackoff
|
||||||
|
ac.mu.Unlock()
|
||||||
|
|
||||||
|
timer := time.NewTimer(backoffFor)
|
||||||
|
select {
|
||||||
|
case <-timer.C:
|
||||||
|
ac.mu.Lock()
|
||||||
|
ac.backoffIdx++
|
||||||
|
ac.mu.Unlock()
|
||||||
|
case <-b:
|
||||||
|
timer.Stop()
|
||||||
|
case <-ac.ctx.Done():
|
||||||
|
timer.Stop()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ac.mu.Lock()
|
||||||
|
if ac.state != connectivity.Shutdown {
|
||||||
|
ac.updateConnectivityState(connectivity.Idle, err)
|
||||||
|
}
|
||||||
|
ac.mu.Unlock()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Success; reset backoff.
|
||||||
|
ac.mu.Lock()
|
||||||
|
ac.backoffIdx = 0
|
||||||
|
ac.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
// tryAllAddrs tries to creates a connection to the addresses, and stop when at the
|
// tryAllAddrs tries to creates a connection to the addresses, and stop when at
|
||||||
// first successful one. It returns the transport, the address and a Event in
|
// the first successful one. It returns an error if no address was successfully
|
||||||
// the successful case. The Event fires when the returned transport disconnects.
|
// connected, or updates ac appropriately with the new transport.
|
||||||
func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.Time) (transport.ClientTransport, resolver.Address, *grpcsync.Event, error) {
|
func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.Time) error {
|
||||||
var firstConnErr error
|
var firstConnErr error
|
||||||
for _, addr := range addrs {
|
for _, addr := range addrs {
|
||||||
ac.mu.Lock()
|
ac.mu.Lock()
|
||||||
if ac.state == connectivity.Shutdown {
|
if ac.state == connectivity.Shutdown {
|
||||||
ac.mu.Unlock()
|
ac.mu.Unlock()
|
||||||
return nil, resolver.Address{}, nil, errConnClosing
|
return errConnClosing
|
||||||
}
|
}
|
||||||
|
|
||||||
ac.cc.mu.RLock()
|
ac.cc.mu.RLock()
|
||||||
@ -1255,9 +1253,9 @@ func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.T
|
|||||||
|
|
||||||
channelz.Infof(logger, ac.channelzID, "Subchannel picks a new address %q to connect", addr.Addr)
|
channelz.Infof(logger, ac.channelzID, "Subchannel picks a new address %q to connect", addr.Addr)
|
||||||
|
|
||||||
newTr, reconnect, err := ac.createTransport(addr, copts, connectDeadline)
|
err := ac.createTransport(addr, copts, connectDeadline)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return newTr, addr, reconnect, nil
|
return nil
|
||||||
}
|
}
|
||||||
if firstConnErr == nil {
|
if firstConnErr == nil {
|
||||||
firstConnErr = err
|
firstConnErr = err
|
||||||
@ -1266,57 +1264,50 @@ func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.T
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Couldn't connect to any address.
|
// Couldn't connect to any address.
|
||||||
return nil, resolver.Address{}, nil, firstConnErr
|
return firstConnErr
|
||||||
}
|
}
|
||||||
|
|
||||||
// createTransport creates a connection to addr. It returns the transport and a
|
// createTransport creates a connection to addr. It returns an error if the
|
||||||
// Event in the successful case. The Event fires when the returned transport
|
// address was not successfully connected, or updates ac appropriately with the
|
||||||
// disconnects.
|
// new transport.
|
||||||
func (ac *addrConn) createTransport(addr resolver.Address, copts transport.ConnectOptions, connectDeadline time.Time) (transport.ClientTransport, *grpcsync.Event, error) {
|
func (ac *addrConn) createTransport(addr resolver.Address, copts transport.ConnectOptions, connectDeadline time.Time) error {
|
||||||
prefaceReceived := make(chan struct{})
|
// TODO: Delete prefaceReceived and move the logic to wait for it into the
|
||||||
onCloseCalled := make(chan struct{})
|
// transport.
|
||||||
reconnect := grpcsync.NewEvent()
|
prefaceReceived := grpcsync.NewEvent()
|
||||||
|
connClosed := grpcsync.NewEvent()
|
||||||
|
|
||||||
// addr.ServerName takes precedent over ClientConn authority, if present.
|
addr.ServerName = ac.cc.getServerName(addr)
|
||||||
if addr.ServerName == "" {
|
hctx, hcancel := context.WithCancel(ac.ctx)
|
||||||
addr.ServerName = ac.cc.authority
|
hcStarted := false // protected by ac.mu
|
||||||
}
|
|
||||||
|
|
||||||
once := sync.Once{}
|
|
||||||
onGoAway := func(r transport.GoAwayReason) {
|
|
||||||
ac.mu.Lock()
|
|
||||||
ac.adjustParams(r)
|
|
||||||
once.Do(func() {
|
|
||||||
if ac.state == connectivity.Ready {
|
|
||||||
// Prevent this SubConn from being used for new RPCs by setting its
|
|
||||||
// state to Connecting.
|
|
||||||
//
|
|
||||||
// TODO: this should be Idle when grpc-go properly supports it.
|
|
||||||
ac.updateConnectivityState(connectivity.Connecting, nil)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
ac.mu.Unlock()
|
|
||||||
reconnect.Fire()
|
|
||||||
}
|
|
||||||
|
|
||||||
onClose := func() {
|
onClose := func() {
|
||||||
ac.mu.Lock()
|
ac.mu.Lock()
|
||||||
once.Do(func() {
|
defer ac.mu.Unlock()
|
||||||
if ac.state == connectivity.Ready {
|
defer connClosed.Fire()
|
||||||
// Prevent this SubConn from being used for new RPCs by setting its
|
if !hcStarted || hctx.Err() != nil {
|
||||||
// state to Connecting.
|
// We didn't start the health check or set the state to READY, so
|
||||||
//
|
// no need to do anything else here.
|
||||||
// TODO: this should be Idle when grpc-go properly supports it.
|
//
|
||||||
ac.updateConnectivityState(connectivity.Connecting, nil)
|
// OR, we have already cancelled the health check context, meaning
|
||||||
}
|
// we have already called onClose once for this transport. In this
|
||||||
})
|
// case it would be dangerous to clear the transport and update the
|
||||||
ac.mu.Unlock()
|
// state, since there may be a new transport in this addrConn.
|
||||||
close(onCloseCalled)
|
return
|
||||||
reconnect.Fire()
|
}
|
||||||
|
hcancel()
|
||||||
|
ac.transport = nil
|
||||||
|
// Refresh the name resolver
|
||||||
|
ac.cc.resolveNow(resolver.ResolveNowOptions{})
|
||||||
|
if ac.state != connectivity.Shutdown {
|
||||||
|
ac.updateConnectivityState(connectivity.Idle, nil)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onPrefaceReceipt := func() {
|
onGoAway := func(r transport.GoAwayReason) {
|
||||||
close(prefaceReceived)
|
ac.mu.Lock()
|
||||||
|
ac.adjustParams(r)
|
||||||
|
ac.mu.Unlock()
|
||||||
|
onClose()
|
||||||
}
|
}
|
||||||
|
|
||||||
connectCtx, cancel := context.WithDeadline(ac.ctx, connectDeadline)
|
connectCtx, cancel := context.WithDeadline(ac.ctx, connectDeadline)
|
||||||
@ -1325,27 +1316,67 @@ func (ac *addrConn) createTransport(addr resolver.Address, copts transport.Conne
|
|||||||
copts.ChannelzParentID = ac.channelzID
|
copts.ChannelzParentID = ac.channelzID
|
||||||
}
|
}
|
||||||
|
|
||||||
newTr, err := transport.NewClientTransport(connectCtx, ac.cc.ctx, addr, copts, onPrefaceReceipt, onGoAway, onClose)
|
newTr, err := transport.NewClientTransport(connectCtx, ac.cc.ctx, addr, copts, func() { prefaceReceived.Fire() }, onGoAway, onClose)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// newTr is either nil, or closed.
|
// newTr is either nil, or closed.
|
||||||
channelz.Warningf(logger, ac.channelzID, "grpc: addrConn.createTransport failed to connect to %v. Err: %v. Reconnecting...", addr, err)
|
channelz.Warningf(logger, ac.channelzID, "grpc: addrConn.createTransport failed to connect to %v. Err: %v", addr, err)
|
||||||
return nil, nil, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case <-time.After(time.Until(connectDeadline)):
|
case <-connectCtx.Done():
|
||||||
// We didn't get the preface in time.
|
// We didn't get the preface in time.
|
||||||
newTr.Close(fmt.Errorf("failed to receive server preface within timeout"))
|
// The error we pass to Close() is immaterial since there are no open
|
||||||
channelz.Warningf(logger, ac.channelzID, "grpc: addrConn.createTransport failed to connect to %v: didn't receive server preface in time. Reconnecting...", addr)
|
// streams at this point, so no trailers with error details will be sent
|
||||||
return nil, nil, errors.New("timed out waiting for server handshake")
|
// out. We just need to pass a non-nil error.
|
||||||
case <-prefaceReceived:
|
newTr.Close(transport.ErrConnClosing)
|
||||||
|
if connectCtx.Err() == context.DeadlineExceeded {
|
||||||
|
err := errors.New("failed to receive server preface within timeout")
|
||||||
|
channelz.Warningf(logger, ac.channelzID, "grpc: addrConn.createTransport failed to connect to %v: %v", addr, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
case <-prefaceReceived.Done():
|
||||||
// We got the preface - huzzah! things are good.
|
// We got the preface - huzzah! things are good.
|
||||||
case <-onCloseCalled:
|
ac.mu.Lock()
|
||||||
// The transport has already closed - noop.
|
defer ac.mu.Unlock()
|
||||||
return nil, nil, errors.New("connection closed")
|
if connClosed.HasFired() {
|
||||||
// TODO(deklerk) this should bail on ac.ctx.Done(). Add a test and fix.
|
// onClose called first; go idle but do nothing else.
|
||||||
|
if ac.state != connectivity.Shutdown {
|
||||||
|
ac.updateConnectivityState(connectivity.Idle, nil)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if ac.state == connectivity.Shutdown {
|
||||||
|
// This can happen if the subConn was removed while in `Connecting`
|
||||||
|
// state. tearDown() would have set the state to `Shutdown`, but
|
||||||
|
// would not have closed the transport since ac.transport would not
|
||||||
|
// been set at that point.
|
||||||
|
//
|
||||||
|
// We run this in a goroutine because newTr.Close() calls onClose()
|
||||||
|
// inline, which requires locking ac.mu.
|
||||||
|
//
|
||||||
|
// The error we pass to Close() is immaterial since there are no open
|
||||||
|
// streams at this point, so no trailers with error details will be sent
|
||||||
|
// out. We just need to pass a non-nil error.
|
||||||
|
go newTr.Close(transport.ErrConnClosing)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
ac.curAddr = addr
|
||||||
|
ac.transport = newTr
|
||||||
|
hcStarted = true
|
||||||
|
ac.startHealthCheck(hctx) // Will set state to READY if appropriate.
|
||||||
|
return nil
|
||||||
|
case <-connClosed.Done():
|
||||||
|
// The transport has already closed. If we received the preface, too,
|
||||||
|
// this is not an error.
|
||||||
|
select {
|
||||||
|
case <-prefaceReceived.Done():
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return errors.New("connection closed before server preface received")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return newTr, reconnect, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// startHealthCheck starts the health checking stream (RPC) to watch the health
|
// startHealthCheck starts the health checking stream (RPC) to watch the health
|
||||||
@ -1587,3 +1618,114 @@ func (cc *ClientConn) connectionError() error {
|
|||||||
defer cc.lceMu.Unlock()
|
defer cc.lceMu.Unlock()
|
||||||
return cc.lastConnectionError
|
return cc.lastConnectionError
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConn) parseTargetAndFindResolver() (resolver.Builder, error) {
|
||||||
|
channelz.Infof(logger, cc.channelzID, "original dial target is: %q", cc.target)
|
||||||
|
|
||||||
|
var rb resolver.Builder
|
||||||
|
parsedTarget, err := parseTarget(cc.target)
|
||||||
|
if err != nil {
|
||||||
|
channelz.Infof(logger, cc.channelzID, "dial target %q parse failed: %v", cc.target, err)
|
||||||
|
} else {
|
||||||
|
channelz.Infof(logger, cc.channelzID, "parsed dial target is: %+v", parsedTarget)
|
||||||
|
rb = cc.getResolver(parsedTarget.Scheme)
|
||||||
|
if rb != nil {
|
||||||
|
cc.parsedTarget = parsedTarget
|
||||||
|
return rb, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// We are here because the user's dial target did not contain a scheme or
|
||||||
|
// specified an unregistered scheme. We should fallback to the default
|
||||||
|
// scheme, except when a custom dialer is specified in which case, we should
|
||||||
|
// always use passthrough scheme.
|
||||||
|
defScheme := resolver.GetDefaultScheme()
|
||||||
|
channelz.Infof(logger, cc.channelzID, "fallback to scheme %q", defScheme)
|
||||||
|
canonicalTarget := defScheme + ":///" + cc.target
|
||||||
|
|
||||||
|
parsedTarget, err = parseTarget(canonicalTarget)
|
||||||
|
if err != nil {
|
||||||
|
channelz.Infof(logger, cc.channelzID, "dial target %q parse failed: %v", canonicalTarget, err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
channelz.Infof(logger, cc.channelzID, "parsed dial target is: %+v", parsedTarget)
|
||||||
|
rb = cc.getResolver(parsedTarget.Scheme)
|
||||||
|
if rb == nil {
|
||||||
|
return nil, fmt.Errorf("could not get resolver for default scheme: %q", parsedTarget.Scheme)
|
||||||
|
}
|
||||||
|
cc.parsedTarget = parsedTarget
|
||||||
|
return rb, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// parseTarget uses RFC 3986 semantics to parse the given target into a
|
||||||
|
// resolver.Target struct containing scheme, authority and endpoint. Query
|
||||||
|
// params are stripped from the endpoint.
|
||||||
|
func parseTarget(target string) (resolver.Target, error) {
|
||||||
|
u, err := url.Parse(target)
|
||||||
|
if err != nil {
|
||||||
|
return resolver.Target{}, err
|
||||||
|
}
|
||||||
|
// For targets of the form "[scheme]://[authority]/endpoint, the endpoint
|
||||||
|
// value returned from url.Parse() contains a leading "/". Although this is
|
||||||
|
// in accordance with RFC 3986, we do not want to break existing resolver
|
||||||
|
// implementations which expect the endpoint without the leading "/". So, we
|
||||||
|
// end up stripping the leading "/" here. But this will result in an
|
||||||
|
// incorrect parsing for something like "unix:///path/to/socket". Since we
|
||||||
|
// own the "unix" resolver, we can workaround in the unix resolver by using
|
||||||
|
// the `URL` field instead of the `Endpoint` field.
|
||||||
|
endpoint := u.Path
|
||||||
|
if endpoint == "" {
|
||||||
|
endpoint = u.Opaque
|
||||||
|
}
|
||||||
|
endpoint = strings.TrimPrefix(endpoint, "/")
|
||||||
|
return resolver.Target{
|
||||||
|
Scheme: u.Scheme,
|
||||||
|
Authority: u.Host,
|
||||||
|
Endpoint: endpoint,
|
||||||
|
URL: *u,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine channel authority. The order of precedence is as follows:
|
||||||
|
// - user specified authority override using `WithAuthority` dial option
|
||||||
|
// - creds' notion of server name for the authentication handshake
|
||||||
|
// - endpoint from dial target of the form "scheme://[authority]/endpoint"
|
||||||
|
func determineAuthority(endpoint, target string, dopts dialOptions) (string, error) {
|
||||||
|
// Historically, we had two options for users to specify the serverName or
|
||||||
|
// authority for a channel. One was through the transport credentials
|
||||||
|
// (either in its constructor, or through the OverrideServerName() method).
|
||||||
|
// The other option (for cases where WithInsecure() dial option was used)
|
||||||
|
// was to use the WithAuthority() dial option.
|
||||||
|
//
|
||||||
|
// A few things have changed since:
|
||||||
|
// - `insecure` package with an implementation of the `TransportCredentials`
|
||||||
|
// interface for the insecure case
|
||||||
|
// - WithAuthority() dial option support for secure credentials
|
||||||
|
authorityFromCreds := ""
|
||||||
|
if creds := dopts.copts.TransportCredentials; creds != nil && creds.Info().ServerName != "" {
|
||||||
|
authorityFromCreds = creds.Info().ServerName
|
||||||
|
}
|
||||||
|
authorityFromDialOption := dopts.authority
|
||||||
|
if (authorityFromCreds != "" && authorityFromDialOption != "") && authorityFromCreds != authorityFromDialOption {
|
||||||
|
return "", fmt.Errorf("ClientConn's authority from transport creds %q and dial option %q don't match", authorityFromCreds, authorityFromDialOption)
|
||||||
|
}
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case authorityFromDialOption != "":
|
||||||
|
return authorityFromDialOption, nil
|
||||||
|
case authorityFromCreds != "":
|
||||||
|
return authorityFromCreds, nil
|
||||||
|
case strings.HasPrefix(target, "unix:") || strings.HasPrefix(target, "unix-abstract:"):
|
||||||
|
// TODO: remove when the unix resolver implements optional interface to
|
||||||
|
// return channel authority.
|
||||||
|
return "localhost", nil
|
||||||
|
case strings.HasPrefix(endpoint, ":"):
|
||||||
|
return "localhost" + endpoint, nil
|
||||||
|
default:
|
||||||
|
// TODO: Define an optional interface on the resolver builder to return
|
||||||
|
// the channel authority given the user's dial target. For resolvers
|
||||||
|
// which don't implement this interface, we will use the endpoint from
|
||||||
|
// "scheme://authority/endpoint" as the default authority.
|
||||||
|
return endpoint, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
35
vendor/google.golang.org/grpc/connectivity/connectivity.go
generated
vendored
35
vendor/google.golang.org/grpc/connectivity/connectivity.go
generated
vendored
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
// Package connectivity defines connectivity semantics.
|
// Package connectivity defines connectivity semantics.
|
||||||
// For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md.
|
// For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md.
|
||||||
// All APIs in this package are experimental.
|
|
||||||
package connectivity
|
package connectivity
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -45,7 +44,7 @@ func (s State) String() string {
|
|||||||
return "SHUTDOWN"
|
return "SHUTDOWN"
|
||||||
default:
|
default:
|
||||||
logger.Errorf("unknown connectivity state: %d", s)
|
logger.Errorf("unknown connectivity state: %d", s)
|
||||||
return "Invalid-State"
|
return "INVALID_STATE"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,3 +60,35 @@ const (
|
|||||||
// Shutdown indicates the ClientConn has started shutting down.
|
// Shutdown indicates the ClientConn has started shutting down.
|
||||||
Shutdown
|
Shutdown
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ServingMode indicates the current mode of operation of the server.
|
||||||
|
//
|
||||||
|
// Only xDS enabled gRPC servers currently report their serving mode.
|
||||||
|
type ServingMode int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ServingModeStarting indicates that the server is starting up.
|
||||||
|
ServingModeStarting ServingMode = iota
|
||||||
|
// ServingModeServing indicates that the server contains all required
|
||||||
|
// configuration and is serving RPCs.
|
||||||
|
ServingModeServing
|
||||||
|
// ServingModeNotServing indicates that the server is not accepting new
|
||||||
|
// connections. Existing connections will be closed gracefully, allowing
|
||||||
|
// in-progress RPCs to complete. A server enters this mode when it does not
|
||||||
|
// contain the required configuration to serve RPCs.
|
||||||
|
ServingModeNotServing
|
||||||
|
)
|
||||||
|
|
||||||
|
func (s ServingMode) String() string {
|
||||||
|
switch s {
|
||||||
|
case ServingModeStarting:
|
||||||
|
return "STARTING"
|
||||||
|
case ServingModeServing:
|
||||||
|
return "SERVING"
|
||||||
|
case ServingModeNotServing:
|
||||||
|
return "NOT_SERVING"
|
||||||
|
default:
|
||||||
|
logger.Errorf("unknown serving mode: %d", s)
|
||||||
|
return "INVALID_MODE"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
25
vendor/google.golang.org/grpc/credentials/credentials.go
generated
vendored
25
vendor/google.golang.org/grpc/credentials/credentials.go
generated
vendored
@ -140,6 +140,11 @@ type TransportCredentials interface {
|
|||||||
// Additionally, ClientHandshakeInfo data will be available via the context
|
// Additionally, ClientHandshakeInfo data will be available via the context
|
||||||
// passed to this call.
|
// passed to this call.
|
||||||
//
|
//
|
||||||
|
// The second argument to this method is the `:authority` header value used
|
||||||
|
// while creating new streams on this connection after authentication
|
||||||
|
// succeeds. Implementations must use this as the server name during the
|
||||||
|
// authentication handshake.
|
||||||
|
//
|
||||||
// If the returned net.Conn is closed, it MUST close the net.Conn provided.
|
// If the returned net.Conn is closed, it MUST close the net.Conn provided.
|
||||||
ClientHandshake(context.Context, string, net.Conn) (net.Conn, AuthInfo, error)
|
ClientHandshake(context.Context, string, net.Conn) (net.Conn, AuthInfo, error)
|
||||||
// ServerHandshake does the authentication handshake for servers. It returns
|
// ServerHandshake does the authentication handshake for servers. It returns
|
||||||
@ -153,9 +158,13 @@ type TransportCredentials interface {
|
|||||||
Info() ProtocolInfo
|
Info() ProtocolInfo
|
||||||
// Clone makes a copy of this TransportCredentials.
|
// Clone makes a copy of this TransportCredentials.
|
||||||
Clone() TransportCredentials
|
Clone() TransportCredentials
|
||||||
// OverrideServerName overrides the server name used to verify the hostname on the returned certificates from the server.
|
// OverrideServerName specifies the value used for the following:
|
||||||
// gRPC internals also use it to override the virtual hosting name if it is set.
|
// - verifying the hostname on the returned certificates
|
||||||
// It must be called before dialing. Currently, this is only used by grpclb.
|
// - as SNI in the client's handshake to support virtual hosting
|
||||||
|
// - as the value for `:authority` header at stream creation time
|
||||||
|
//
|
||||||
|
// Deprecated: use grpc.WithAuthority instead. Will be supported
|
||||||
|
// throughout 1.x.
|
||||||
OverrideServerName(string) error
|
OverrideServerName(string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,8 +178,18 @@ type TransportCredentials interface {
|
|||||||
//
|
//
|
||||||
// This API is experimental.
|
// This API is experimental.
|
||||||
type Bundle interface {
|
type Bundle interface {
|
||||||
|
// TransportCredentials returns the transport credentials from the Bundle.
|
||||||
|
//
|
||||||
|
// Implementations must return non-nil transport credentials. If transport
|
||||||
|
// security is not needed by the Bundle, implementations may choose to
|
||||||
|
// return insecure.NewCredentials().
|
||||||
TransportCredentials() TransportCredentials
|
TransportCredentials() TransportCredentials
|
||||||
|
|
||||||
|
// PerRPCCredentials returns the per-RPC credentials from the Bundle.
|
||||||
|
//
|
||||||
|
// May be nil if per-RPC credentials are not needed.
|
||||||
PerRPCCredentials() PerRPCCredentials
|
PerRPCCredentials() PerRPCCredentials
|
||||||
|
|
||||||
// NewWithMode should make a copy of Bundle, and switch mode. Modifying the
|
// NewWithMode should make a copy of Bundle, and switch mode. Modifying the
|
||||||
// existing Bundle may cause races.
|
// existing Bundle may cause races.
|
||||||
//
|
//
|
||||||
|
30
vendor/google.golang.org/grpc/credentials/go12.go
generated
vendored
30
vendor/google.golang.org/grpc/credentials/go12.go
generated
vendored
@ -1,30 +0,0 @@
|
|||||||
// +build go1.12
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright 2019 gRPC authors.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package credentials
|
|
||||||
|
|
||||||
import "crypto/tls"
|
|
||||||
|
|
||||||
// This init function adds cipher suite constants only defined in Go 1.12.
|
|
||||||
func init() {
|
|
||||||
cipherSuiteLookup[tls.TLS_AES_128_GCM_SHA256] = "TLS_AES_128_GCM_SHA256"
|
|
||||||
cipherSuiteLookup[tls.TLS_AES_256_GCM_SHA384] = "TLS_AES_256_GCM_SHA384"
|
|
||||||
cipherSuiteLookup[tls.TLS_CHACHA20_POLY1305_SHA256] = "TLS_CHACHA20_POLY1305_SHA256"
|
|
||||||
}
|
|
72
vendor/google.golang.org/grpc/credentials/insecure/insecure.go
generated
vendored
Normal file
72
vendor/google.golang.org/grpc/credentials/insecure/insecure.go
generated
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright 2020 gRPC authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Package insecure provides an implementation of the
|
||||||
|
// credentials.TransportCredentials interface which disables transport security.
|
||||||
|
package insecure
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"net"
|
||||||
|
|
||||||
|
"google.golang.org/grpc/credentials"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewCredentials returns a credentials which disables transport security.
|
||||||
|
//
|
||||||
|
// Note that using this credentials with per-RPC credentials which require
|
||||||
|
// transport security is incompatible and will cause grpc.Dial() to fail.
|
||||||
|
func NewCredentials() credentials.TransportCredentials {
|
||||||
|
return insecureTC{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// insecureTC implements the insecure transport credentials. The handshake
|
||||||
|
// methods simply return the passed in net.Conn and set the security level to
|
||||||
|
// NoSecurity.
|
||||||
|
type insecureTC struct{}
|
||||||
|
|
||||||
|
func (insecureTC) ClientHandshake(ctx context.Context, _ string, conn net.Conn) (net.Conn, credentials.AuthInfo, error) {
|
||||||
|
return conn, info{credentials.CommonAuthInfo{SecurityLevel: credentials.NoSecurity}}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (insecureTC) ServerHandshake(conn net.Conn) (net.Conn, credentials.AuthInfo, error) {
|
||||||
|
return conn, info{credentials.CommonAuthInfo{SecurityLevel: credentials.NoSecurity}}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (insecureTC) Info() credentials.ProtocolInfo {
|
||||||
|
return credentials.ProtocolInfo{SecurityProtocol: "insecure"}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (insecureTC) Clone() credentials.TransportCredentials {
|
||||||
|
return insecureTC{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (insecureTC) OverrideServerName(string) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// info contains the auth information for an insecure connection.
|
||||||
|
// It implements the AuthInfo interface.
|
||||||
|
type info struct {
|
||||||
|
credentials.CommonAuthInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
// AuthType returns the type of info as a string.
|
||||||
|
func (info) AuthType() string {
|
||||||
|
return "insecure"
|
||||||
|
}
|
3
vendor/google.golang.org/grpc/credentials/tls.go
generated
vendored
3
vendor/google.golang.org/grpc/credentials/tls.go
generated
vendored
@ -230,4 +230,7 @@ var cipherSuiteLookup = map[uint16]string{
|
|||||||
tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
|
tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
|
||||||
tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
|
tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
|
||||||
tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
|
tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
|
||||||
|
tls.TLS_AES_128_GCM_SHA256: "TLS_AES_128_GCM_SHA256",
|
||||||
|
tls.TLS_AES_256_GCM_SHA384: "TLS_AES_256_GCM_SHA384",
|
||||||
|
tls.TLS_CHACHA20_POLY1305_SHA256: "TLS_CHACHA20_POLY1305_SHA256",
|
||||||
}
|
}
|
||||||
|
53
vendor/google.golang.org/grpc/dialoptions.go
generated
vendored
53
vendor/google.golang.org/grpc/dialoptions.go
generated
vendored
@ -27,9 +27,9 @@ import (
|
|||||||
"google.golang.org/grpc/backoff"
|
"google.golang.org/grpc/backoff"
|
||||||
"google.golang.org/grpc/balancer"
|
"google.golang.org/grpc/balancer"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
"google.golang.org/grpc/internal"
|
"google.golang.org/grpc/internal"
|
||||||
internalbackoff "google.golang.org/grpc/internal/backoff"
|
internalbackoff "google.golang.org/grpc/internal/backoff"
|
||||||
"google.golang.org/grpc/internal/envconfig"
|
|
||||||
"google.golang.org/grpc/internal/transport"
|
"google.golang.org/grpc/internal/transport"
|
||||||
"google.golang.org/grpc/keepalive"
|
"google.golang.org/grpc/keepalive"
|
||||||
"google.golang.org/grpc/resolver"
|
"google.golang.org/grpc/resolver"
|
||||||
@ -50,7 +50,6 @@ type dialOptions struct {
|
|||||||
bs internalbackoff.Strategy
|
bs internalbackoff.Strategy
|
||||||
block bool
|
block bool
|
||||||
returnLastError bool
|
returnLastError bool
|
||||||
insecure bool
|
|
||||||
timeout time.Duration
|
timeout time.Duration
|
||||||
scChan <-chan ServiceConfig
|
scChan <-chan ServiceConfig
|
||||||
authority string
|
authority string
|
||||||
@ -228,18 +227,14 @@ func WithServiceConfig(c <-chan ServiceConfig) DialOption {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithConnectParams configures the dialer to use the provided ConnectParams.
|
// WithConnectParams configures the ClientConn to use the provided ConnectParams
|
||||||
|
// for creating and maintaining connections to servers.
|
||||||
//
|
//
|
||||||
// The backoff configuration specified as part of the ConnectParams overrides
|
// The backoff configuration specified as part of the ConnectParams overrides
|
||||||
// all defaults specified in
|
// all defaults specified in
|
||||||
// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. Consider
|
// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. Consider
|
||||||
// using the backoff.DefaultConfig as a base, in cases where you want to
|
// using the backoff.DefaultConfig as a base, in cases where you want to
|
||||||
// override only a subset of the backoff configuration.
|
// override only a subset of the backoff configuration.
|
||||||
//
|
|
||||||
// Experimental
|
|
||||||
//
|
|
||||||
// Notice: This API is EXPERIMENTAL and may be changed or removed in a
|
|
||||||
// later release.
|
|
||||||
func WithConnectParams(p ConnectParams) DialOption {
|
func WithConnectParams(p ConnectParams) DialOption {
|
||||||
return newFuncDialOption(func(o *dialOptions) {
|
return newFuncDialOption(func(o *dialOptions) {
|
||||||
o.bs = internalbackoff.Exponential{Config: p.Backoff}
|
o.bs = internalbackoff.Exponential{Config: p.Backoff}
|
||||||
@ -277,7 +272,7 @@ func withBackoff(bs internalbackoff.Strategy) DialOption {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithBlock returns a DialOption which makes caller of Dial blocks until the
|
// WithBlock returns a DialOption which makes callers of Dial block until the
|
||||||
// underlying connection is up. Without this, Dial returns immediately and
|
// underlying connection is up. Without this, Dial returns immediately and
|
||||||
// connecting the server happens in background.
|
// connecting the server happens in background.
|
||||||
func WithBlock() DialOption {
|
func WithBlock() DialOption {
|
||||||
@ -303,11 +298,17 @@ func WithReturnConnectionError() DialOption {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// WithInsecure returns a DialOption which disables transport security for this
|
// WithInsecure returns a DialOption which disables transport security for this
|
||||||
// ClientConn. Note that transport security is required unless WithInsecure is
|
// ClientConn. Under the hood, it uses insecure.NewCredentials().
|
||||||
// set.
|
//
|
||||||
|
// Note that using this DialOption with per-RPC credentials (through
|
||||||
|
// WithCredentialsBundle or WithPerRPCCredentials) which require transport
|
||||||
|
// security is incompatible and will cause grpc.Dial() to fail.
|
||||||
|
//
|
||||||
|
// Deprecated: use WithTransportCredentials and insecure.NewCredentials() instead.
|
||||||
|
// Will be supported throughout 1.x.
|
||||||
func WithInsecure() DialOption {
|
func WithInsecure() DialOption {
|
||||||
return newFuncDialOption(func(o *dialOptions) {
|
return newFuncDialOption(func(o *dialOptions) {
|
||||||
o.insecure = true
|
o.copts.TransportCredentials = insecure.NewCredentials()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,8 +483,7 @@ func WithChainStreamInterceptor(interceptors ...StreamClientInterceptor) DialOpt
|
|||||||
}
|
}
|
||||||
|
|
||||||
// WithAuthority returns a DialOption that specifies the value to be used as the
|
// WithAuthority returns a DialOption that specifies the value to be used as the
|
||||||
// :authority pseudo-header. This value only works with WithInsecure and has no
|
// :authority pseudo-header and as the server name in authentication handshake.
|
||||||
// effect if TransportCredentials are present.
|
|
||||||
func WithAuthority(a string) DialOption {
|
func WithAuthority(a string) DialOption {
|
||||||
return newFuncDialOption(func(o *dialOptions) {
|
return newFuncDialOption(func(o *dialOptions) {
|
||||||
o.authority = a
|
o.authority = a
|
||||||
@ -519,14 +519,16 @@ func WithDisableServiceConfig() DialOption {
|
|||||||
// WithDefaultServiceConfig returns a DialOption that configures the default
|
// WithDefaultServiceConfig returns a DialOption that configures the default
|
||||||
// service config, which will be used in cases where:
|
// service config, which will be used in cases where:
|
||||||
//
|
//
|
||||||
// 1. WithDisableServiceConfig is also used.
|
// 1. WithDisableServiceConfig is also used, or
|
||||||
// 2. Resolver does not return a service config or if the resolver returns an
|
|
||||||
// invalid service config.
|
|
||||||
//
|
//
|
||||||
// Experimental
|
// 2. The name resolver does not provide a service config or provides an
|
||||||
|
// invalid service config.
|
||||||
//
|
//
|
||||||
// Notice: This API is EXPERIMENTAL and may be changed or removed in a
|
// The parameter s is the JSON representation of the default service config.
|
||||||
// later release.
|
// For more information about service configs, see:
|
||||||
|
// https://github.com/grpc/grpc/blob/master/doc/service_config.md
|
||||||
|
// For a simple example of usage, see:
|
||||||
|
// examples/features/load_balancing/client/main.go
|
||||||
func WithDefaultServiceConfig(s string) DialOption {
|
func WithDefaultServiceConfig(s string) DialOption {
|
||||||
return newFuncDialOption(func(o *dialOptions) {
|
return newFuncDialOption(func(o *dialOptions) {
|
||||||
o.defaultServiceConfigRawJSON = &s
|
o.defaultServiceConfigRawJSON = &s
|
||||||
@ -538,14 +540,8 @@ func WithDefaultServiceConfig(s string) DialOption {
|
|||||||
// will happen automatically if no data is written to the wire or if the RPC is
|
// will happen automatically if no data is written to the wire or if the RPC is
|
||||||
// unprocessed by the remote server.
|
// unprocessed by the remote server.
|
||||||
//
|
//
|
||||||
// Retry support is currently disabled by default, but will be enabled by
|
// Retry support is currently enabled by default, but may be disabled by
|
||||||
// default in the future. Until then, it may be enabled by setting the
|
// setting the environment variable "GRPC_GO_RETRY" to "off".
|
||||||
// environment variable "GRPC_GO_RETRY" to "on".
|
|
||||||
//
|
|
||||||
// Experimental
|
|
||||||
//
|
|
||||||
// Notice: This API is EXPERIMENTAL and may be changed or removed in a
|
|
||||||
// later release.
|
|
||||||
func WithDisableRetry() DialOption {
|
func WithDisableRetry() DialOption {
|
||||||
return newFuncDialOption(func(o *dialOptions) {
|
return newFuncDialOption(func(o *dialOptions) {
|
||||||
o.disableRetry = true
|
o.disableRetry = true
|
||||||
@ -585,7 +581,6 @@ func withHealthCheckFunc(f internal.HealthChecker) DialOption {
|
|||||||
|
|
||||||
func defaultDialOptions() dialOptions {
|
func defaultDialOptions() dialOptions {
|
||||||
return dialOptions{
|
return dialOptions{
|
||||||
disableRetry: !envconfig.Retry,
|
|
||||||
healthCheckFunc: internal.HealthCheckFunc,
|
healthCheckFunc: internal.HealthCheckFunc,
|
||||||
copts: transport.ConnectOptions{
|
copts: transport.ConnectOptions{
|
||||||
WriteBufferSize: defaultWriteBufSize,
|
WriteBufferSize: defaultWriteBufSize,
|
||||||
|
94
vendor/google.golang.org/grpc/grpclog/loggerv2.go
generated
vendored
94
vendor/google.golang.org/grpc/grpclog/loggerv2.go
generated
vendored
@ -19,11 +19,14 @@
|
|||||||
package grpclog
|
package grpclog
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"google.golang.org/grpc/internal/grpclog"
|
"google.golang.org/grpc/internal/grpclog"
|
||||||
)
|
)
|
||||||
@ -95,8 +98,9 @@ var severityName = []string{
|
|||||||
|
|
||||||
// loggerT is the default logger used by grpclog.
|
// loggerT is the default logger used by grpclog.
|
||||||
type loggerT struct {
|
type loggerT struct {
|
||||||
m []*log.Logger
|
m []*log.Logger
|
||||||
v int
|
v int
|
||||||
|
jsonFormat bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewLoggerV2 creates a loggerV2 with the provided writers.
|
// NewLoggerV2 creates a loggerV2 with the provided writers.
|
||||||
@ -105,19 +109,32 @@ type loggerT struct {
|
|||||||
// Warning logs will be written to warningW and infoW.
|
// Warning logs will be written to warningW and infoW.
|
||||||
// Info logs will be written to infoW.
|
// Info logs will be written to infoW.
|
||||||
func NewLoggerV2(infoW, warningW, errorW io.Writer) LoggerV2 {
|
func NewLoggerV2(infoW, warningW, errorW io.Writer) LoggerV2 {
|
||||||
return NewLoggerV2WithVerbosity(infoW, warningW, errorW, 0)
|
return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{})
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewLoggerV2WithVerbosity creates a loggerV2 with the provided writers and
|
// NewLoggerV2WithVerbosity creates a loggerV2 with the provided writers and
|
||||||
// verbosity level.
|
// verbosity level.
|
||||||
func NewLoggerV2WithVerbosity(infoW, warningW, errorW io.Writer, v int) LoggerV2 {
|
func NewLoggerV2WithVerbosity(infoW, warningW, errorW io.Writer, v int) LoggerV2 {
|
||||||
|
return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{verbose: v})
|
||||||
|
}
|
||||||
|
|
||||||
|
type loggerV2Config struct {
|
||||||
|
verbose int
|
||||||
|
jsonFormat bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func newLoggerV2WithConfig(infoW, warningW, errorW io.Writer, c loggerV2Config) LoggerV2 {
|
||||||
var m []*log.Logger
|
var m []*log.Logger
|
||||||
m = append(m, log.New(infoW, severityName[infoLog]+": ", log.LstdFlags))
|
flag := log.LstdFlags
|
||||||
m = append(m, log.New(io.MultiWriter(infoW, warningW), severityName[warningLog]+": ", log.LstdFlags))
|
if c.jsonFormat {
|
||||||
|
flag = 0
|
||||||
|
}
|
||||||
|
m = append(m, log.New(infoW, "", flag))
|
||||||
|
m = append(m, log.New(io.MultiWriter(infoW, warningW), "", flag))
|
||||||
ew := io.MultiWriter(infoW, warningW, errorW) // ew will be used for error and fatal.
|
ew := io.MultiWriter(infoW, warningW, errorW) // ew will be used for error and fatal.
|
||||||
m = append(m, log.New(ew, severityName[errorLog]+": ", log.LstdFlags))
|
m = append(m, log.New(ew, "", flag))
|
||||||
m = append(m, log.New(ew, severityName[fatalLog]+": ", log.LstdFlags))
|
m = append(m, log.New(ew, "", flag))
|
||||||
return &loggerT{m: m, v: v}
|
return &loggerT{m: m, v: c.verbose, jsonFormat: c.jsonFormat}
|
||||||
}
|
}
|
||||||
|
|
||||||
// newLoggerV2 creates a loggerV2 to be used as default logger.
|
// newLoggerV2 creates a loggerV2 to be used as default logger.
|
||||||
@ -142,58 +159,79 @@ func newLoggerV2() LoggerV2 {
|
|||||||
if vl, err := strconv.Atoi(vLevel); err == nil {
|
if vl, err := strconv.Atoi(vLevel); err == nil {
|
||||||
v = vl
|
v = vl
|
||||||
}
|
}
|
||||||
return NewLoggerV2WithVerbosity(infoW, warningW, errorW, v)
|
|
||||||
|
jsonFormat := strings.EqualFold(os.Getenv("GRPC_GO_LOG_FORMATTER"), "json")
|
||||||
|
|
||||||
|
return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{
|
||||||
|
verbose: v,
|
||||||
|
jsonFormat: jsonFormat,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *loggerT) output(severity int, s string) {
|
||||||
|
sevStr := severityName[severity]
|
||||||
|
if !g.jsonFormat {
|
||||||
|
g.m[severity].Output(2, fmt.Sprintf("%v: %v", sevStr, s))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// TODO: we can also include the logging component, but that needs more
|
||||||
|
// (API) changes.
|
||||||
|
b, _ := json.Marshal(map[string]string{
|
||||||
|
"severity": sevStr,
|
||||||
|
"message": s,
|
||||||
|
})
|
||||||
|
g.m[severity].Output(2, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Info(args ...interface{}) {
|
func (g *loggerT) Info(args ...interface{}) {
|
||||||
g.m[infoLog].Print(args...)
|
g.output(infoLog, fmt.Sprint(args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Infoln(args ...interface{}) {
|
func (g *loggerT) Infoln(args ...interface{}) {
|
||||||
g.m[infoLog].Println(args...)
|
g.output(infoLog, fmt.Sprintln(args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Infof(format string, args ...interface{}) {
|
func (g *loggerT) Infof(format string, args ...interface{}) {
|
||||||
g.m[infoLog].Printf(format, args...)
|
g.output(infoLog, fmt.Sprintf(format, args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Warning(args ...interface{}) {
|
func (g *loggerT) Warning(args ...interface{}) {
|
||||||
g.m[warningLog].Print(args...)
|
g.output(warningLog, fmt.Sprint(args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Warningln(args ...interface{}) {
|
func (g *loggerT) Warningln(args ...interface{}) {
|
||||||
g.m[warningLog].Println(args...)
|
g.output(warningLog, fmt.Sprintln(args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Warningf(format string, args ...interface{}) {
|
func (g *loggerT) Warningf(format string, args ...interface{}) {
|
||||||
g.m[warningLog].Printf(format, args...)
|
g.output(warningLog, fmt.Sprintf(format, args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Error(args ...interface{}) {
|
func (g *loggerT) Error(args ...interface{}) {
|
||||||
g.m[errorLog].Print(args...)
|
g.output(errorLog, fmt.Sprint(args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Errorln(args ...interface{}) {
|
func (g *loggerT) Errorln(args ...interface{}) {
|
||||||
g.m[errorLog].Println(args...)
|
g.output(errorLog, fmt.Sprintln(args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Errorf(format string, args ...interface{}) {
|
func (g *loggerT) Errorf(format string, args ...interface{}) {
|
||||||
g.m[errorLog].Printf(format, args...)
|
g.output(errorLog, fmt.Sprintf(format, args...))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Fatal(args ...interface{}) {
|
func (g *loggerT) Fatal(args ...interface{}) {
|
||||||
g.m[fatalLog].Fatal(args...)
|
g.output(fatalLog, fmt.Sprint(args...))
|
||||||
// No need to call os.Exit() again because log.Logger.Fatal() calls os.Exit().
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Fatalln(args ...interface{}) {
|
func (g *loggerT) Fatalln(args ...interface{}) {
|
||||||
g.m[fatalLog].Fatalln(args...)
|
g.output(fatalLog, fmt.Sprintln(args...))
|
||||||
// No need to call os.Exit() again because log.Logger.Fatal() calls os.Exit().
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) Fatalf(format string, args ...interface{}) {
|
func (g *loggerT) Fatalf(format string, args ...interface{}) {
|
||||||
g.m[fatalLog].Fatalf(format, args...)
|
g.output(fatalLog, fmt.Sprintf(format, args...))
|
||||||
// No need to call os.Exit() again because log.Logger.Fatal() calls os.Exit().
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *loggerT) V(l int) bool {
|
func (g *loggerT) V(l int) bool {
|
||||||
@ -210,12 +248,12 @@ func (g *loggerT) V(l int) bool {
|
|||||||
// later release.
|
// later release.
|
||||||
type DepthLoggerV2 interface {
|
type DepthLoggerV2 interface {
|
||||||
LoggerV2
|
LoggerV2
|
||||||
// InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Print.
|
// InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println.
|
||||||
InfoDepth(depth int, args ...interface{})
|
InfoDepth(depth int, args ...interface{})
|
||||||
// WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Print.
|
// WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println.
|
||||||
WarningDepth(depth int, args ...interface{})
|
WarningDepth(depth int, args ...interface{})
|
||||||
// ErrorDetph logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Print.
|
// ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println.
|
||||||
ErrorDepth(depth int, args ...interface{})
|
ErrorDepth(depth int, args ...interface{})
|
||||||
// FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Print.
|
// FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println.
|
||||||
FatalDepth(depth int, args ...interface{})
|
FatalDepth(depth int, args ...interface{})
|
||||||
}
|
}
|
||||||
|
2
vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go
generated
vendored
2
vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.1.0
|
// - protoc-gen-go-grpc v1.2.0
|
||||||
// - protoc v3.14.0
|
// - protoc v3.14.0
|
||||||
// source: grpc/health/v1/health.proto
|
// source: grpc/health/v1/health.proto
|
||||||
|
|
||||||
|
6
vendor/google.golang.org/grpc/install_gae.sh
generated
vendored
6
vendor/google.golang.org/grpc/install_gae.sh
generated
vendored
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
TMP=$(mktemp -d /tmp/sdk.XXX) \
|
|
||||||
&& curl -o $TMP.zip "https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_linux_amd64-1.9.68.zip" \
|
|
||||||
&& unzip -q $TMP.zip -d $TMP \
|
|
||||||
&& export PATH="$PATH:$TMP/go_appengine"
|
|
22
vendor/google.golang.org/grpc/internal/channelz/funcs.go
generated
vendored
22
vendor/google.golang.org/grpc/internal/channelz/funcs.go
generated
vendored
@ -204,9 +204,9 @@ func RegisterChannel(c Channel, pid int64, ref string) int64 {
|
|||||||
trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())},
|
trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())},
|
||||||
}
|
}
|
||||||
if pid == 0 {
|
if pid == 0 {
|
||||||
db.get().addChannel(id, cn, true, pid, ref)
|
db.get().addChannel(id, cn, true, pid)
|
||||||
} else {
|
} else {
|
||||||
db.get().addChannel(id, cn, false, pid, ref)
|
db.get().addChannel(id, cn, false, pid)
|
||||||
}
|
}
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
@ -228,7 +228,7 @@ func RegisterSubChannel(c Channel, pid int64, ref string) int64 {
|
|||||||
pid: pid,
|
pid: pid,
|
||||||
trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())},
|
trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())},
|
||||||
}
|
}
|
||||||
db.get().addSubChannel(id, sc, pid, ref)
|
db.get().addSubChannel(id, sc, pid)
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,7 +258,7 @@ func RegisterListenSocket(s Socket, pid int64, ref string) int64 {
|
|||||||
}
|
}
|
||||||
id := idGen.genID()
|
id := idGen.genID()
|
||||||
ls := &listenSocket{refName: ref, s: s, id: id, pid: pid}
|
ls := &listenSocket{refName: ref, s: s, id: id, pid: pid}
|
||||||
db.get().addListenSocket(id, ls, pid, ref)
|
db.get().addListenSocket(id, ls, pid)
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,11 +273,11 @@ func RegisterNormalSocket(s Socket, pid int64, ref string) int64 {
|
|||||||
}
|
}
|
||||||
id := idGen.genID()
|
id := idGen.genID()
|
||||||
ns := &normalSocket{refName: ref, s: s, id: id, pid: pid}
|
ns := &normalSocket{refName: ref, s: s, id: id, pid: pid}
|
||||||
db.get().addNormalSocket(id, ns, pid, ref)
|
db.get().addNormalSocket(id, ns, pid)
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveEntry removes an entry with unique channelz trakcing id to be id from
|
// RemoveEntry removes an entry with unique channelz tracking id to be id from
|
||||||
// channelz database.
|
// channelz database.
|
||||||
func RemoveEntry(id int64) {
|
func RemoveEntry(id int64) {
|
||||||
db.get().removeEntry(id)
|
db.get().removeEntry(id)
|
||||||
@ -333,7 +333,7 @@ func (c *channelMap) addServer(id int64, s *server) {
|
|||||||
c.mu.Unlock()
|
c.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *channelMap) addChannel(id int64, cn *channel, isTopChannel bool, pid int64, ref string) {
|
func (c *channelMap) addChannel(id int64, cn *channel, isTopChannel bool, pid int64) {
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
cn.cm = c
|
cn.cm = c
|
||||||
cn.trace.cm = c
|
cn.trace.cm = c
|
||||||
@ -346,7 +346,7 @@ func (c *channelMap) addChannel(id int64, cn *channel, isTopChannel bool, pid in
|
|||||||
c.mu.Unlock()
|
c.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *channelMap) addSubChannel(id int64, sc *subChannel, pid int64, ref string) {
|
func (c *channelMap) addSubChannel(id int64, sc *subChannel, pid int64) {
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
sc.cm = c
|
sc.cm = c
|
||||||
sc.trace.cm = c
|
sc.trace.cm = c
|
||||||
@ -355,7 +355,7 @@ func (c *channelMap) addSubChannel(id int64, sc *subChannel, pid int64, ref stri
|
|||||||
c.mu.Unlock()
|
c.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *channelMap) addListenSocket(id int64, ls *listenSocket, pid int64, ref string) {
|
func (c *channelMap) addListenSocket(id int64, ls *listenSocket, pid int64) {
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
ls.cm = c
|
ls.cm = c
|
||||||
c.listenSockets[id] = ls
|
c.listenSockets[id] = ls
|
||||||
@ -363,7 +363,7 @@ func (c *channelMap) addListenSocket(id int64, ls *listenSocket, pid int64, ref
|
|||||||
c.mu.Unlock()
|
c.mu.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *channelMap) addNormalSocket(id int64, ns *normalSocket, pid int64, ref string) {
|
func (c *channelMap) addNormalSocket(id int64, ns *normalSocket, pid int64) {
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
ns.cm = c
|
ns.cm = c
|
||||||
c.normalSockets[id] = ns
|
c.normalSockets[id] = ns
|
||||||
@ -630,7 +630,7 @@ func (c *channelMap) GetServerSockets(id int64, startID int64, maxResults int64)
|
|||||||
if count == 0 {
|
if count == 0 {
|
||||||
end = true
|
end = true
|
||||||
}
|
}
|
||||||
var s []*SocketMetric
|
s := make([]*SocketMetric, 0, len(sks))
|
||||||
for _, ns := range sks {
|
for _, ns := range sks {
|
||||||
sm := &SocketMetric{}
|
sm := &SocketMetric{}
|
||||||
sm.SocketData = ns.s.ChannelzMetric()
|
sm.SocketData = ns.s.ChannelzMetric()
|
||||||
|
2
vendor/google.golang.org/grpc/internal/channelz/types_linux.go
generated
vendored
2
vendor/google.golang.org/grpc/internal/channelz/types_linux.go
generated
vendored
@ -1,5 +1,3 @@
|
|||||||
// +build !appengine
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Copyright 2018 gRPC authors.
|
* Copyright 2018 gRPC authors.
|
||||||
|
5
vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go
generated
vendored
5
vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go
generated
vendored
@ -1,4 +1,5 @@
|
|||||||
// +build !linux appengine
|
//go:build !linux
|
||||||
|
// +build !linux
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
@ -37,6 +38,6 @@ type SocketOptionData struct {
|
|||||||
// Windows OS doesn't support Socket Option
|
// Windows OS doesn't support Socket Option
|
||||||
func (s *SocketOptionData) Getsockopt(fd uintptr) {
|
func (s *SocketOptionData) Getsockopt(fd uintptr) {
|
||||||
once.Do(func() {
|
once.Do(func() {
|
||||||
logger.Warning("Channelz: socket options are not supported on non-linux os and appengine.")
|
logger.Warning("Channelz: socket options are not supported on non-linux environments")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
2
vendor/google.golang.org/grpc/internal/channelz/util_linux.go
generated
vendored
2
vendor/google.golang.org/grpc/internal/channelz/util_linux.go
generated
vendored
@ -1,5 +1,3 @@
|
|||||||
// +build linux,!appengine
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Copyright 2018 gRPC authors.
|
* Copyright 2018 gRPC authors.
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user