mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-09 16:00:22 +00:00
vendor: use github.com/prometheus/common v0.47.0
By using a newer prometheus/common package, there are undefined references which cause the following golangci-lint error: > Running error: can't run linter goanalysis_metalinter\ninspect: failed > to load package util: could not load export data: no export data for > \"k8s.io/kubernetes/pkg/controller/deployment/util\" Signed-off-by: Niels de Vos <ndevos@ibm.com>
This commit is contained in:
parent
34228c6d0b
commit
d9c8a2abc7
15
go.mod
15
go.mod
@ -134,8 +134,8 @@ require (
|
|||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||||
github.com/prometheus/client_model v0.5.0 // indirect
|
github.com/prometheus/client_model v0.6.1 // indirect
|
||||||
github.com/prometheus/common v0.48.0 // indirect
|
github.com/prometheus/common v0.55.0 // indirect
|
||||||
github.com/prometheus/procfs v0.12.0 // indirect
|
github.com/prometheus/procfs v0.12.0 // indirect
|
||||||
github.com/ryanuber/go-glob v1.0.0 // indirect
|
github.com/ryanuber/go-glob v1.0.0 // indirect
|
||||||
github.com/sirupsen/logrus v1.9.0 // indirect
|
github.com/sirupsen/logrus v1.9.0 // indirect
|
||||||
@ -157,14 +157,13 @@ require (
|
|||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.26.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20220827204233-334a2380cb91 // indirect
|
golang.org/x/exp v0.0.0-20220827204233-334a2380cb91 // indirect
|
||||||
golang.org/x/oauth2 v0.18.0 // indirect
|
golang.org/x/oauth2 v0.19.0 // indirect
|
||||||
golang.org/x/sync v0.7.0 // indirect
|
golang.org/x/sync v0.7.0 // indirect
|
||||||
golang.org/x/term v0.21.0 // indirect
|
golang.org/x/term v0.21.0 // indirect
|
||||||
golang.org/x/text v0.16.0 // indirect
|
golang.org/x/text v0.16.0 // indirect
|
||||||
golang.org/x/time v0.3.0 // indirect
|
golang.org/x/time v0.3.0 // indirect
|
||||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
|
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
|
||||||
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
|
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
|
||||||
google.golang.org/appengine v1.6.8 // indirect
|
|
||||||
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
|
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect
|
||||||
@ -193,7 +192,15 @@ replace (
|
|||||||
|
|
||||||
// Required for kubernetes 1.26
|
// Required for kubernetes 1.26
|
||||||
github.com/portworx/sched-ops => github.com/portworx/sched-ops v0.20.4-openstorage-rc3
|
github.com/portworx/sched-ops => github.com/portworx/sched-ops v0.20.4-openstorage-rc3
|
||||||
|
|
||||||
|
// k8s.io/component-base/metrics/testutil depends on v0.47
|
||||||
|
// client_golang v1.18.0 is the last version compatible with common v0.47
|
||||||
|
github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.18.0
|
||||||
|
github.com/prometheus/common => github.com/prometheus/common v0.47.0
|
||||||
|
|
||||||
|
// FIXME: why is this required?
|
||||||
gomodules.xyz/jsonpatch/v2 => github.com/gomodules/jsonpatch/v2 v2.2.0
|
gomodules.xyz/jsonpatch/v2 => github.com/gomodules/jsonpatch/v2 v2.2.0
|
||||||
|
|
||||||
//
|
//
|
||||||
// k8s.io/kubernetes depends on these k8s.io packages, but unversioned
|
// k8s.io/kubernetes depends on these k8s.io packages, but unversioned
|
||||||
//
|
//
|
||||||
|
89
go.sum
89
go.sum
@ -801,13 +801,7 @@ github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm
|
|||||||
github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk=
|
github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk=
|
||||||
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/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM=
|
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM=
|
||||||
github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE=
|
github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE=
|
||||||
github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE=
|
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
|
||||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
|
||||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
|
||||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
|
||||||
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
|
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
|
||||||
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
||||||
github.com/ansel1/merry v1.5.0/go.mod h1:wUy/yW0JX0ix9GYvUbciq+bi3jW/vlKPlbpI7qdZpOw=
|
github.com/ansel1/merry v1.5.0/go.mod h1:wUy/yW0JX0ix9GYvUbciq+bi3jW/vlKPlbpI7qdZpOw=
|
||||||
@ -852,7 +846,6 @@ github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
|
|||||||
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
|
||||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
||||||
@ -875,7 +868,6 @@ github.com/ceph/go-ceph v0.28.0 h1:ZjlDV9XiVmBQIe9bKbT5j2Ft/bse3Jm+Ui65yE/oFFU=
|
|||||||
github.com/ceph/go-ceph v0.28.0/go.mod h1:EwEITEDpuFCMnFrPLbV+/Vyi59jUihgCxBKvlTWGot0=
|
github.com/ceph/go-ceph v0.28.0/go.mod h1:EwEITEDpuFCMnFrPLbV+/Vyi59jUihgCxBKvlTWGot0=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
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/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
@ -925,7 +917,6 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
|||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
|
||||||
github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0=
|
github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0=
|
||||||
github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
|
github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
|
||||||
github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
||||||
@ -1002,14 +993,11 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2
|
|||||||
github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8=
|
github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8=
|
||||||
github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U=
|
github.com/go-jose/go-jose/v4 v4.0.1 h1:QVEPDE3OluqXBQZDcnNvQrInro2h0e4eqNbnZSWqS6U=
|
||||||
github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY=
|
github.com/go-jose/go-jose/v4 v4.0.1/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY=
|
||||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
|
||||||
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||||
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
|
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
|
||||||
github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
|
|
||||||
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
|
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
|
||||||
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
|
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
|
||||||
github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk=
|
github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk=
|
||||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
|
||||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||||
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
|
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
|
||||||
@ -1300,14 +1288,12 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF
|
|||||||
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
|
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
|
||||||
github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
|
||||||
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
|
||||||
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
|
||||||
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
||||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
||||||
@ -1377,6 +1363,7 @@ github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4
|
|||||||
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
||||||
|
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
|
||||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
|
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
|
||||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||||
@ -1411,7 +1398,6 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwd
|
|||||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||||
@ -1419,7 +1405,6 @@ github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uY
|
|||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
||||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||||
@ -1490,7 +1475,6 @@ github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFu
|
|||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
|
||||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
@ -1511,52 +1495,23 @@ github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQ
|
|||||||
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.44.1/go.mod h1:3WYi4xqXxGGXWDdQIITnLNmuDzO5n6wYva9spVhR4fg=
|
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.44.1/go.mod h1:3WYi4xqXxGGXWDdQIITnLNmuDzO5n6wYva9spVhR4fg=
|
||||||
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.46.0/go.mod h1:3WYi4xqXxGGXWDdQIITnLNmuDzO5n6wYva9spVhR4fg=
|
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.46.0/go.mod h1:3WYi4xqXxGGXWDdQIITnLNmuDzO5n6wYva9spVhR4fg=
|
||||||
github.com/prometheus-operator/prometheus-operator/pkg/client v0.46.0/go.mod h1:k4BrWlVQQsvBiTcDnKEMgyh/euRxyxgrHdur/ZX/sdA=
|
github.com/prometheus-operator/prometheus-operator/pkg/client v0.46.0/go.mod h1:k4BrWlVQQsvBiTcDnKEMgyh/euRxyxgrHdur/ZX/sdA=
|
||||||
github.com/prometheus/client_golang v0.9.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
|
||||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
|
||||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
|
||||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
|
||||||
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
|
||||||
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
|
||||||
github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
|
||||||
github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
|
|
||||||
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
|
|
||||||
github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk=
|
|
||||||
github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
|
|
||||||
github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
|
|
||||||
github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
|
|
||||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
|
github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
|
||||||
github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
|
github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
|
||||||
github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
|
|
||||||
github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
|
github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
|
||||||
github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
|
||||||
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
|
||||||
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k=
|
||||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc=
|
||||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
|
||||||
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
|
|
||||||
github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
|
|
||||||
github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
|
|
||||||
github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
|
|
||||||
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
|
|
||||||
github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE=
|
|
||||||
github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc=
|
|
||||||
github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
|
||||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
|
||||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
|
||||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
|
||||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||||
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
|
||||||
github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
|
|
||||||
github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
|
|
||||||
github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
|
github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
|
||||||
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
|
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
|
||||||
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
|
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
|
||||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||||
@ -1579,7 +1534,6 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB
|
|||||||
github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
|
github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
|
||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.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/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||||
@ -1633,7 +1587,6 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1
|
|||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk=
|
||||||
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
|
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
|
||||||
github.com/xhit/go-str2duration v1.2.0/go.mod h1:3cPSlfZlUHVlneIVfePFWcJZsuwf+P1v2SRTV4cUmp4=
|
|
||||||
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
|
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
@ -1733,7 +1686,6 @@ go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
|||||||
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||||
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||||
golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
|
||||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
@ -1758,6 +1710,7 @@ golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98y
|
|||||||
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
||||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||||
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
||||||
|
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
|
||||||
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
|
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
|
||||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||||
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
|
golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
|
||||||
@ -1835,7 +1788,6 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -1845,7 +1797,6 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
|
|||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -1877,7 +1828,6 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd
|
|||||||
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-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
||||||
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
|
||||||
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
@ -1911,6 +1861,7 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
|
|||||||
golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||||
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
|
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
|
||||||
|
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
|
||||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||||
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
|
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
|
||||||
@ -1947,8 +1898,10 @@ golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw
|
|||||||
golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
|
golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
|
||||||
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
|
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
|
||||||
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
|
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
|
||||||
golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI=
|
golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4=
|
||||||
golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8=
|
golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o=
|
||||||
|
golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg=
|
||||||
|
golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
@ -1974,11 +1927,9 @@ golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
|||||||
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -1997,7 +1948,6 @@ golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -2011,8 +1961,6 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -2034,7 +1982,6 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/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-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
@ -2049,7 +1996,6 @@ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||||||
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
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=
|
||||||
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
@ -2084,6 +2030,7 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|||||||
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
|
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
|
||||||
@ -2106,6 +2053,7 @@ golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
|
|||||||
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
|
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
|
||||||
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
|
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
|
||||||
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
|
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
|
||||||
|
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
|
||||||
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
||||||
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
|
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
|
||||||
golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
|
golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
|
||||||
@ -2316,8 +2264,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww
|
|||||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||||
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||||
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/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
|
|
||||||
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
|
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||||
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||||
@ -2557,10 +2503,10 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
|
|||||||
google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
|
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
|
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
|
||||||
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
|
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
@ -2587,7 +2533,6 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.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.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
2
vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go
generated
vendored
2
vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go
generated
vendored
@ -68,7 +68,7 @@ func (l *Linter) Lint() ([]Problem, error) {
|
|||||||
var problems []Problem
|
var problems []Problem
|
||||||
|
|
||||||
if l.r != nil {
|
if l.r != nil {
|
||||||
d := expfmt.NewDecoder(l.r, expfmt.NewFormat(expfmt.TypeTextPlain))
|
d := expfmt.NewDecoder(l.r, expfmt.FmtText)
|
||||||
|
|
||||||
mf := &dto.MetricFamily{}
|
mf := &dto.MetricFamily{}
|
||||||
for {
|
for {
|
||||||
|
4
vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go
generated
vendored
4
vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go
generated
vendored
@ -265,13 +265,13 @@ func compareMetricFamilies(got, expected []*dto.MetricFamily, metricNames ...str
|
|||||||
// result.
|
// result.
|
||||||
func compare(got, want []*dto.MetricFamily) error {
|
func compare(got, want []*dto.MetricFamily) error {
|
||||||
var gotBuf, wantBuf bytes.Buffer
|
var gotBuf, wantBuf bytes.Buffer
|
||||||
enc := expfmt.NewEncoder(&gotBuf, expfmt.NewFormat(expfmt.TypeTextPlain))
|
enc := expfmt.NewEncoder(&gotBuf, expfmt.FmtText)
|
||||||
for _, mf := range got {
|
for _, mf := range got {
|
||||||
if err := enc.Encode(mf); err != nil {
|
if err := enc.Encode(mf); err != nil {
|
||||||
return fmt.Errorf("encoding gathered metrics failed: %w", err)
|
return fmt.Errorf("encoding gathered metrics failed: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
enc = expfmt.NewEncoder(&wantBuf, expfmt.NewFormat(expfmt.TypeTextPlain))
|
enc = expfmt.NewEncoder(&wantBuf, expfmt.FmtText)
|
||||||
for _, mf := range want {
|
for _, mf := range want {
|
||||||
if err := enc.Encode(mf); err != nil {
|
if err := enc.Encode(mf); err != nil {
|
||||||
return fmt.Errorf("encoding expected metrics failed: %w", err)
|
return fmt.Errorf("encoding expected metrics failed: %w", err)
|
||||||
|
195
vendor/github.com/prometheus/client_model/go/metrics.pb.go
generated
vendored
195
vendor/github.com/prometheus/client_model/go/metrics.pb.go
generated
vendored
@ -483,6 +483,8 @@ type Histogram struct {
|
|||||||
// histograms.
|
// histograms.
|
||||||
PositiveDelta []int64 `protobuf:"zigzag64,13,rep,name=positive_delta,json=positiveDelta" json:"positive_delta,omitempty"` // Count delta of each bucket compared to previous one (or to zero for 1st bucket).
|
PositiveDelta []int64 `protobuf:"zigzag64,13,rep,name=positive_delta,json=positiveDelta" json:"positive_delta,omitempty"` // Count delta of each bucket compared to previous one (or to zero for 1st bucket).
|
||||||
PositiveCount []float64 `protobuf:"fixed64,14,rep,name=positive_count,json=positiveCount" json:"positive_count,omitempty"` // Absolute count of each bucket.
|
PositiveCount []float64 `protobuf:"fixed64,14,rep,name=positive_count,json=positiveCount" json:"positive_count,omitempty"` // Absolute count of each bucket.
|
||||||
|
// Only used for native histograms. These exemplars MUST have a timestamp.
|
||||||
|
Exemplars []*Exemplar `protobuf:"bytes,16,rep,name=exemplars" json:"exemplars,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Histogram) Reset() {
|
func (x *Histogram) Reset() {
|
||||||
@ -622,6 +624,13 @@ func (x *Histogram) GetPositiveCount() []float64 {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Histogram) GetExemplars() []*Exemplar {
|
||||||
|
if x != nil {
|
||||||
|
return x.Exemplars
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// A Bucket of a conventional histogram, each of which is treated as
|
// A Bucket of a conventional histogram, each of which is treated as
|
||||||
// an individual counter-like time series by Prometheus.
|
// an individual counter-like time series by Prometheus.
|
||||||
type Bucket struct {
|
type Bucket struct {
|
||||||
@ -923,6 +932,7 @@ type MetricFamily struct {
|
|||||||
Help *string `protobuf:"bytes,2,opt,name=help" json:"help,omitempty"`
|
Help *string `protobuf:"bytes,2,opt,name=help" json:"help,omitempty"`
|
||||||
Type *MetricType `protobuf:"varint,3,opt,name=type,enum=io.prometheus.client.MetricType" json:"type,omitempty"`
|
Type *MetricType `protobuf:"varint,3,opt,name=type,enum=io.prometheus.client.MetricType" json:"type,omitempty"`
|
||||||
Metric []*Metric `protobuf:"bytes,4,rep,name=metric" json:"metric,omitempty"`
|
Metric []*Metric `protobuf:"bytes,4,rep,name=metric" json:"metric,omitempty"`
|
||||||
|
Unit *string `protobuf:"bytes,5,opt,name=unit" json:"unit,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *MetricFamily) Reset() {
|
func (x *MetricFamily) Reset() {
|
||||||
@ -985,6 +995,13 @@ func (x *MetricFamily) GetMetric() []*Metric {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *MetricFamily) GetUnit() string {
|
||||||
|
if x != nil && x.Unit != nil {
|
||||||
|
return *x.Unit
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
var File_io_prometheus_client_metrics_proto protoreflect.FileDescriptor
|
var File_io_prometheus_client_metrics_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_io_prometheus_client_metrics_proto_rawDesc = []byte{
|
var file_io_prometheus_client_metrics_proto_rawDesc = []byte{
|
||||||
@ -1028,7 +1045,7 @@ var file_io_prometheus_client_metrics_proto_rawDesc = []byte{
|
|||||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
|
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
|
||||||
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x1f, 0x0a, 0x07, 0x55, 0x6e, 0x74,
|
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x1f, 0x0a, 0x07, 0x55, 0x6e, 0x74,
|
||||||
0x79, 0x70, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20,
|
0x79, 0x70, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20,
|
||||||
0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xac, 0x05, 0x0a, 0x09, 0x48,
|
0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xea, 0x05, 0x0a, 0x09, 0x48,
|
||||||
0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x61, 0x6d, 0x70,
|
0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x61, 0x6d, 0x70,
|
||||||
0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b,
|
0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b,
|
||||||
0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73,
|
0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73,
|
||||||
@ -1071,79 +1088,84 @@ var file_io_prometheus_client_metrics_proto_rawDesc = []byte{
|
|||||||
0x03, 0x28, 0x12, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c,
|
0x03, 0x28, 0x12, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c,
|
||||||
0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63,
|
0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63,
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69,
|
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69,
|
||||||
0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x42, 0x75,
|
0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x65, 0x78, 0x65,
|
||||||
0x63, 0x6b, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69,
|
0x6d, 0x70, 0x6c, 0x61, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69,
|
||||||
0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f,
|
0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69,
|
||||||
0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
|
0x65, 0x6e, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x09, 0x65, 0x78,
|
||||||
0x34, 0x0a, 0x16, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f,
|
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x42, 0x75, 0x63, 0x6b,
|
||||||
0x75, 0x6e, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52,
|
0x65, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65,
|
||||||
0x14, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x75,
|
||||||
0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62,
|
0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a,
|
||||||
0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65,
|
0x16, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
|
||||||
0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c,
|
0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x63,
|
||||||
0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72,
|
0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x6c,
|
||||||
0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e,
|
0x6f, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75,
|
||||||
0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c,
|
0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42,
|
||||||
0x61, 0x72, 0x22, 0x3c, 0x0a, 0x0a, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x61, 0x6e,
|
0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72,
|
||||||
0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11,
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d,
|
||||||
0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67,
|
0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x78,
|
||||||
0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,
|
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72,
|
||||||
0x22, 0x91, 0x01, 0x0a, 0x08, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x12, 0x35, 0x0a,
|
0x22, 0x3c, 0x0a, 0x0a, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x16,
|
||||||
|
0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06,
|
||||||
|
0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,
|
||||||
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91,
|
||||||
|
0x01, 0x0a, 0x08, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x6c,
|
||||||
|
0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e,
|
||||||
|
0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
|
||||||
|
0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x62,
|
||||||
|
0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
|
0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65,
|
||||||
|
0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
||||||
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
|
||||||
|
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
|
||||||
|
0x6d, 0x70, 0x22, 0xff, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x35, 0x0a,
|
||||||
0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69,
|
0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69,
|
||||||
0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69,
|
0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69,
|
||||||
0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x6c,
|
0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x6c,
|
||||||
0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
|
0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x18, 0x02, 0x20,
|
||||||
0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69,
|
0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68,
|
||||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
|
0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x61, 0x75, 0x67, 0x65,
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
0x52, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||||
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
|
0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72,
|
||||||
0x74, 0x61, 0x6d, 0x70, 0x22, 0xff, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12,
|
0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e,
|
||||||
0x35, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f,
|
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
|
||||||
0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63,
|
0x12, 0x37, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||||
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52,
|
0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75,
|
||||||
0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x18,
|
0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
|
||||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65,
|
0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x75, 0x6e, 0x74,
|
||||||
0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x61, 0x75,
|
0x79, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e,
|
||||||
0x67, 0x65, 0x52, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x75,
|
|
||||||
0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e,
|
|
||||||
0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
|
0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
|
||||||
0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
0x74, 0x2e, 0x55, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x52, 0x07, 0x75, 0x6e, 0x74, 0x79, 0x70,
|
||||||
0x65, 0x72, 0x12, 0x37, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20,
|
0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68,
|
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65,
|
||||||
0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61,
|
0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x69, 0x73,
|
||||||
0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x75,
|
0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
|
||||||
0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69,
|
0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d,
|
||||||
0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69,
|
0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
|
||||||
0x65, 0x6e, 0x74, 0x2e, 0x55, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x52, 0x07, 0x75, 0x6e, 0x74,
|
0x6d, 0x70, 0x4d, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46,
|
||||||
0x79, 0x70, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
|
0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
|
||||||
0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
|
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x6c,
|
||||||
0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x48,
|
0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12, 0x34, 0x0a,
|
||||||
0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67,
|
0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x69, 0x6f,
|
||||||
0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
|
0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65,
|
||||||
0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73,
|
0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74,
|
||||||
0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20,
|
||||||
0x63, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68,
|
0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
||||||
0x65, 0x6c, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12,
|
0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69,
|
||||||
0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e,
|
0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x2a, 0x62, 0x0a,
|
||||||
0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c,
|
0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43,
|
||||||
0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52,
|
0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47,
|
||||||
0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18,
|
0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x02,
|
||||||
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65,
|
0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a,
|
||||||
0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74,
|
0x09, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f,
|
||||||
0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2a, 0x62, 0x0a, 0x0a, 0x4d,
|
0x47, 0x41, 0x55, 0x47, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10,
|
||||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55,
|
0x05, 0x42, 0x52, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65,
|
||||||
0x4e, 0x54, 0x45, 0x52, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10,
|
0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||||
0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x02, 0x12, 0x0b,
|
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73,
|
||||||
0x0a, 0x07, 0x55, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x48,
|
0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x67, 0x6f,
|
||||||
0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x41,
|
0x3b, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x5f, 0x63,
|
||||||
0x55, 0x47, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x05, 0x42,
|
0x6c, 0x69, 0x65, 0x6e, 0x74,
|
||||||
0x52, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73,
|
|
||||||
0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
|
|
||||||
0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2f, 0x63,
|
|
||||||
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x67, 0x6f, 0x3b, 0x69,
|
|
||||||
0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x5f, 0x63, 0x6c, 0x69,
|
|
||||||
0x65, 0x6e, 0x74,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -1185,22 +1207,23 @@ var file_io_prometheus_client_metrics_proto_depIdxs = []int32{
|
|||||||
13, // 5: io.prometheus.client.Histogram.created_timestamp:type_name -> google.protobuf.Timestamp
|
13, // 5: io.prometheus.client.Histogram.created_timestamp:type_name -> google.protobuf.Timestamp
|
||||||
9, // 6: io.prometheus.client.Histogram.negative_span:type_name -> io.prometheus.client.BucketSpan
|
9, // 6: io.prometheus.client.Histogram.negative_span:type_name -> io.prometheus.client.BucketSpan
|
||||||
9, // 7: io.prometheus.client.Histogram.positive_span:type_name -> io.prometheus.client.BucketSpan
|
9, // 7: io.prometheus.client.Histogram.positive_span:type_name -> io.prometheus.client.BucketSpan
|
||||||
10, // 8: io.prometheus.client.Bucket.exemplar:type_name -> io.prometheus.client.Exemplar
|
10, // 8: io.prometheus.client.Histogram.exemplars:type_name -> io.prometheus.client.Exemplar
|
||||||
1, // 9: io.prometheus.client.Exemplar.label:type_name -> io.prometheus.client.LabelPair
|
10, // 9: io.prometheus.client.Bucket.exemplar:type_name -> io.prometheus.client.Exemplar
|
||||||
13, // 10: io.prometheus.client.Exemplar.timestamp:type_name -> google.protobuf.Timestamp
|
1, // 10: io.prometheus.client.Exemplar.label:type_name -> io.prometheus.client.LabelPair
|
||||||
1, // 11: io.prometheus.client.Metric.label:type_name -> io.prometheus.client.LabelPair
|
13, // 11: io.prometheus.client.Exemplar.timestamp:type_name -> google.protobuf.Timestamp
|
||||||
2, // 12: io.prometheus.client.Metric.gauge:type_name -> io.prometheus.client.Gauge
|
1, // 12: io.prometheus.client.Metric.label:type_name -> io.prometheus.client.LabelPair
|
||||||
3, // 13: io.prometheus.client.Metric.counter:type_name -> io.prometheus.client.Counter
|
2, // 13: io.prometheus.client.Metric.gauge:type_name -> io.prometheus.client.Gauge
|
||||||
5, // 14: io.prometheus.client.Metric.summary:type_name -> io.prometheus.client.Summary
|
3, // 14: io.prometheus.client.Metric.counter:type_name -> io.prometheus.client.Counter
|
||||||
6, // 15: io.prometheus.client.Metric.untyped:type_name -> io.prometheus.client.Untyped
|
5, // 15: io.prometheus.client.Metric.summary:type_name -> io.prometheus.client.Summary
|
||||||
7, // 16: io.prometheus.client.Metric.histogram:type_name -> io.prometheus.client.Histogram
|
6, // 16: io.prometheus.client.Metric.untyped:type_name -> io.prometheus.client.Untyped
|
||||||
0, // 17: io.prometheus.client.MetricFamily.type:type_name -> io.prometheus.client.MetricType
|
7, // 17: io.prometheus.client.Metric.histogram:type_name -> io.prometheus.client.Histogram
|
||||||
11, // 18: io.prometheus.client.MetricFamily.metric:type_name -> io.prometheus.client.Metric
|
0, // 18: io.prometheus.client.MetricFamily.type:type_name -> io.prometheus.client.MetricType
|
||||||
19, // [19:19] is the sub-list for method output_type
|
11, // 19: io.prometheus.client.MetricFamily.metric:type_name -> io.prometheus.client.Metric
|
||||||
19, // [19:19] is the sub-list for method input_type
|
20, // [20:20] is the sub-list for method output_type
|
||||||
19, // [19:19] is the sub-list for extension type_name
|
20, // [20:20] is the sub-list for method input_type
|
||||||
19, // [19:19] is the sub-list for extension extendee
|
20, // [20:20] is the sub-list for extension type_name
|
||||||
0, // [0:19] is the sub-list for field type_name
|
20, // [20:20] is the sub-list for extension extendee
|
||||||
|
0, // [0:20] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_io_prometheus_client_metrics_proto_init() }
|
func init() { file_io_prometheus_client_metrics_proto_init() }
|
||||||
|
14
vendor/github.com/prometheus/common/expfmt/decode.go
generated
vendored
14
vendor/github.com/prometheus/common/expfmt/decode.go
generated
vendored
@ -45,7 +45,7 @@ func ResponseFormat(h http.Header) Format {
|
|||||||
|
|
||||||
mediatype, params, err := mime.ParseMediaType(ct)
|
mediatype, params, err := mime.ParseMediaType(ct)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmtUnknown
|
return FmtUnknown
|
||||||
}
|
}
|
||||||
|
|
||||||
const textType = "text/plain"
|
const textType = "text/plain"
|
||||||
@ -53,21 +53,21 @@ func ResponseFormat(h http.Header) Format {
|
|||||||
switch mediatype {
|
switch mediatype {
|
||||||
case ProtoType:
|
case ProtoType:
|
||||||
if p, ok := params["proto"]; ok && p != ProtoProtocol {
|
if p, ok := params["proto"]; ok && p != ProtoProtocol {
|
||||||
return fmtUnknown
|
return FmtUnknown
|
||||||
}
|
}
|
||||||
if e, ok := params["encoding"]; ok && e != "delimited" {
|
if e, ok := params["encoding"]; ok && e != "delimited" {
|
||||||
return fmtUnknown
|
return FmtUnknown
|
||||||
}
|
}
|
||||||
return fmtProtoDelim
|
return FmtProtoDelim
|
||||||
|
|
||||||
case textType:
|
case textType:
|
||||||
if v, ok := params["version"]; ok && v != TextVersion {
|
if v, ok := params["version"]; ok && v != TextVersion {
|
||||||
return fmtUnknown
|
return FmtUnknown
|
||||||
}
|
}
|
||||||
return fmtText
|
return FmtText
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmtUnknown
|
return FmtUnknown
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDecoder returns a new decoder based on the given input format.
|
// NewDecoder returns a new decoder based on the given input format.
|
||||||
|
24
vendor/github.com/prometheus/common/expfmt/encode.go
generated
vendored
24
vendor/github.com/prometheus/common/expfmt/encode.go
generated
vendored
@ -76,18 +76,18 @@ func Negotiate(h http.Header) Format {
|
|||||||
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
||||||
switch ac.Params["encoding"] {
|
switch ac.Params["encoding"] {
|
||||||
case "delimited":
|
case "delimited":
|
||||||
return fmtProtoDelim + escapingScheme
|
return FmtProtoDelim + escapingScheme
|
||||||
case "text":
|
case "text":
|
||||||
return fmtProtoText + escapingScheme
|
return FmtProtoText + escapingScheme
|
||||||
case "compact-text":
|
case "compact-text":
|
||||||
return fmtProtoCompact + escapingScheme
|
return FmtProtoCompact + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
||||||
return fmtText + escapingScheme
|
return FmtText + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fmtText + escapingScheme
|
return FmtText + escapingScheme
|
||||||
}
|
}
|
||||||
|
|
||||||
// NegotiateIncludingOpenMetrics works like Negotiate but includes
|
// NegotiateIncludingOpenMetrics works like Negotiate but includes
|
||||||
@ -109,26 +109,26 @@ func NegotiateIncludingOpenMetrics(h http.Header) Format {
|
|||||||
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
||||||
switch ac.Params["encoding"] {
|
switch ac.Params["encoding"] {
|
||||||
case "delimited":
|
case "delimited":
|
||||||
return fmtProtoDelim + escapingScheme
|
return FmtProtoDelim + escapingScheme
|
||||||
case "text":
|
case "text":
|
||||||
return fmtProtoText + escapingScheme
|
return FmtProtoText + escapingScheme
|
||||||
case "compact-text":
|
case "compact-text":
|
||||||
return fmtProtoCompact + escapingScheme
|
return FmtProtoCompact + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
||||||
return fmtText + escapingScheme
|
return FmtText + escapingScheme
|
||||||
}
|
}
|
||||||
if ac.Type+"/"+ac.SubType == OpenMetricsType && (ver == OpenMetricsVersion_0_0_1 || ver == OpenMetricsVersion_1_0_0 || ver == "") {
|
if ac.Type+"/"+ac.SubType == OpenMetricsType && (ver == OpenMetricsVersion_0_0_1 || ver == OpenMetricsVersion_1_0_0 || ver == "") {
|
||||||
switch ver {
|
switch ver {
|
||||||
case OpenMetricsVersion_1_0_0:
|
case OpenMetricsVersion_1_0_0:
|
||||||
return fmtOpenMetrics_1_0_0 + escapingScheme
|
return FmtOpenMetrics_1_0_0 + escapingScheme
|
||||||
default:
|
default:
|
||||||
return fmtOpenMetrics_0_0_1 + escapingScheme
|
return FmtOpenMetrics_0_0_1 + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fmtText + escapingScheme
|
return FmtText + escapingScheme
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEncoder returns a new encoder based on content type negotiation. All
|
// NewEncoder returns a new encoder based on content type negotiation. All
|
||||||
|
41
vendor/github.com/prometheus/common/expfmt/expfmt.go
generated
vendored
41
vendor/github.com/prometheus/common/expfmt/expfmt.go
generated
vendored
@ -34,21 +34,20 @@ const (
|
|||||||
TextVersion = "0.0.4"
|
TextVersion = "0.0.4"
|
||||||
ProtoType = `application/vnd.google.protobuf`
|
ProtoType = `application/vnd.google.protobuf`
|
||||||
ProtoProtocol = `io.prometheus.client.MetricFamily`
|
ProtoProtocol = `io.prometheus.client.MetricFamily`
|
||||||
protoFmt = ProtoType + "; proto=" + ProtoProtocol + ";"
|
ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";"
|
||||||
OpenMetricsType = `application/openmetrics-text`
|
OpenMetricsType = `application/openmetrics-text`
|
||||||
OpenMetricsVersion_0_0_1 = "0.0.1"
|
OpenMetricsVersion_0_0_1 = "0.0.1"
|
||||||
OpenMetricsVersion_1_0_0 = "1.0.0"
|
OpenMetricsVersion_1_0_0 = "1.0.0"
|
||||||
|
|
||||||
// The Content-Type values for the different wire protocols. Note that these
|
// The Content-Type values for the different wire protocols. Do not do direct
|
||||||
// values are now unexported. If code was relying on comparisons to these
|
// comparisons to these constants, instead use the comparison functions.
|
||||||
// constants, instead use FormatType().
|
FmtUnknown Format = `<unknown>`
|
||||||
fmtUnknown Format = `<unknown>`
|
FmtText Format = `text/plain; version=` + TextVersion + `; charset=utf-8`
|
||||||
fmtText Format = `text/plain; version=` + TextVersion + `; charset=utf-8`
|
FmtProtoDelim Format = ProtoFmt + ` encoding=delimited`
|
||||||
fmtProtoDelim Format = protoFmt + ` encoding=delimited`
|
FmtProtoText Format = ProtoFmt + ` encoding=text`
|
||||||
fmtProtoText Format = protoFmt + ` encoding=text`
|
FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text`
|
||||||
fmtProtoCompact Format = protoFmt + ` encoding=compact-text`
|
FmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8`
|
||||||
fmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8`
|
FmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8`
|
||||||
fmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8`
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -71,26 +70,6 @@ const (
|
|||||||
TypeOpenMetrics
|
TypeOpenMetrics
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewFormat generates a new Format from the type provided. Mostly used for
|
|
||||||
// tests, most Formats should be generated as part of content negotiation in
|
|
||||||
// encode.go.
|
|
||||||
func NewFormat(t FormatType) Format {
|
|
||||||
switch t {
|
|
||||||
case TypeProtoCompact:
|
|
||||||
return fmtProtoCompact
|
|
||||||
case TypeProtoDelim:
|
|
||||||
return fmtProtoDelim
|
|
||||||
case TypeProtoText:
|
|
||||||
return fmtProtoText
|
|
||||||
case TypeTextPlain:
|
|
||||||
return fmtText
|
|
||||||
case TypeOpenMetrics:
|
|
||||||
return fmtOpenMetrics_1_0_0
|
|
||||||
default:
|
|
||||||
return fmtUnknown
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// FormatType deduces an overall FormatType for the given format.
|
// FormatType deduces an overall FormatType for the given format.
|
||||||
func (f Format) FormatType() FormatType {
|
func (f Format) FormatType() FormatType {
|
||||||
toks := strings.Split(string(f), ";")
|
toks := strings.Split(string(f), ";")
|
||||||
|
13
vendor/golang.org/x/oauth2/internal/client_appengine.go
generated
vendored
13
vendor/golang.org/x/oauth2/internal/client_appengine.go
generated
vendored
@ -1,13 +0,0 @@
|
|||||||
// Copyright 2018 The Go Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build appengine
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import "google.golang.org/appengine/urlfetch"
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
appengineClientHook = urlfetch.Client
|
|
||||||
}
|
|
5
vendor/golang.org/x/oauth2/internal/transport.go
generated
vendored
5
vendor/golang.org/x/oauth2/internal/transport.go
generated
vendored
@ -18,16 +18,11 @@ var HTTPClient ContextKey
|
|||||||
// because nobody else can create a ContextKey, being unexported.
|
// because nobody else can create a ContextKey, being unexported.
|
||||||
type ContextKey struct{}
|
type ContextKey struct{}
|
||||||
|
|
||||||
var appengineClientHook func(context.Context) *http.Client
|
|
||||||
|
|
||||||
func ContextClient(ctx context.Context) *http.Client {
|
func ContextClient(ctx context.Context) *http.Client {
|
||||||
if ctx != nil {
|
if ctx != nil {
|
||||||
if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok {
|
if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok {
|
||||||
return hc
|
return hc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if appengineClientHook != nil {
|
|
||||||
return appengineClientHook(ctx)
|
|
||||||
}
|
|
||||||
return http.DefaultClient
|
return http.DefaultClient
|
||||||
}
|
}
|
||||||
|
202
vendor/google.golang.org/appengine/LICENSE
generated
vendored
202
vendor/google.golang.org/appengine/LICENSE
generated
vendored
@ -1,202 +0,0 @@
|
|||||||
|
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
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.
|
|
653
vendor/google.golang.org/appengine/internal/api.go
generated
vendored
653
vendor/google.golang.org/appengine/internal/api.go
generated
vendored
@ -1,653 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build !appengine
|
|
||||||
// +build !appengine
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"log"
|
|
||||||
"net"
|
|
||||||
"net/http"
|
|
||||||
"net/url"
|
|
||||||
"os"
|
|
||||||
"runtime"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
"sync"
|
|
||||||
"sync/atomic"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
|
|
||||||
basepb "google.golang.org/appengine/internal/base"
|
|
||||||
logpb "google.golang.org/appengine/internal/log"
|
|
||||||
remotepb "google.golang.org/appengine/internal/remote_api"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
apiPath = "/rpc_http"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// Incoming headers.
|
|
||||||
ticketHeader = http.CanonicalHeaderKey("X-AppEngine-API-Ticket")
|
|
||||||
dapperHeader = http.CanonicalHeaderKey("X-Google-DapperTraceInfo")
|
|
||||||
traceHeader = http.CanonicalHeaderKey("X-Cloud-Trace-Context")
|
|
||||||
curNamespaceHeader = http.CanonicalHeaderKey("X-AppEngine-Current-Namespace")
|
|
||||||
userIPHeader = http.CanonicalHeaderKey("X-AppEngine-User-IP")
|
|
||||||
remoteAddrHeader = http.CanonicalHeaderKey("X-AppEngine-Remote-Addr")
|
|
||||||
devRequestIdHeader = http.CanonicalHeaderKey("X-Appengine-Dev-Request-Id")
|
|
||||||
|
|
||||||
// Outgoing headers.
|
|
||||||
apiEndpointHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Endpoint")
|
|
||||||
apiEndpointHeaderValue = []string{"app-engine-apis"}
|
|
||||||
apiMethodHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Method")
|
|
||||||
apiMethodHeaderValue = []string{"/VMRemoteAPI.CallRemoteAPI"}
|
|
||||||
apiDeadlineHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Deadline")
|
|
||||||
apiContentType = http.CanonicalHeaderKey("Content-Type")
|
|
||||||
apiContentTypeValue = []string{"application/octet-stream"}
|
|
||||||
logFlushHeader = http.CanonicalHeaderKey("X-AppEngine-Log-Flush-Count")
|
|
||||||
|
|
||||||
apiHTTPClient = &http.Client{
|
|
||||||
Transport: &http.Transport{
|
|
||||||
Proxy: http.ProxyFromEnvironment,
|
|
||||||
Dial: limitDial,
|
|
||||||
MaxIdleConns: 1000,
|
|
||||||
MaxIdleConnsPerHost: 10000,
|
|
||||||
IdleConnTimeout: 90 * time.Second,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func apiURL(ctx context.Context) *url.URL {
|
|
||||||
host, port := "appengine.googleapis.internal", "10001"
|
|
||||||
if h := os.Getenv("API_HOST"); h != "" {
|
|
||||||
host = h
|
|
||||||
}
|
|
||||||
if hostOverride := ctx.Value(apiHostOverrideKey); hostOverride != nil {
|
|
||||||
host = hostOverride.(string)
|
|
||||||
}
|
|
||||||
if p := os.Getenv("API_PORT"); p != "" {
|
|
||||||
port = p
|
|
||||||
}
|
|
||||||
if portOverride := ctx.Value(apiPortOverrideKey); portOverride != nil {
|
|
||||||
port = portOverride.(string)
|
|
||||||
}
|
|
||||||
return &url.URL{
|
|
||||||
Scheme: "http",
|
|
||||||
Host: host + ":" + port,
|
|
||||||
Path: apiPath,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Middleware wraps an http handler so that it can make GAE API calls
|
|
||||||
func Middleware(next http.Handler) http.Handler {
|
|
||||||
return handleHTTPMiddleware(executeRequestSafelyMiddleware(next))
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleHTTPMiddleware(next http.Handler) http.Handler {
|
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
c := &aeContext{
|
|
||||||
req: r,
|
|
||||||
outHeader: w.Header(),
|
|
||||||
}
|
|
||||||
r = r.WithContext(withContext(r.Context(), c))
|
|
||||||
c.req = r
|
|
||||||
|
|
||||||
stopFlushing := make(chan int)
|
|
||||||
|
|
||||||
// Patch up RemoteAddr so it looks reasonable.
|
|
||||||
if addr := r.Header.Get(userIPHeader); addr != "" {
|
|
||||||
r.RemoteAddr = addr
|
|
||||||
} else if addr = r.Header.Get(remoteAddrHeader); addr != "" {
|
|
||||||
r.RemoteAddr = addr
|
|
||||||
} else {
|
|
||||||
// Should not normally reach here, but pick a sensible default anyway.
|
|
||||||
r.RemoteAddr = "127.0.0.1"
|
|
||||||
}
|
|
||||||
// The address in the headers will most likely be of these forms:
|
|
||||||
// 123.123.123.123
|
|
||||||
// 2001:db8::1
|
|
||||||
// net/http.Request.RemoteAddr is specified to be in "IP:port" form.
|
|
||||||
if _, _, err := net.SplitHostPort(r.RemoteAddr); err != nil {
|
|
||||||
// Assume the remote address is only a host; add a default port.
|
|
||||||
r.RemoteAddr = net.JoinHostPort(r.RemoteAddr, "80")
|
|
||||||
}
|
|
||||||
|
|
||||||
if logToLogservice() {
|
|
||||||
// Start goroutine responsible for flushing app logs.
|
|
||||||
// This is done after adding c to ctx.m (and stopped before removing it)
|
|
||||||
// because flushing logs requires making an API call.
|
|
||||||
go c.logFlusher(stopFlushing)
|
|
||||||
}
|
|
||||||
|
|
||||||
next.ServeHTTP(c, r)
|
|
||||||
c.outHeader = nil // make sure header changes aren't respected any more
|
|
||||||
|
|
||||||
flushed := make(chan struct{})
|
|
||||||
if logToLogservice() {
|
|
||||||
stopFlushing <- 1 // any logging beyond this point will be dropped
|
|
||||||
|
|
||||||
// Flush any pending logs asynchronously.
|
|
||||||
c.pendingLogs.Lock()
|
|
||||||
flushes := c.pendingLogs.flushes
|
|
||||||
if len(c.pendingLogs.lines) > 0 {
|
|
||||||
flushes++
|
|
||||||
}
|
|
||||||
c.pendingLogs.Unlock()
|
|
||||||
go func() {
|
|
||||||
defer close(flushed)
|
|
||||||
// Force a log flush, because with very short requests we
|
|
||||||
// may not ever flush logs.
|
|
||||||
c.flushLog(true)
|
|
||||||
}()
|
|
||||||
w.Header().Set(logFlushHeader, strconv.Itoa(flushes))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Avoid nil Write call if c.Write is never called.
|
|
||||||
if c.outCode != 0 {
|
|
||||||
w.WriteHeader(c.outCode)
|
|
||||||
}
|
|
||||||
if c.outBody != nil {
|
|
||||||
w.Write(c.outBody)
|
|
||||||
}
|
|
||||||
if logToLogservice() {
|
|
||||||
// Wait for the last flush to complete before returning,
|
|
||||||
// otherwise the security ticket will not be valid.
|
|
||||||
<-flushed
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func executeRequestSafelyMiddleware(next http.Handler) http.Handler {
|
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
defer func() {
|
|
||||||
if x := recover(); x != nil {
|
|
||||||
c := w.(*aeContext)
|
|
||||||
logf(c, 4, "%s", renderPanic(x)) // 4 == critical
|
|
||||||
c.outCode = 500
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
next.ServeHTTP(w, r)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func renderPanic(x interface{}) string {
|
|
||||||
buf := make([]byte, 16<<10) // 16 KB should be plenty
|
|
||||||
buf = buf[:runtime.Stack(buf, false)]
|
|
||||||
|
|
||||||
// Remove the first few stack frames:
|
|
||||||
// this func
|
|
||||||
// the recover closure in the caller
|
|
||||||
// That will root the stack trace at the site of the panic.
|
|
||||||
const (
|
|
||||||
skipStart = "internal.renderPanic"
|
|
||||||
skipFrames = 2
|
|
||||||
)
|
|
||||||
start := bytes.Index(buf, []byte(skipStart))
|
|
||||||
p := start
|
|
||||||
for i := 0; i < skipFrames*2 && p+1 < len(buf); i++ {
|
|
||||||
p = bytes.IndexByte(buf[p+1:], '\n') + p + 1
|
|
||||||
if p < 0 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if p >= 0 {
|
|
||||||
// buf[start:p+1] is the block to remove.
|
|
||||||
// Copy buf[p+1:] over buf[start:] and shrink buf.
|
|
||||||
copy(buf[start:], buf[p+1:])
|
|
||||||
buf = buf[:len(buf)-(p+1-start)]
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add panic heading.
|
|
||||||
head := fmt.Sprintf("panic: %v\n\n", x)
|
|
||||||
if len(head) > len(buf) {
|
|
||||||
// Extremely unlikely to happen.
|
|
||||||
return head
|
|
||||||
}
|
|
||||||
copy(buf[len(head):], buf)
|
|
||||||
copy(buf, head)
|
|
||||||
|
|
||||||
return string(buf)
|
|
||||||
}
|
|
||||||
|
|
||||||
// aeContext represents the aeContext of an in-flight HTTP request.
|
|
||||||
// It implements the appengine.Context and http.ResponseWriter interfaces.
|
|
||||||
type aeContext struct {
|
|
||||||
req *http.Request
|
|
||||||
|
|
||||||
outCode int
|
|
||||||
outHeader http.Header
|
|
||||||
outBody []byte
|
|
||||||
|
|
||||||
pendingLogs struct {
|
|
||||||
sync.Mutex
|
|
||||||
lines []*logpb.UserAppLogLine
|
|
||||||
flushes int
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var contextKey = "holds a *context"
|
|
||||||
|
|
||||||
// jointContext joins two contexts in a superficial way.
|
|
||||||
// It takes values and timeouts from a base context, and only values from another context.
|
|
||||||
type jointContext struct {
|
|
||||||
base context.Context
|
|
||||||
valuesOnly context.Context
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c jointContext) Deadline() (time.Time, bool) {
|
|
||||||
return c.base.Deadline()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c jointContext) Done() <-chan struct{} {
|
|
||||||
return c.base.Done()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c jointContext) Err() error {
|
|
||||||
return c.base.Err()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c jointContext) Value(key interface{}) interface{} {
|
|
||||||
if val := c.base.Value(key); val != nil {
|
|
||||||
return val
|
|
||||||
}
|
|
||||||
return c.valuesOnly.Value(key)
|
|
||||||
}
|
|
||||||
|
|
||||||
// fromContext returns the App Engine context or nil if ctx is not
|
|
||||||
// derived from an App Engine context.
|
|
||||||
func fromContext(ctx context.Context) *aeContext {
|
|
||||||
c, _ := ctx.Value(&contextKey).(*aeContext)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
func withContext(parent context.Context, c *aeContext) context.Context {
|
|
||||||
ctx := context.WithValue(parent, &contextKey, c)
|
|
||||||
if ns := c.req.Header.Get(curNamespaceHeader); ns != "" {
|
|
||||||
ctx = withNamespace(ctx, ns)
|
|
||||||
}
|
|
||||||
return ctx
|
|
||||||
}
|
|
||||||
|
|
||||||
func toContext(c *aeContext) context.Context {
|
|
||||||
return withContext(context.Background(), c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func IncomingHeaders(ctx context.Context) http.Header {
|
|
||||||
if c := fromContext(ctx); c != nil {
|
|
||||||
return c.req.Header
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReqContext(req *http.Request) context.Context {
|
|
||||||
return req.Context()
|
|
||||||
}
|
|
||||||
|
|
||||||
func WithContext(parent context.Context, req *http.Request) context.Context {
|
|
||||||
return jointContext{
|
|
||||||
base: parent,
|
|
||||||
valuesOnly: req.Context(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RegisterTestRequest registers the HTTP request req for testing, such that
|
|
||||||
// any API calls are sent to the provided URL.
|
|
||||||
// It should only be used by aetest package.
|
|
||||||
func RegisterTestRequest(req *http.Request, apiURL *url.URL, appID string) *http.Request {
|
|
||||||
ctx := req.Context()
|
|
||||||
ctx = withAPIHostOverride(ctx, apiURL.Hostname())
|
|
||||||
ctx = withAPIPortOverride(ctx, apiURL.Port())
|
|
||||||
ctx = WithAppIDOverride(ctx, appID)
|
|
||||||
|
|
||||||
// use the unregistered request as a placeholder so that withContext can read the headers
|
|
||||||
c := &aeContext{req: req}
|
|
||||||
c.req = req.WithContext(withContext(ctx, c))
|
|
||||||
return c.req
|
|
||||||
}
|
|
||||||
|
|
||||||
var errTimeout = &CallError{
|
|
||||||
Detail: "Deadline exceeded",
|
|
||||||
Code: int32(remotepb.RpcError_CANCELLED),
|
|
||||||
Timeout: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aeContext) Header() http.Header { return c.outHeader }
|
|
||||||
|
|
||||||
// Copied from $GOROOT/src/pkg/net/http/transfer.go. Some response status
|
|
||||||
// codes do not permit a response body (nor response entity headers such as
|
|
||||||
// Content-Length, Content-Type, etc).
|
|
||||||
func bodyAllowedForStatus(status int) bool {
|
|
||||||
switch {
|
|
||||||
case status >= 100 && status <= 199:
|
|
||||||
return false
|
|
||||||
case status == 204:
|
|
||||||
return false
|
|
||||||
case status == 304:
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aeContext) Write(b []byte) (int, error) {
|
|
||||||
if c.outCode == 0 {
|
|
||||||
c.WriteHeader(http.StatusOK)
|
|
||||||
}
|
|
||||||
if len(b) > 0 && !bodyAllowedForStatus(c.outCode) {
|
|
||||||
return 0, http.ErrBodyNotAllowed
|
|
||||||
}
|
|
||||||
c.outBody = append(c.outBody, b...)
|
|
||||||
return len(b), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aeContext) WriteHeader(code int) {
|
|
||||||
if c.outCode != 0 {
|
|
||||||
logf(c, 3, "WriteHeader called multiple times on request.") // error level
|
|
||||||
return
|
|
||||||
}
|
|
||||||
c.outCode = code
|
|
||||||
}
|
|
||||||
|
|
||||||
func post(ctx context.Context, body []byte, timeout time.Duration) (b []byte, err error) {
|
|
||||||
apiURL := apiURL(ctx)
|
|
||||||
hreq := &http.Request{
|
|
||||||
Method: "POST",
|
|
||||||
URL: apiURL,
|
|
||||||
Header: http.Header{
|
|
||||||
apiEndpointHeader: apiEndpointHeaderValue,
|
|
||||||
apiMethodHeader: apiMethodHeaderValue,
|
|
||||||
apiContentType: apiContentTypeValue,
|
|
||||||
apiDeadlineHeader: []string{strconv.FormatFloat(timeout.Seconds(), 'f', -1, 64)},
|
|
||||||
},
|
|
||||||
Body: ioutil.NopCloser(bytes.NewReader(body)),
|
|
||||||
ContentLength: int64(len(body)),
|
|
||||||
Host: apiURL.Host,
|
|
||||||
}
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c != nil {
|
|
||||||
if info := c.req.Header.Get(dapperHeader); info != "" {
|
|
||||||
hreq.Header.Set(dapperHeader, info)
|
|
||||||
}
|
|
||||||
if info := c.req.Header.Get(traceHeader); info != "" {
|
|
||||||
hreq.Header.Set(traceHeader, info)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tr := apiHTTPClient.Transport.(*http.Transport)
|
|
||||||
|
|
||||||
var timedOut int32 // atomic; set to 1 if timed out
|
|
||||||
t := time.AfterFunc(timeout, func() {
|
|
||||||
atomic.StoreInt32(&timedOut, 1)
|
|
||||||
tr.CancelRequest(hreq)
|
|
||||||
})
|
|
||||||
defer t.Stop()
|
|
||||||
defer func() {
|
|
||||||
// Check if timeout was exceeded.
|
|
||||||
if atomic.LoadInt32(&timedOut) != 0 {
|
|
||||||
err = errTimeout
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
hresp, err := apiHTTPClient.Do(hreq)
|
|
||||||
if err != nil {
|
|
||||||
return nil, &CallError{
|
|
||||||
Detail: fmt.Sprintf("service bridge HTTP failed: %v", err),
|
|
||||||
Code: int32(remotepb.RpcError_UNKNOWN),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
defer hresp.Body.Close()
|
|
||||||
hrespBody, err := ioutil.ReadAll(hresp.Body)
|
|
||||||
if hresp.StatusCode != 200 {
|
|
||||||
return nil, &CallError{
|
|
||||||
Detail: fmt.Sprintf("service bridge returned HTTP %d (%q)", hresp.StatusCode, hrespBody),
|
|
||||||
Code: int32(remotepb.RpcError_UNKNOWN),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
return nil, &CallError{
|
|
||||||
Detail: fmt.Sprintf("service bridge response bad: %v", err),
|
|
||||||
Code: int32(remotepb.RpcError_UNKNOWN),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return hrespBody, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func Call(ctx context.Context, service, method string, in, out proto.Message) error {
|
|
||||||
if ns := NamespaceFromContext(ctx); ns != "" {
|
|
||||||
if fn, ok := NamespaceMods[service]; ok {
|
|
||||||
fn(in, ns)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if f, ctx, ok := callOverrideFromContext(ctx); ok {
|
|
||||||
return f(ctx, service, method, in, out)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle already-done contexts quickly.
|
|
||||||
select {
|
|
||||||
case <-ctx.Done():
|
|
||||||
return ctx.Err()
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
|
|
||||||
c := fromContext(ctx)
|
|
||||||
|
|
||||||
// Apply transaction modifications if we're in a transaction.
|
|
||||||
if t := transactionFromContext(ctx); t != nil {
|
|
||||||
if t.finished {
|
|
||||||
return errors.New("transaction aeContext has expired")
|
|
||||||
}
|
|
||||||
applyTransaction(in, &t.transaction)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Default RPC timeout is 60s.
|
|
||||||
timeout := 60 * time.Second
|
|
||||||
if deadline, ok := ctx.Deadline(); ok {
|
|
||||||
timeout = deadline.Sub(time.Now())
|
|
||||||
}
|
|
||||||
|
|
||||||
data, err := proto.Marshal(in)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
ticket := ""
|
|
||||||
if c != nil {
|
|
||||||
ticket = c.req.Header.Get(ticketHeader)
|
|
||||||
if dri := c.req.Header.Get(devRequestIdHeader); IsDevAppServer() && dri != "" {
|
|
||||||
ticket = dri
|
|
||||||
}
|
|
||||||
}
|
|
||||||
req := &remotepb.Request{
|
|
||||||
ServiceName: &service,
|
|
||||||
Method: &method,
|
|
||||||
Request: data,
|
|
||||||
RequestId: &ticket,
|
|
||||||
}
|
|
||||||
hreqBody, err := proto.Marshal(req)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
hrespBody, err := post(ctx, hreqBody, timeout)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
res := &remotepb.Response{}
|
|
||||||
if err := proto.Unmarshal(hrespBody, res); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if res.RpcError != nil {
|
|
||||||
ce := &CallError{
|
|
||||||
Detail: res.RpcError.GetDetail(),
|
|
||||||
Code: *res.RpcError.Code,
|
|
||||||
}
|
|
||||||
switch remotepb.RpcError_ErrorCode(ce.Code) {
|
|
||||||
case remotepb.RpcError_CANCELLED, remotepb.RpcError_DEADLINE_EXCEEDED:
|
|
||||||
ce.Timeout = true
|
|
||||||
}
|
|
||||||
return ce
|
|
||||||
}
|
|
||||||
if res.ApplicationError != nil {
|
|
||||||
return &APIError{
|
|
||||||
Service: *req.ServiceName,
|
|
||||||
Detail: res.ApplicationError.GetDetail(),
|
|
||||||
Code: *res.ApplicationError.Code,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if res.Exception != nil || res.JavaException != nil {
|
|
||||||
// This shouldn't happen, but let's be defensive.
|
|
||||||
return &CallError{
|
|
||||||
Detail: "service bridge returned exception",
|
|
||||||
Code: int32(remotepb.RpcError_UNKNOWN),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return proto.Unmarshal(res.Response, out)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aeContext) Request() *http.Request {
|
|
||||||
return c.req
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aeContext) addLogLine(ll *logpb.UserAppLogLine) {
|
|
||||||
// Truncate long log lines.
|
|
||||||
// TODO(dsymonds): Check if this is still necessary.
|
|
||||||
const lim = 8 << 10
|
|
||||||
if len(*ll.Message) > lim {
|
|
||||||
suffix := fmt.Sprintf("...(length %d)", len(*ll.Message))
|
|
||||||
ll.Message = proto.String((*ll.Message)[:lim-len(suffix)] + suffix)
|
|
||||||
}
|
|
||||||
|
|
||||||
c.pendingLogs.Lock()
|
|
||||||
c.pendingLogs.lines = append(c.pendingLogs.lines, ll)
|
|
||||||
c.pendingLogs.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
var logLevelName = map[int64]string{
|
|
||||||
0: "DEBUG",
|
|
||||||
1: "INFO",
|
|
||||||
2: "WARNING",
|
|
||||||
3: "ERROR",
|
|
||||||
4: "CRITICAL",
|
|
||||||
}
|
|
||||||
|
|
||||||
func logf(c *aeContext, level int64, format string, args ...interface{}) {
|
|
||||||
if c == nil {
|
|
||||||
panic("not an App Engine aeContext")
|
|
||||||
}
|
|
||||||
s := fmt.Sprintf(format, args...)
|
|
||||||
s = strings.TrimRight(s, "\n") // Remove any trailing newline characters.
|
|
||||||
if logToLogservice() {
|
|
||||||
c.addLogLine(&logpb.UserAppLogLine{
|
|
||||||
TimestampUsec: proto.Int64(time.Now().UnixNano() / 1e3),
|
|
||||||
Level: &level,
|
|
||||||
Message: &s,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// Log to stdout if not deployed
|
|
||||||
if !IsSecondGen() {
|
|
||||||
log.Print(logLevelName[level] + ": " + s)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// flushLog attempts to flush any pending logs to the appserver.
|
|
||||||
// It should not be called concurrently.
|
|
||||||
func (c *aeContext) flushLog(force bool) (flushed bool) {
|
|
||||||
c.pendingLogs.Lock()
|
|
||||||
// Grab up to 30 MB. We can get away with up to 32 MB, but let's be cautious.
|
|
||||||
n, rem := 0, 30<<20
|
|
||||||
for ; n < len(c.pendingLogs.lines); n++ {
|
|
||||||
ll := c.pendingLogs.lines[n]
|
|
||||||
// Each log line will require about 3 bytes of overhead.
|
|
||||||
nb := proto.Size(ll) + 3
|
|
||||||
if nb > rem {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
rem -= nb
|
|
||||||
}
|
|
||||||
lines := c.pendingLogs.lines[:n]
|
|
||||||
c.pendingLogs.lines = c.pendingLogs.lines[n:]
|
|
||||||
c.pendingLogs.Unlock()
|
|
||||||
|
|
||||||
if len(lines) == 0 && !force {
|
|
||||||
// Nothing to flush.
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
rescueLogs := false
|
|
||||||
defer func() {
|
|
||||||
if rescueLogs {
|
|
||||||
c.pendingLogs.Lock()
|
|
||||||
c.pendingLogs.lines = append(lines, c.pendingLogs.lines...)
|
|
||||||
c.pendingLogs.Unlock()
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
buf, err := proto.Marshal(&logpb.UserAppLogGroup{
|
|
||||||
LogLine: lines,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("internal.flushLog: marshaling UserAppLogGroup: %v", err)
|
|
||||||
rescueLogs = true
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
req := &logpb.FlushRequest{
|
|
||||||
Logs: buf,
|
|
||||||
}
|
|
||||||
res := &basepb.VoidProto{}
|
|
||||||
c.pendingLogs.Lock()
|
|
||||||
c.pendingLogs.flushes++
|
|
||||||
c.pendingLogs.Unlock()
|
|
||||||
if err := Call(toContext(c), "logservice", "Flush", req, res); err != nil {
|
|
||||||
log.Printf("internal.flushLog: Flush RPC: %v", err)
|
|
||||||
rescueLogs = true
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
// Log flushing parameters.
|
|
||||||
flushInterval = 1 * time.Second
|
|
||||||
forceFlushInterval = 60 * time.Second
|
|
||||||
)
|
|
||||||
|
|
||||||
func (c *aeContext) logFlusher(stop <-chan int) {
|
|
||||||
lastFlush := time.Now()
|
|
||||||
tick := time.NewTicker(flushInterval)
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-stop:
|
|
||||||
// Request finished.
|
|
||||||
tick.Stop()
|
|
||||||
return
|
|
||||||
case <-tick.C:
|
|
||||||
force := time.Now().Sub(lastFlush) > forceFlushInterval
|
|
||||||
if c.flushLog(force) {
|
|
||||||
lastFlush = time.Now()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func ContextForTesting(req *http.Request) context.Context {
|
|
||||||
return toContext(&aeContext{req: req})
|
|
||||||
}
|
|
||||||
|
|
||||||
func logToLogservice() bool {
|
|
||||||
// TODO: replace logservice with json structured logs to $LOG_DIR/app.log.json
|
|
||||||
// where $LOG_DIR is /var/log in prod and some tmpdir in dev
|
|
||||||
return os.Getenv("LOG_TO_LOGSERVICE") != "0"
|
|
||||||
}
|
|
170
vendor/google.golang.org/appengine/internal/api_classic.go
generated
vendored
170
vendor/google.golang.org/appengine/internal/api_classic.go
generated
vendored
@ -1,170 +0,0 @@
|
|||||||
// Copyright 2015 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build appengine
|
|
||||||
// +build appengine
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"net/http"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"appengine"
|
|
||||||
"appengine_internal"
|
|
||||||
basepb "appengine_internal/base"
|
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
)
|
|
||||||
|
|
||||||
var contextKey = "holds an appengine.Context"
|
|
||||||
|
|
||||||
// fromContext returns the App Engine context or nil if ctx is not
|
|
||||||
// derived from an App Engine context.
|
|
||||||
func fromContext(ctx context.Context) appengine.Context {
|
|
||||||
c, _ := ctx.Value(&contextKey).(appengine.Context)
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is only for classic App Engine adapters.
|
|
||||||
func ClassicContextFromContext(ctx context.Context) (appengine.Context, error) {
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
return nil, errNotAppEngineContext
|
|
||||||
}
|
|
||||||
return c, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func withContext(parent context.Context, c appengine.Context) context.Context {
|
|
||||||
ctx := context.WithValue(parent, &contextKey, c)
|
|
||||||
|
|
||||||
s := &basepb.StringProto{}
|
|
||||||
c.Call("__go__", "GetNamespace", &basepb.VoidProto{}, s, nil)
|
|
||||||
if ns := s.GetValue(); ns != "" {
|
|
||||||
ctx = NamespacedContext(ctx, ns)
|
|
||||||
}
|
|
||||||
|
|
||||||
return ctx
|
|
||||||
}
|
|
||||||
|
|
||||||
func IncomingHeaders(ctx context.Context) http.Header {
|
|
||||||
if c := fromContext(ctx); c != nil {
|
|
||||||
if req, ok := c.Request().(*http.Request); ok {
|
|
||||||
return req.Header
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReqContext(req *http.Request) context.Context {
|
|
||||||
return WithContext(context.Background(), req)
|
|
||||||
}
|
|
||||||
|
|
||||||
func WithContext(parent context.Context, req *http.Request) context.Context {
|
|
||||||
c := appengine.NewContext(req)
|
|
||||||
return withContext(parent, c)
|
|
||||||
}
|
|
||||||
|
|
||||||
type testingContext struct {
|
|
||||||
appengine.Context
|
|
||||||
|
|
||||||
req *http.Request
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *testingContext) FullyQualifiedAppID() string { return "dev~testcontext" }
|
|
||||||
func (t *testingContext) Call(service, method string, _, _ appengine_internal.ProtoMessage, _ *appengine_internal.CallOptions) error {
|
|
||||||
if service == "__go__" && method == "GetNamespace" {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return fmt.Errorf("testingContext: unsupported Call")
|
|
||||||
}
|
|
||||||
func (t *testingContext) Request() interface{} { return t.req }
|
|
||||||
|
|
||||||
func ContextForTesting(req *http.Request) context.Context {
|
|
||||||
return withContext(context.Background(), &testingContext{req: req})
|
|
||||||
}
|
|
||||||
|
|
||||||
func Call(ctx context.Context, service, method string, in, out proto.Message) error {
|
|
||||||
if ns := NamespaceFromContext(ctx); ns != "" {
|
|
||||||
if fn, ok := NamespaceMods[service]; ok {
|
|
||||||
fn(in, ns)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if f, ctx, ok := callOverrideFromContext(ctx); ok {
|
|
||||||
return f(ctx, service, method, in, out)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle already-done contexts quickly.
|
|
||||||
select {
|
|
||||||
case <-ctx.Done():
|
|
||||||
return ctx.Err()
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
// Give a good error message rather than a panic lower down.
|
|
||||||
return errNotAppEngineContext
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply transaction modifications if we're in a transaction.
|
|
||||||
if t := transactionFromContext(ctx); t != nil {
|
|
||||||
if t.finished {
|
|
||||||
return errors.New("transaction context has expired")
|
|
||||||
}
|
|
||||||
applyTransaction(in, &t.transaction)
|
|
||||||
}
|
|
||||||
|
|
||||||
var opts *appengine_internal.CallOptions
|
|
||||||
if d, ok := ctx.Deadline(); ok {
|
|
||||||
opts = &appengine_internal.CallOptions{
|
|
||||||
Timeout: d.Sub(time.Now()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
err := c.Call(service, method, in, out, opts)
|
|
||||||
switch v := err.(type) {
|
|
||||||
case *appengine_internal.APIError:
|
|
||||||
return &APIError{
|
|
||||||
Service: v.Service,
|
|
||||||
Detail: v.Detail,
|
|
||||||
Code: v.Code,
|
|
||||||
}
|
|
||||||
case *appengine_internal.CallError:
|
|
||||||
return &CallError{
|
|
||||||
Detail: v.Detail,
|
|
||||||
Code: v.Code,
|
|
||||||
Timeout: v.Timeout,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func Middleware(next http.Handler) http.Handler {
|
|
||||||
panic("Middleware called; this should be impossible")
|
|
||||||
}
|
|
||||||
|
|
||||||
func logf(c appengine.Context, level int64, format string, args ...interface{}) {
|
|
||||||
var fn func(format string, args ...interface{})
|
|
||||||
switch level {
|
|
||||||
case 0:
|
|
||||||
fn = c.Debugf
|
|
||||||
case 1:
|
|
||||||
fn = c.Infof
|
|
||||||
case 2:
|
|
||||||
fn = c.Warningf
|
|
||||||
case 3:
|
|
||||||
fn = c.Errorf
|
|
||||||
case 4:
|
|
||||||
fn = c.Criticalf
|
|
||||||
default:
|
|
||||||
// This shouldn't happen.
|
|
||||||
fn = c.Criticalf
|
|
||||||
}
|
|
||||||
fn(format, args...)
|
|
||||||
}
|
|
141
vendor/google.golang.org/appengine/internal/api_common.go
generated
vendored
141
vendor/google.golang.org/appengine/internal/api_common.go
generated
vendored
@ -1,141 +0,0 @@
|
|||||||
// Copyright 2015 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
)
|
|
||||||
|
|
||||||
type ctxKey string
|
|
||||||
|
|
||||||
func (c ctxKey) String() string {
|
|
||||||
return "appengine context key: " + string(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
var errNotAppEngineContext = errors.New("not an App Engine context")
|
|
||||||
|
|
||||||
type CallOverrideFunc func(ctx context.Context, service, method string, in, out proto.Message) error
|
|
||||||
|
|
||||||
var callOverrideKey = "holds []CallOverrideFunc"
|
|
||||||
|
|
||||||
func WithCallOverride(ctx context.Context, f CallOverrideFunc) context.Context {
|
|
||||||
// We avoid appending to any existing call override
|
|
||||||
// so we don't risk overwriting a popped stack below.
|
|
||||||
var cofs []CallOverrideFunc
|
|
||||||
if uf, ok := ctx.Value(&callOverrideKey).([]CallOverrideFunc); ok {
|
|
||||||
cofs = append(cofs, uf...)
|
|
||||||
}
|
|
||||||
cofs = append(cofs, f)
|
|
||||||
return context.WithValue(ctx, &callOverrideKey, cofs)
|
|
||||||
}
|
|
||||||
|
|
||||||
func callOverrideFromContext(ctx context.Context) (CallOverrideFunc, context.Context, bool) {
|
|
||||||
cofs, _ := ctx.Value(&callOverrideKey).([]CallOverrideFunc)
|
|
||||||
if len(cofs) == 0 {
|
|
||||||
return nil, nil, false
|
|
||||||
}
|
|
||||||
// We found a list of overrides; grab the last, and reconstitute a
|
|
||||||
// context that will hide it.
|
|
||||||
f := cofs[len(cofs)-1]
|
|
||||||
ctx = context.WithValue(ctx, &callOverrideKey, cofs[:len(cofs)-1])
|
|
||||||
return f, ctx, true
|
|
||||||
}
|
|
||||||
|
|
||||||
type logOverrideFunc func(level int64, format string, args ...interface{})
|
|
||||||
|
|
||||||
var logOverrideKey = "holds a logOverrideFunc"
|
|
||||||
|
|
||||||
func WithLogOverride(ctx context.Context, f logOverrideFunc) context.Context {
|
|
||||||
return context.WithValue(ctx, &logOverrideKey, f)
|
|
||||||
}
|
|
||||||
|
|
||||||
var appIDOverrideKey = "holds a string, being the full app ID"
|
|
||||||
|
|
||||||
func WithAppIDOverride(ctx context.Context, appID string) context.Context {
|
|
||||||
return context.WithValue(ctx, &appIDOverrideKey, appID)
|
|
||||||
}
|
|
||||||
|
|
||||||
var apiHostOverrideKey = ctxKey("holds a string, being the alternate API_HOST")
|
|
||||||
|
|
||||||
func withAPIHostOverride(ctx context.Context, apiHost string) context.Context {
|
|
||||||
return context.WithValue(ctx, apiHostOverrideKey, apiHost)
|
|
||||||
}
|
|
||||||
|
|
||||||
var apiPortOverrideKey = ctxKey("holds a string, being the alternate API_PORT")
|
|
||||||
|
|
||||||
func withAPIPortOverride(ctx context.Context, apiPort string) context.Context {
|
|
||||||
return context.WithValue(ctx, apiPortOverrideKey, apiPort)
|
|
||||||
}
|
|
||||||
|
|
||||||
var namespaceKey = "holds the namespace string"
|
|
||||||
|
|
||||||
func withNamespace(ctx context.Context, ns string) context.Context {
|
|
||||||
return context.WithValue(ctx, &namespaceKey, ns)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NamespaceFromContext(ctx context.Context) string {
|
|
||||||
// If there's no namespace, return the empty string.
|
|
||||||
ns, _ := ctx.Value(&namespaceKey).(string)
|
|
||||||
return ns
|
|
||||||
}
|
|
||||||
|
|
||||||
// FullyQualifiedAppID returns the fully-qualified application ID.
|
|
||||||
// This may contain a partition prefix (e.g. "s~" for High Replication apps),
|
|
||||||
// or a domain prefix (e.g. "example.com:").
|
|
||||||
func FullyQualifiedAppID(ctx context.Context) string {
|
|
||||||
if id, ok := ctx.Value(&appIDOverrideKey).(string); ok {
|
|
||||||
return id
|
|
||||||
}
|
|
||||||
return fullyQualifiedAppID(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Logf(ctx context.Context, level int64, format string, args ...interface{}) {
|
|
||||||
if f, ok := ctx.Value(&logOverrideKey).(logOverrideFunc); ok {
|
|
||||||
f(level, format, args...)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
panic(errNotAppEngineContext)
|
|
||||||
}
|
|
||||||
logf(c, level, format, args...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NamespacedContext wraps a Context to support namespaces.
|
|
||||||
func NamespacedContext(ctx context.Context, namespace string) context.Context {
|
|
||||||
return withNamespace(ctx, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetTestEnv sets the env variables for testing background ticket in Flex.
|
|
||||||
func SetTestEnv() func() {
|
|
||||||
var environ = []struct {
|
|
||||||
key, value string
|
|
||||||
}{
|
|
||||||
{"GAE_LONG_APP_ID", "my-app-id"},
|
|
||||||
{"GAE_MINOR_VERSION", "067924799508853122"},
|
|
||||||
{"GAE_MODULE_INSTANCE", "0"},
|
|
||||||
{"GAE_MODULE_NAME", "default"},
|
|
||||||
{"GAE_MODULE_VERSION", "20150612t184001"},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, v := range environ {
|
|
||||||
old := os.Getenv(v.key)
|
|
||||||
os.Setenv(v.key, v.value)
|
|
||||||
v.value = old
|
|
||||||
}
|
|
||||||
return func() { // Restore old environment after the test completes.
|
|
||||||
for _, v := range environ {
|
|
||||||
if v.value == "" {
|
|
||||||
os.Unsetenv(v.key)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
os.Setenv(v.key, v.value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
28
vendor/google.golang.org/appengine/internal/app_id.go
generated
vendored
28
vendor/google.golang.org/appengine/internal/app_id.go
generated
vendored
@ -1,28 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
func parseFullAppID(appid string) (partition, domain, displayID string) {
|
|
||||||
if i := strings.Index(appid, "~"); i != -1 {
|
|
||||||
partition, appid = appid[:i], appid[i+1:]
|
|
||||||
}
|
|
||||||
if i := strings.Index(appid, ":"); i != -1 {
|
|
||||||
domain, appid = appid[:i], appid[i+1:]
|
|
||||||
}
|
|
||||||
return partition, domain, appid
|
|
||||||
}
|
|
||||||
|
|
||||||
// appID returns "appid" or "domain.com:appid".
|
|
||||||
func appID(fullAppID string) string {
|
|
||||||
_, dom, dis := parseFullAppID(fullAppID)
|
|
||||||
if dom != "" {
|
|
||||||
return dom + ":" + dis
|
|
||||||
}
|
|
||||||
return dis
|
|
||||||
}
|
|
308
vendor/google.golang.org/appengine/internal/base/api_base.pb.go
generated
vendored
308
vendor/google.golang.org/appengine/internal/base/api_base.pb.go
generated
vendored
@ -1,308 +0,0 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
||||||
// source: google.golang.org/appengine/internal/base/api_base.proto
|
|
||||||
|
|
||||||
package base
|
|
||||||
|
|
||||||
import proto "github.com/golang/protobuf/proto"
|
|
||||||
import fmt "fmt"
|
|
||||||
import math "math"
|
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
|
||||||
var _ = proto.Marshal
|
|
||||||
var _ = fmt.Errorf
|
|
||||||
var _ = math.Inf
|
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
|
||||||
// is compatible with the proto package it is being compiled against.
|
|
||||||
// A compilation error at this line likely means your copy of the
|
|
||||||
// proto package needs to be updated.
|
|
||||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
|
||||||
|
|
||||||
type StringProto struct {
|
|
||||||
Value *string `protobuf:"bytes,1,req,name=value" json:"value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *StringProto) Reset() { *m = StringProto{} }
|
|
||||||
func (m *StringProto) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*StringProto) ProtoMessage() {}
|
|
||||||
func (*StringProto) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_api_base_9d49f8792e0c1140, []int{0}
|
|
||||||
}
|
|
||||||
func (m *StringProto) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_StringProto.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *StringProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_StringProto.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *StringProto) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_StringProto.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *StringProto) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_StringProto.Size(m)
|
|
||||||
}
|
|
||||||
func (m *StringProto) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_StringProto.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_StringProto proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *StringProto) GetValue() string {
|
|
||||||
if m != nil && m.Value != nil {
|
|
||||||
return *m.Value
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type Integer32Proto struct {
|
|
||||||
Value *int32 `protobuf:"varint,1,req,name=value" json:"value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Integer32Proto) Reset() { *m = Integer32Proto{} }
|
|
||||||
func (m *Integer32Proto) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*Integer32Proto) ProtoMessage() {}
|
|
||||||
func (*Integer32Proto) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_api_base_9d49f8792e0c1140, []int{1}
|
|
||||||
}
|
|
||||||
func (m *Integer32Proto) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_Integer32Proto.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *Integer32Proto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_Integer32Proto.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *Integer32Proto) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_Integer32Proto.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *Integer32Proto) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_Integer32Proto.Size(m)
|
|
||||||
}
|
|
||||||
func (m *Integer32Proto) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_Integer32Proto.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_Integer32Proto proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *Integer32Proto) GetValue() int32 {
|
|
||||||
if m != nil && m.Value != nil {
|
|
||||||
return *m.Value
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
type Integer64Proto struct {
|
|
||||||
Value *int64 `protobuf:"varint,1,req,name=value" json:"value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Integer64Proto) Reset() { *m = Integer64Proto{} }
|
|
||||||
func (m *Integer64Proto) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*Integer64Proto) ProtoMessage() {}
|
|
||||||
func (*Integer64Proto) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_api_base_9d49f8792e0c1140, []int{2}
|
|
||||||
}
|
|
||||||
func (m *Integer64Proto) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_Integer64Proto.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *Integer64Proto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_Integer64Proto.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *Integer64Proto) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_Integer64Proto.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *Integer64Proto) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_Integer64Proto.Size(m)
|
|
||||||
}
|
|
||||||
func (m *Integer64Proto) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_Integer64Proto.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_Integer64Proto proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *Integer64Proto) GetValue() int64 {
|
|
||||||
if m != nil && m.Value != nil {
|
|
||||||
return *m.Value
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
type BoolProto struct {
|
|
||||||
Value *bool `protobuf:"varint,1,req,name=value" json:"value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *BoolProto) Reset() { *m = BoolProto{} }
|
|
||||||
func (m *BoolProto) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*BoolProto) ProtoMessage() {}
|
|
||||||
func (*BoolProto) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_api_base_9d49f8792e0c1140, []int{3}
|
|
||||||
}
|
|
||||||
func (m *BoolProto) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_BoolProto.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *BoolProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_BoolProto.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *BoolProto) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_BoolProto.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *BoolProto) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_BoolProto.Size(m)
|
|
||||||
}
|
|
||||||
func (m *BoolProto) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_BoolProto.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_BoolProto proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *BoolProto) GetValue() bool {
|
|
||||||
if m != nil && m.Value != nil {
|
|
||||||
return *m.Value
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
type DoubleProto struct {
|
|
||||||
Value *float64 `protobuf:"fixed64,1,req,name=value" json:"value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *DoubleProto) Reset() { *m = DoubleProto{} }
|
|
||||||
func (m *DoubleProto) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*DoubleProto) ProtoMessage() {}
|
|
||||||
func (*DoubleProto) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_api_base_9d49f8792e0c1140, []int{4}
|
|
||||||
}
|
|
||||||
func (m *DoubleProto) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_DoubleProto.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *DoubleProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_DoubleProto.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *DoubleProto) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_DoubleProto.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *DoubleProto) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_DoubleProto.Size(m)
|
|
||||||
}
|
|
||||||
func (m *DoubleProto) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_DoubleProto.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_DoubleProto proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *DoubleProto) GetValue() float64 {
|
|
||||||
if m != nil && m.Value != nil {
|
|
||||||
return *m.Value
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
type BytesProto struct {
|
|
||||||
Value []byte `protobuf:"bytes,1,req,name=value" json:"value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *BytesProto) Reset() { *m = BytesProto{} }
|
|
||||||
func (m *BytesProto) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*BytesProto) ProtoMessage() {}
|
|
||||||
func (*BytesProto) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_api_base_9d49f8792e0c1140, []int{5}
|
|
||||||
}
|
|
||||||
func (m *BytesProto) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_BytesProto.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *BytesProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_BytesProto.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *BytesProto) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_BytesProto.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *BytesProto) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_BytesProto.Size(m)
|
|
||||||
}
|
|
||||||
func (m *BytesProto) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_BytesProto.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_BytesProto proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *BytesProto) GetValue() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.Value
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type VoidProto struct {
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *VoidProto) Reset() { *m = VoidProto{} }
|
|
||||||
func (m *VoidProto) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*VoidProto) ProtoMessage() {}
|
|
||||||
func (*VoidProto) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_api_base_9d49f8792e0c1140, []int{6}
|
|
||||||
}
|
|
||||||
func (m *VoidProto) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_VoidProto.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *VoidProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_VoidProto.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *VoidProto) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_VoidProto.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *VoidProto) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_VoidProto.Size(m)
|
|
||||||
}
|
|
||||||
func (m *VoidProto) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_VoidProto.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_VoidProto proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterType((*StringProto)(nil), "appengine.base.StringProto")
|
|
||||||
proto.RegisterType((*Integer32Proto)(nil), "appengine.base.Integer32Proto")
|
|
||||||
proto.RegisterType((*Integer64Proto)(nil), "appengine.base.Integer64Proto")
|
|
||||||
proto.RegisterType((*BoolProto)(nil), "appengine.base.BoolProto")
|
|
||||||
proto.RegisterType((*DoubleProto)(nil), "appengine.base.DoubleProto")
|
|
||||||
proto.RegisterType((*BytesProto)(nil), "appengine.base.BytesProto")
|
|
||||||
proto.RegisterType((*VoidProto)(nil), "appengine.base.VoidProto")
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterFile("google.golang.org/appengine/internal/base/api_base.proto", fileDescriptor_api_base_9d49f8792e0c1140)
|
|
||||||
}
|
|
||||||
|
|
||||||
var fileDescriptor_api_base_9d49f8792e0c1140 = []byte{
|
|
||||||
// 199 bytes of a gzipped FileDescriptorProto
|
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0xcf, 0x3f, 0x4b, 0xc6, 0x30,
|
|
||||||
0x10, 0x06, 0x70, 0x5a, 0xad, 0xb4, 0x57, 0xe9, 0x20, 0x0e, 0x1d, 0xb5, 0x05, 0x71, 0x4a, 0x40,
|
|
||||||
0x45, 0x9c, 0x83, 0x8b, 0x9b, 0x28, 0x38, 0xb8, 0x48, 0x8a, 0xc7, 0x11, 0x08, 0xb9, 0x90, 0xa6,
|
|
||||||
0x82, 0xdf, 0x5e, 0xda, 0xd2, 0xfa, 0xc2, 0x9b, 0xed, 0xfe, 0xfc, 0xe0, 0xe1, 0x81, 0x27, 0x62,
|
|
||||||
0x26, 0x8b, 0x82, 0xd8, 0x6a, 0x47, 0x82, 0x03, 0x49, 0xed, 0x3d, 0x3a, 0x32, 0x0e, 0xa5, 0x71,
|
|
||||||
0x11, 0x83, 0xd3, 0x56, 0x0e, 0x7a, 0x44, 0xa9, 0xbd, 0xf9, 0x9a, 0x07, 0xe1, 0x03, 0x47, 0xbe,
|
|
||||||
0x68, 0x76, 0x27, 0xe6, 0x6b, 0xd7, 0x43, 0xfd, 0x1e, 0x83, 0x71, 0xf4, 0xba, 0xbc, 0x2f, 0xa1,
|
|
||||||
0xf8, 0xd1, 0x76, 0xc2, 0x36, 0xbb, 0xca, 0x6f, 0xab, 0xb7, 0x75, 0xe9, 0x6e, 0xa0, 0x79, 0x71,
|
|
||||||
0x11, 0x09, 0xc3, 0xfd, 0x5d, 0xc2, 0x15, 0xc7, 0xee, 0xf1, 0x21, 0xe1, 0x4e, 0x36, 0x77, 0x0d,
|
|
||||||
0x95, 0x62, 0xb6, 0x09, 0x52, 0x6e, 0xa4, 0x87, 0xfa, 0x99, 0xa7, 0xc1, 0x62, 0x02, 0x65, 0xff,
|
|
||||||
0x79, 0xa0, 0x7e, 0x23, 0x8e, 0xab, 0x69, 0x0f, 0xcd, 0xb9, 0xca, 0xcb, 0xdd, 0xd5, 0x50, 0x7d,
|
|
||||||
0xb0, 0xf9, 0x5e, 0x98, 0x3a, 0xfb, 0x3c, 0x9d, 0x9b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xba,
|
|
||||||
0x37, 0x25, 0xea, 0x44, 0x01, 0x00, 0x00,
|
|
||||||
}
|
|
33
vendor/google.golang.org/appengine/internal/base/api_base.proto
generated
vendored
33
vendor/google.golang.org/appengine/internal/base/api_base.proto
generated
vendored
@ -1,33 +0,0 @@
|
|||||||
// Built-in base types for API calls. Primarily useful as return types.
|
|
||||||
|
|
||||||
syntax = "proto2";
|
|
||||||
option go_package = "base";
|
|
||||||
|
|
||||||
package appengine.base;
|
|
||||||
|
|
||||||
message StringProto {
|
|
||||||
required string value = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Integer32Proto {
|
|
||||||
required int32 value = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Integer64Proto {
|
|
||||||
required int64 value = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message BoolProto {
|
|
||||||
required bool value = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message DoubleProto {
|
|
||||||
required double value = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message BytesProto {
|
|
||||||
required bytes value = 1 [ctype=CORD];
|
|
||||||
}
|
|
||||||
|
|
||||||
message VoidProto {
|
|
||||||
}
|
|
4367
vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go
generated
vendored
4367
vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
551
vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto
generated
vendored
551
vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto
generated
vendored
@ -1,551 +0,0 @@
|
|||||||
syntax = "proto2";
|
|
||||||
option go_package = "datastore";
|
|
||||||
|
|
||||||
package appengine;
|
|
||||||
|
|
||||||
message Action{}
|
|
||||||
|
|
||||||
message PropertyValue {
|
|
||||||
optional int64 int64Value = 1;
|
|
||||||
optional bool booleanValue = 2;
|
|
||||||
optional string stringValue = 3;
|
|
||||||
optional double doubleValue = 4;
|
|
||||||
|
|
||||||
optional group PointValue = 5 {
|
|
||||||
required double x = 6;
|
|
||||||
required double y = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
optional group UserValue = 8 {
|
|
||||||
required string email = 9;
|
|
||||||
required string auth_domain = 10;
|
|
||||||
optional string nickname = 11;
|
|
||||||
optional string federated_identity = 21;
|
|
||||||
optional string federated_provider = 22;
|
|
||||||
}
|
|
||||||
|
|
||||||
optional group ReferenceValue = 12 {
|
|
||||||
required string app = 13;
|
|
||||||
optional string name_space = 20;
|
|
||||||
repeated group PathElement = 14 {
|
|
||||||
required string type = 15;
|
|
||||||
optional int64 id = 16;
|
|
||||||
optional string name = 17;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message Property {
|
|
||||||
enum Meaning {
|
|
||||||
NO_MEANING = 0;
|
|
||||||
BLOB = 14;
|
|
||||||
TEXT = 15;
|
|
||||||
BYTESTRING = 16;
|
|
||||||
|
|
||||||
ATOM_CATEGORY = 1;
|
|
||||||
ATOM_LINK = 2;
|
|
||||||
ATOM_TITLE = 3;
|
|
||||||
ATOM_CONTENT = 4;
|
|
||||||
ATOM_SUMMARY = 5;
|
|
||||||
ATOM_AUTHOR = 6;
|
|
||||||
|
|
||||||
GD_WHEN = 7;
|
|
||||||
GD_EMAIL = 8;
|
|
||||||
GEORSS_POINT = 9;
|
|
||||||
GD_IM = 10;
|
|
||||||
|
|
||||||
GD_PHONENUMBER = 11;
|
|
||||||
GD_POSTALADDRESS = 12;
|
|
||||||
|
|
||||||
GD_RATING = 13;
|
|
||||||
|
|
||||||
BLOBKEY = 17;
|
|
||||||
ENTITY_PROTO = 19;
|
|
||||||
|
|
||||||
INDEX_VALUE = 18;
|
|
||||||
};
|
|
||||||
|
|
||||||
optional Meaning meaning = 1 [default = NO_MEANING];
|
|
||||||
optional string meaning_uri = 2;
|
|
||||||
|
|
||||||
required string name = 3;
|
|
||||||
|
|
||||||
required PropertyValue value = 5;
|
|
||||||
|
|
||||||
required bool multiple = 4;
|
|
||||||
|
|
||||||
optional bool searchable = 6 [default=false];
|
|
||||||
|
|
||||||
enum FtsTokenizationOption {
|
|
||||||
HTML = 1;
|
|
||||||
ATOM = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
optional FtsTokenizationOption fts_tokenization_option = 8;
|
|
||||||
|
|
||||||
optional string locale = 9 [default = "en"];
|
|
||||||
}
|
|
||||||
|
|
||||||
message Path {
|
|
||||||
repeated group Element = 1 {
|
|
||||||
required string type = 2;
|
|
||||||
optional int64 id = 3;
|
|
||||||
optional string name = 4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message Reference {
|
|
||||||
required string app = 13;
|
|
||||||
optional string name_space = 20;
|
|
||||||
required Path path = 14;
|
|
||||||
}
|
|
||||||
|
|
||||||
message User {
|
|
||||||
required string email = 1;
|
|
||||||
required string auth_domain = 2;
|
|
||||||
optional string nickname = 3;
|
|
||||||
optional string federated_identity = 6;
|
|
||||||
optional string federated_provider = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
message EntityProto {
|
|
||||||
required Reference key = 13;
|
|
||||||
required Path entity_group = 16;
|
|
||||||
optional User owner = 17;
|
|
||||||
|
|
||||||
enum Kind {
|
|
||||||
GD_CONTACT = 1;
|
|
||||||
GD_EVENT = 2;
|
|
||||||
GD_MESSAGE = 3;
|
|
||||||
}
|
|
||||||
optional Kind kind = 4;
|
|
||||||
optional string kind_uri = 5;
|
|
||||||
|
|
||||||
repeated Property property = 14;
|
|
||||||
repeated Property raw_property = 15;
|
|
||||||
|
|
||||||
optional int32 rank = 18;
|
|
||||||
}
|
|
||||||
|
|
||||||
message CompositeProperty {
|
|
||||||
required int64 index_id = 1;
|
|
||||||
repeated string value = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Index {
|
|
||||||
required string entity_type = 1;
|
|
||||||
required bool ancestor = 5;
|
|
||||||
repeated group Property = 2 {
|
|
||||||
required string name = 3;
|
|
||||||
enum Direction {
|
|
||||||
ASCENDING = 1;
|
|
||||||
DESCENDING = 2;
|
|
||||||
}
|
|
||||||
optional Direction direction = 4 [default = ASCENDING];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message CompositeIndex {
|
|
||||||
required string app_id = 1;
|
|
||||||
required int64 id = 2;
|
|
||||||
required Index definition = 3;
|
|
||||||
|
|
||||||
enum State {
|
|
||||||
WRITE_ONLY = 1;
|
|
||||||
READ_WRITE = 2;
|
|
||||||
DELETED = 3;
|
|
||||||
ERROR = 4;
|
|
||||||
}
|
|
||||||
required State state = 4;
|
|
||||||
|
|
||||||
optional bool only_use_if_required = 6 [default = false];
|
|
||||||
}
|
|
||||||
|
|
||||||
message IndexPostfix {
|
|
||||||
message IndexValue {
|
|
||||||
required string property_name = 1;
|
|
||||||
required PropertyValue value = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
repeated IndexValue index_value = 1;
|
|
||||||
|
|
||||||
optional Reference key = 2;
|
|
||||||
|
|
||||||
optional bool before = 3 [default=true];
|
|
||||||
}
|
|
||||||
|
|
||||||
message IndexPosition {
|
|
||||||
optional string key = 1;
|
|
||||||
|
|
||||||
optional bool before = 2 [default=true];
|
|
||||||
}
|
|
||||||
|
|
||||||
message Snapshot {
|
|
||||||
enum Status {
|
|
||||||
INACTIVE = 0;
|
|
||||||
ACTIVE = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
required int64 ts = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message InternalHeader {
|
|
||||||
optional string qos = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Transaction {
|
|
||||||
optional InternalHeader header = 4;
|
|
||||||
required fixed64 handle = 1;
|
|
||||||
required string app = 2;
|
|
||||||
optional bool mark_changes = 3 [default = false];
|
|
||||||
}
|
|
||||||
|
|
||||||
message Query {
|
|
||||||
optional InternalHeader header = 39;
|
|
||||||
|
|
||||||
required string app = 1;
|
|
||||||
optional string name_space = 29;
|
|
||||||
|
|
||||||
optional string kind = 3;
|
|
||||||
optional Reference ancestor = 17;
|
|
||||||
|
|
||||||
repeated group Filter = 4 {
|
|
||||||
enum Operator {
|
|
||||||
LESS_THAN = 1;
|
|
||||||
LESS_THAN_OR_EQUAL = 2;
|
|
||||||
GREATER_THAN = 3;
|
|
||||||
GREATER_THAN_OR_EQUAL = 4;
|
|
||||||
EQUAL = 5;
|
|
||||||
IN = 6;
|
|
||||||
EXISTS = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
required Operator op = 6;
|
|
||||||
repeated Property property = 14;
|
|
||||||
}
|
|
||||||
|
|
||||||
optional string search_query = 8;
|
|
||||||
|
|
||||||
repeated group Order = 9 {
|
|
||||||
enum Direction {
|
|
||||||
ASCENDING = 1;
|
|
||||||
DESCENDING = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
required string property = 10;
|
|
||||||
optional Direction direction = 11 [default = ASCENDING];
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Hint {
|
|
||||||
ORDER_FIRST = 1;
|
|
||||||
ANCESTOR_FIRST = 2;
|
|
||||||
FILTER_FIRST = 3;
|
|
||||||
}
|
|
||||||
optional Hint hint = 18;
|
|
||||||
|
|
||||||
optional int32 count = 23;
|
|
||||||
|
|
||||||
optional int32 offset = 12 [default = 0];
|
|
||||||
|
|
||||||
optional int32 limit = 16;
|
|
||||||
|
|
||||||
optional CompiledCursor compiled_cursor = 30;
|
|
||||||
optional CompiledCursor end_compiled_cursor = 31;
|
|
||||||
|
|
||||||
repeated CompositeIndex composite_index = 19;
|
|
||||||
|
|
||||||
optional bool require_perfect_plan = 20 [default = false];
|
|
||||||
|
|
||||||
optional bool keys_only = 21 [default = false];
|
|
||||||
|
|
||||||
optional Transaction transaction = 22;
|
|
||||||
|
|
||||||
optional bool compile = 25 [default = false];
|
|
||||||
|
|
||||||
optional int64 failover_ms = 26;
|
|
||||||
|
|
||||||
optional bool strong = 32;
|
|
||||||
|
|
||||||
repeated string property_name = 33;
|
|
||||||
|
|
||||||
repeated string group_by_property_name = 34;
|
|
||||||
|
|
||||||
optional bool distinct = 24;
|
|
||||||
|
|
||||||
optional int64 min_safe_time_seconds = 35;
|
|
||||||
|
|
||||||
repeated string safe_replica_name = 36;
|
|
||||||
|
|
||||||
optional bool persist_offset = 37 [default=false];
|
|
||||||
}
|
|
||||||
|
|
||||||
message CompiledQuery {
|
|
||||||
required group PrimaryScan = 1 {
|
|
||||||
optional string index_name = 2;
|
|
||||||
|
|
||||||
optional string start_key = 3;
|
|
||||||
optional bool start_inclusive = 4;
|
|
||||||
optional string end_key = 5;
|
|
||||||
optional bool end_inclusive = 6;
|
|
||||||
|
|
||||||
repeated string start_postfix_value = 22;
|
|
||||||
repeated string end_postfix_value = 23;
|
|
||||||
|
|
||||||
optional int64 end_unapplied_log_timestamp_us = 19;
|
|
||||||
}
|
|
||||||
|
|
||||||
repeated group MergeJoinScan = 7 {
|
|
||||||
required string index_name = 8;
|
|
||||||
|
|
||||||
repeated string prefix_value = 9;
|
|
||||||
|
|
||||||
optional bool value_prefix = 20 [default=false];
|
|
||||||
}
|
|
||||||
|
|
||||||
optional Index index_def = 21;
|
|
||||||
|
|
||||||
optional int32 offset = 10 [default = 0];
|
|
||||||
|
|
||||||
optional int32 limit = 11;
|
|
||||||
|
|
||||||
required bool keys_only = 12;
|
|
||||||
|
|
||||||
repeated string property_name = 24;
|
|
||||||
|
|
||||||
optional int32 distinct_infix_size = 25;
|
|
||||||
|
|
||||||
optional group EntityFilter = 13 {
|
|
||||||
optional bool distinct = 14 [default=false];
|
|
||||||
|
|
||||||
optional string kind = 17;
|
|
||||||
optional Reference ancestor = 18;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message CompiledCursor {
|
|
||||||
optional group Position = 2 {
|
|
||||||
optional string start_key = 27;
|
|
||||||
|
|
||||||
repeated group IndexValue = 29 {
|
|
||||||
optional string property = 30;
|
|
||||||
required PropertyValue value = 31;
|
|
||||||
}
|
|
||||||
|
|
||||||
optional Reference key = 32;
|
|
||||||
|
|
||||||
optional bool start_inclusive = 28 [default=true];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message Cursor {
|
|
||||||
required fixed64 cursor = 1;
|
|
||||||
|
|
||||||
optional string app = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Error {
|
|
||||||
enum ErrorCode {
|
|
||||||
BAD_REQUEST = 1;
|
|
||||||
CONCURRENT_TRANSACTION = 2;
|
|
||||||
INTERNAL_ERROR = 3;
|
|
||||||
NEED_INDEX = 4;
|
|
||||||
TIMEOUT = 5;
|
|
||||||
PERMISSION_DENIED = 6;
|
|
||||||
BIGTABLE_ERROR = 7;
|
|
||||||
COMMITTED_BUT_STILL_APPLYING = 8;
|
|
||||||
CAPABILITY_DISABLED = 9;
|
|
||||||
TRY_ALTERNATE_BACKEND = 10;
|
|
||||||
SAFE_TIME_TOO_OLD = 11;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message Cost {
|
|
||||||
optional int32 index_writes = 1;
|
|
||||||
optional int32 index_write_bytes = 2;
|
|
||||||
optional int32 entity_writes = 3;
|
|
||||||
optional int32 entity_write_bytes = 4;
|
|
||||||
optional group CommitCost = 5 {
|
|
||||||
optional int32 requested_entity_puts = 6;
|
|
||||||
optional int32 requested_entity_deletes = 7;
|
|
||||||
};
|
|
||||||
optional int32 approximate_storage_delta = 8;
|
|
||||||
optional int32 id_sequence_updates = 9;
|
|
||||||
}
|
|
||||||
|
|
||||||
message GetRequest {
|
|
||||||
optional InternalHeader header = 6;
|
|
||||||
|
|
||||||
repeated Reference key = 1;
|
|
||||||
optional Transaction transaction = 2;
|
|
||||||
|
|
||||||
optional int64 failover_ms = 3;
|
|
||||||
|
|
||||||
optional bool strong = 4;
|
|
||||||
|
|
||||||
optional bool allow_deferred = 5 [default=false];
|
|
||||||
}
|
|
||||||
|
|
||||||
message GetResponse {
|
|
||||||
repeated group Entity = 1 {
|
|
||||||
optional EntityProto entity = 2;
|
|
||||||
optional Reference key = 4;
|
|
||||||
|
|
||||||
optional int64 version = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
repeated Reference deferred = 5;
|
|
||||||
|
|
||||||
optional bool in_order = 6 [default=true];
|
|
||||||
}
|
|
||||||
|
|
||||||
message PutRequest {
|
|
||||||
optional InternalHeader header = 11;
|
|
||||||
|
|
||||||
repeated EntityProto entity = 1;
|
|
||||||
optional Transaction transaction = 2;
|
|
||||||
repeated CompositeIndex composite_index = 3;
|
|
||||||
|
|
||||||
optional bool trusted = 4 [default = false];
|
|
||||||
|
|
||||||
optional bool force = 7 [default = false];
|
|
||||||
|
|
||||||
optional bool mark_changes = 8 [default = false];
|
|
||||||
repeated Snapshot snapshot = 9;
|
|
||||||
|
|
||||||
enum AutoIdPolicy {
|
|
||||||
CURRENT = 0;
|
|
||||||
SEQUENTIAL = 1;
|
|
||||||
}
|
|
||||||
optional AutoIdPolicy auto_id_policy = 10 [default = CURRENT];
|
|
||||||
}
|
|
||||||
|
|
||||||
message PutResponse {
|
|
||||||
repeated Reference key = 1;
|
|
||||||
optional Cost cost = 2;
|
|
||||||
repeated int64 version = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message TouchRequest {
|
|
||||||
optional InternalHeader header = 10;
|
|
||||||
|
|
||||||
repeated Reference key = 1;
|
|
||||||
repeated CompositeIndex composite_index = 2;
|
|
||||||
optional bool force = 3 [default = false];
|
|
||||||
repeated Snapshot snapshot = 9;
|
|
||||||
}
|
|
||||||
|
|
||||||
message TouchResponse {
|
|
||||||
optional Cost cost = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message DeleteRequest {
|
|
||||||
optional InternalHeader header = 10;
|
|
||||||
|
|
||||||
repeated Reference key = 6;
|
|
||||||
optional Transaction transaction = 5;
|
|
||||||
|
|
||||||
optional bool trusted = 4 [default = false];
|
|
||||||
|
|
||||||
optional bool force = 7 [default = false];
|
|
||||||
|
|
||||||
optional bool mark_changes = 8 [default = false];
|
|
||||||
repeated Snapshot snapshot = 9;
|
|
||||||
}
|
|
||||||
|
|
||||||
message DeleteResponse {
|
|
||||||
optional Cost cost = 1;
|
|
||||||
repeated int64 version = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message NextRequest {
|
|
||||||
optional InternalHeader header = 5;
|
|
||||||
|
|
||||||
required Cursor cursor = 1;
|
|
||||||
optional int32 count = 2;
|
|
||||||
|
|
||||||
optional int32 offset = 4 [default = 0];
|
|
||||||
|
|
||||||
optional bool compile = 3 [default = false];
|
|
||||||
}
|
|
||||||
|
|
||||||
message QueryResult {
|
|
||||||
optional Cursor cursor = 1;
|
|
||||||
|
|
||||||
repeated EntityProto result = 2;
|
|
||||||
|
|
||||||
optional int32 skipped_results = 7;
|
|
||||||
|
|
||||||
required bool more_results = 3;
|
|
||||||
|
|
||||||
optional bool keys_only = 4;
|
|
||||||
|
|
||||||
optional bool index_only = 9;
|
|
||||||
|
|
||||||
optional bool small_ops = 10;
|
|
||||||
|
|
||||||
optional CompiledQuery compiled_query = 5;
|
|
||||||
|
|
||||||
optional CompiledCursor compiled_cursor = 6;
|
|
||||||
|
|
||||||
repeated CompositeIndex index = 8;
|
|
||||||
|
|
||||||
repeated int64 version = 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
message AllocateIdsRequest {
|
|
||||||
optional InternalHeader header = 4;
|
|
||||||
|
|
||||||
optional Reference model_key = 1;
|
|
||||||
|
|
||||||
optional int64 size = 2;
|
|
||||||
|
|
||||||
optional int64 max = 3;
|
|
||||||
|
|
||||||
repeated Reference reserve = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
message AllocateIdsResponse {
|
|
||||||
required int64 start = 1;
|
|
||||||
required int64 end = 2;
|
|
||||||
optional Cost cost = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message CompositeIndices {
|
|
||||||
repeated CompositeIndex index = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message AddActionsRequest {
|
|
||||||
optional InternalHeader header = 3;
|
|
||||||
|
|
||||||
required Transaction transaction = 1;
|
|
||||||
repeated Action action = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message AddActionsResponse {
|
|
||||||
}
|
|
||||||
|
|
||||||
message BeginTransactionRequest {
|
|
||||||
optional InternalHeader header = 3;
|
|
||||||
|
|
||||||
required string app = 1;
|
|
||||||
optional bool allow_multiple_eg = 2 [default = false];
|
|
||||||
optional string database_id = 4;
|
|
||||||
|
|
||||||
enum TransactionMode {
|
|
||||||
UNKNOWN = 0;
|
|
||||||
READ_ONLY = 1;
|
|
||||||
READ_WRITE = 2;
|
|
||||||
}
|
|
||||||
optional TransactionMode mode = 5 [default = UNKNOWN];
|
|
||||||
|
|
||||||
optional Transaction previous_transaction = 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
message CommitResponse {
|
|
||||||
optional Cost cost = 1;
|
|
||||||
|
|
||||||
repeated group Version = 3 {
|
|
||||||
required Reference root_entity_key = 4;
|
|
||||||
required int64 version = 5;
|
|
||||||
}
|
|
||||||
}
|
|
54
vendor/google.golang.org/appengine/internal/identity.go
generated
vendored
54
vendor/google.golang.org/appengine/internal/identity.go
generated
vendored
@ -1,54 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// This is set to true in identity_classic.go, which is behind the appengine build tag.
|
|
||||||
// The appengine build tag is set for the first generation runtimes (<= Go 1.9) but not
|
|
||||||
// the second generation runtimes (>= Go 1.11), so this indicates whether we're on a
|
|
||||||
// first-gen runtime. See IsStandard below for the second-gen check.
|
|
||||||
appengineStandard bool
|
|
||||||
|
|
||||||
// This is set to true in identity_flex.go, which is behind the appenginevm build tag.
|
|
||||||
appengineFlex bool
|
|
||||||
)
|
|
||||||
|
|
||||||
// AppID is the implementation of the wrapper function of the same name in
|
|
||||||
// ../identity.go. See that file for commentary.
|
|
||||||
func AppID(c context.Context) string {
|
|
||||||
return appID(FullyQualifiedAppID(c))
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsStandard is the implementation of the wrapper function of the same name in
|
|
||||||
// ../appengine.go. See that file for commentary.
|
|
||||||
func IsStandard() bool {
|
|
||||||
// appengineStandard will be true for first-gen runtimes (<= Go 1.9) but not
|
|
||||||
// second-gen (>= Go 1.11).
|
|
||||||
return appengineStandard || IsSecondGen()
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsSecondGen is the implementation of the wrapper function of the same name in
|
|
||||||
// ../appengine.go. See that file for commentary.
|
|
||||||
func IsSecondGen() bool {
|
|
||||||
// Second-gen runtimes set $GAE_ENV so we use that to check if we're on a second-gen runtime.
|
|
||||||
return os.Getenv("GAE_ENV") == "standard"
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsFlex is the implementation of the wrapper function of the same name in
|
|
||||||
// ../appengine.go. See that file for commentary.
|
|
||||||
func IsFlex() bool {
|
|
||||||
return appengineFlex
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsAppEngine is the implementation of the wrapper function of the same name in
|
|
||||||
// ../appengine.go. See that file for commentary.
|
|
||||||
func IsAppEngine() bool {
|
|
||||||
return IsStandard() || IsFlex()
|
|
||||||
}
|
|
62
vendor/google.golang.org/appengine/internal/identity_classic.go
generated
vendored
62
vendor/google.golang.org/appengine/internal/identity_classic.go
generated
vendored
@ -1,62 +0,0 @@
|
|||||||
// Copyright 2015 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build appengine
|
|
||||||
// +build appengine
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
"appengine"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
appengineStandard = true
|
|
||||||
}
|
|
||||||
|
|
||||||
func DefaultVersionHostname(ctx context.Context) string {
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
panic(errNotAppEngineContext)
|
|
||||||
}
|
|
||||||
return appengine.DefaultVersionHostname(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Datacenter(_ context.Context) string { return appengine.Datacenter() }
|
|
||||||
func ServerSoftware() string { return appengine.ServerSoftware() }
|
|
||||||
func InstanceID() string { return appengine.InstanceID() }
|
|
||||||
func IsDevAppServer() bool { return appengine.IsDevAppServer() }
|
|
||||||
|
|
||||||
func RequestID(ctx context.Context) string {
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
panic(errNotAppEngineContext)
|
|
||||||
}
|
|
||||||
return appengine.RequestID(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func ModuleName(ctx context.Context) string {
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
panic(errNotAppEngineContext)
|
|
||||||
}
|
|
||||||
return appengine.ModuleName(c)
|
|
||||||
}
|
|
||||||
func VersionID(ctx context.Context) string {
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
panic(errNotAppEngineContext)
|
|
||||||
}
|
|
||||||
return appengine.VersionID(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func fullyQualifiedAppID(ctx context.Context) string {
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
panic(errNotAppEngineContext)
|
|
||||||
}
|
|
||||||
return c.FullyQualifiedAppID()
|
|
||||||
}
|
|
12
vendor/google.golang.org/appengine/internal/identity_flex.go
generated
vendored
12
vendor/google.golang.org/appengine/internal/identity_flex.go
generated
vendored
@ -1,12 +0,0 @@
|
|||||||
// Copyright 2018 Google LLC. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build appenginevm
|
|
||||||
// +build appenginevm
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
appengineFlex = true
|
|
||||||
}
|
|
134
vendor/google.golang.org/appengine/internal/identity_vm.go
generated
vendored
134
vendor/google.golang.org/appengine/internal/identity_vm.go
generated
vendored
@ -1,134 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build !appengine
|
|
||||||
// +build !appengine
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
"os"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// These functions are implementations of the wrapper functions
|
|
||||||
// in ../appengine/identity.go. See that file for commentary.
|
|
||||||
|
|
||||||
const (
|
|
||||||
hDefaultVersionHostname = "X-AppEngine-Default-Version-Hostname"
|
|
||||||
hRequestLogId = "X-AppEngine-Request-Log-Id"
|
|
||||||
hDatacenter = "X-AppEngine-Datacenter"
|
|
||||||
)
|
|
||||||
|
|
||||||
func ctxHeaders(ctx context.Context) http.Header {
|
|
||||||
c := fromContext(ctx)
|
|
||||||
if c == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return c.Request().Header
|
|
||||||
}
|
|
||||||
|
|
||||||
func DefaultVersionHostname(ctx context.Context) string {
|
|
||||||
return ctxHeaders(ctx).Get(hDefaultVersionHostname)
|
|
||||||
}
|
|
||||||
|
|
||||||
func RequestID(ctx context.Context) string {
|
|
||||||
return ctxHeaders(ctx).Get(hRequestLogId)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Datacenter(ctx context.Context) string {
|
|
||||||
if dc := ctxHeaders(ctx).Get(hDatacenter); dc != "" {
|
|
||||||
return dc
|
|
||||||
}
|
|
||||||
// If the header isn't set, read zone from the metadata service.
|
|
||||||
// It has the format projects/[NUMERIC_PROJECT_ID]/zones/[ZONE]
|
|
||||||
zone, err := getMetadata("instance/zone")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Datacenter: %v", err)
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
parts := strings.Split(string(zone), "/")
|
|
||||||
if len(parts) == 0 {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return parts[len(parts)-1]
|
|
||||||
}
|
|
||||||
|
|
||||||
func ServerSoftware() string {
|
|
||||||
// TODO(dsymonds): Remove fallback when we've verified this.
|
|
||||||
if s := os.Getenv("SERVER_SOFTWARE"); s != "" {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
if s := os.Getenv("GAE_ENV"); s != "" {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
return "Google App Engine/1.x.x"
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(dsymonds): Remove the metadata fetches.
|
|
||||||
|
|
||||||
func ModuleName(_ context.Context) string {
|
|
||||||
if s := os.Getenv("GAE_MODULE_NAME"); s != "" {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
if s := os.Getenv("GAE_SERVICE"); s != "" {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
return string(mustGetMetadata("instance/attributes/gae_backend_name"))
|
|
||||||
}
|
|
||||||
|
|
||||||
func VersionID(_ context.Context) string {
|
|
||||||
if s1, s2 := os.Getenv("GAE_MODULE_VERSION"), os.Getenv("GAE_MINOR_VERSION"); s1 != "" && s2 != "" {
|
|
||||||
return s1 + "." + s2
|
|
||||||
}
|
|
||||||
if s1, s2 := os.Getenv("GAE_VERSION"), os.Getenv("GAE_DEPLOYMENT_ID"); s1 != "" && s2 != "" {
|
|
||||||
return s1 + "." + s2
|
|
||||||
}
|
|
||||||
return string(mustGetMetadata("instance/attributes/gae_backend_version")) + "." + string(mustGetMetadata("instance/attributes/gae_backend_minor_version"))
|
|
||||||
}
|
|
||||||
|
|
||||||
func InstanceID() string {
|
|
||||||
if s := os.Getenv("GAE_MODULE_INSTANCE"); s != "" {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
if s := os.Getenv("GAE_INSTANCE"); s != "" {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
return string(mustGetMetadata("instance/attributes/gae_backend_instance"))
|
|
||||||
}
|
|
||||||
|
|
||||||
func partitionlessAppID() string {
|
|
||||||
// gae_project has everything except the partition prefix.
|
|
||||||
if appID := os.Getenv("GAE_LONG_APP_ID"); appID != "" {
|
|
||||||
return appID
|
|
||||||
}
|
|
||||||
if project := os.Getenv("GOOGLE_CLOUD_PROJECT"); project != "" {
|
|
||||||
return project
|
|
||||||
}
|
|
||||||
return string(mustGetMetadata("instance/attributes/gae_project"))
|
|
||||||
}
|
|
||||||
|
|
||||||
func fullyQualifiedAppID(_ context.Context) string {
|
|
||||||
if s := os.Getenv("GAE_APPLICATION"); s != "" {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
appID := partitionlessAppID()
|
|
||||||
|
|
||||||
part := os.Getenv("GAE_PARTITION")
|
|
||||||
if part == "" {
|
|
||||||
part = string(mustGetMetadata("instance/attributes/gae_partition"))
|
|
||||||
}
|
|
||||||
|
|
||||||
if part != "" {
|
|
||||||
appID = part + "~" + appID
|
|
||||||
}
|
|
||||||
return appID
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsDevAppServer() bool {
|
|
||||||
return os.Getenv("RUN_WITH_DEVAPPSERVER") != "" || os.Getenv("GAE_ENV") == "localdev"
|
|
||||||
}
|
|
110
vendor/google.golang.org/appengine/internal/internal.go
generated
vendored
110
vendor/google.golang.org/appengine/internal/internal.go
generated
vendored
@ -1,110 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
// Package internal provides support for package appengine.
|
|
||||||
//
|
|
||||||
// Programs should not use this package directly. Its API is not stable.
|
|
||||||
// Use packages appengine and appengine/* instead.
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
|
|
||||||
remotepb "google.golang.org/appengine/internal/remote_api"
|
|
||||||
)
|
|
||||||
|
|
||||||
// errorCodeMaps is a map of service name to the error code map for the service.
|
|
||||||
var errorCodeMaps = make(map[string]map[int32]string)
|
|
||||||
|
|
||||||
// RegisterErrorCodeMap is called from API implementations to register their
|
|
||||||
// error code map. This should only be called from init functions.
|
|
||||||
func RegisterErrorCodeMap(service string, m map[int32]string) {
|
|
||||||
errorCodeMaps[service] = m
|
|
||||||
}
|
|
||||||
|
|
||||||
type timeoutCodeKey struct {
|
|
||||||
service string
|
|
||||||
code int32
|
|
||||||
}
|
|
||||||
|
|
||||||
// timeoutCodes is the set of service+code pairs that represent timeouts.
|
|
||||||
var timeoutCodes = make(map[timeoutCodeKey]bool)
|
|
||||||
|
|
||||||
func RegisterTimeoutErrorCode(service string, code int32) {
|
|
||||||
timeoutCodes[timeoutCodeKey{service, code}] = true
|
|
||||||
}
|
|
||||||
|
|
||||||
// APIError is the type returned by appengine.Context's Call method
|
|
||||||
// when an API call fails in an API-specific way. This may be, for instance,
|
|
||||||
// a taskqueue API call failing with TaskQueueServiceError::UNKNOWN_QUEUE.
|
|
||||||
type APIError struct {
|
|
||||||
Service string
|
|
||||||
Detail string
|
|
||||||
Code int32 // API-specific error code
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *APIError) Error() string {
|
|
||||||
if e.Code == 0 {
|
|
||||||
if e.Detail == "" {
|
|
||||||
return "APIError <empty>"
|
|
||||||
}
|
|
||||||
return e.Detail
|
|
||||||
}
|
|
||||||
s := fmt.Sprintf("API error %d", e.Code)
|
|
||||||
if m, ok := errorCodeMaps[e.Service]; ok {
|
|
||||||
s += " (" + e.Service + ": " + m[e.Code] + ")"
|
|
||||||
} else {
|
|
||||||
// Shouldn't happen, but provide a bit more detail if it does.
|
|
||||||
s = e.Service + " " + s
|
|
||||||
}
|
|
||||||
if e.Detail != "" {
|
|
||||||
s += ": " + e.Detail
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *APIError) IsTimeout() bool {
|
|
||||||
return timeoutCodes[timeoutCodeKey{e.Service, e.Code}]
|
|
||||||
}
|
|
||||||
|
|
||||||
// CallError is the type returned by appengine.Context's Call method when an
|
|
||||||
// API call fails in a generic way, such as RpcError::CAPABILITY_DISABLED.
|
|
||||||
type CallError struct {
|
|
||||||
Detail string
|
|
||||||
Code int32
|
|
||||||
// TODO: Remove this if we get a distinguishable error code.
|
|
||||||
Timeout bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *CallError) Error() string {
|
|
||||||
var msg string
|
|
||||||
switch remotepb.RpcError_ErrorCode(e.Code) {
|
|
||||||
case remotepb.RpcError_UNKNOWN:
|
|
||||||
return e.Detail
|
|
||||||
case remotepb.RpcError_OVER_QUOTA:
|
|
||||||
msg = "Over quota"
|
|
||||||
case remotepb.RpcError_CAPABILITY_DISABLED:
|
|
||||||
msg = "Capability disabled"
|
|
||||||
case remotepb.RpcError_CANCELLED:
|
|
||||||
msg = "Canceled"
|
|
||||||
default:
|
|
||||||
msg = fmt.Sprintf("Call error %d", e.Code)
|
|
||||||
}
|
|
||||||
s := msg + ": " + e.Detail
|
|
||||||
if e.Timeout {
|
|
||||||
s += " (timeout)"
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *CallError) IsTimeout() bool {
|
|
||||||
return e.Timeout
|
|
||||||
}
|
|
||||||
|
|
||||||
// NamespaceMods is a map from API service to a function that will mutate an RPC request to attach a namespace.
|
|
||||||
// The function should be prepared to be called on the same message more than once; it should only modify the
|
|
||||||
// RPC request the first time.
|
|
||||||
var NamespaceMods = make(map[string]func(m proto.Message, namespace string))
|
|
1313
vendor/google.golang.org/appengine/internal/log/log_service.pb.go
generated
vendored
1313
vendor/google.golang.org/appengine/internal/log/log_service.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
150
vendor/google.golang.org/appengine/internal/log/log_service.proto
generated
vendored
150
vendor/google.golang.org/appengine/internal/log/log_service.proto
generated
vendored
@ -1,150 +0,0 @@
|
|||||||
syntax = "proto2";
|
|
||||||
option go_package = "log";
|
|
||||||
|
|
||||||
package appengine;
|
|
||||||
|
|
||||||
message LogServiceError {
|
|
||||||
enum ErrorCode {
|
|
||||||
OK = 0;
|
|
||||||
INVALID_REQUEST = 1;
|
|
||||||
STORAGE_ERROR = 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message UserAppLogLine {
|
|
||||||
required int64 timestamp_usec = 1;
|
|
||||||
required int64 level = 2;
|
|
||||||
required string message = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message UserAppLogGroup {
|
|
||||||
repeated UserAppLogLine log_line = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message FlushRequest {
|
|
||||||
optional bytes logs = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message SetStatusRequest {
|
|
||||||
required string status = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
message LogOffset {
|
|
||||||
optional bytes request_id = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message LogLine {
|
|
||||||
required int64 time = 1;
|
|
||||||
required int32 level = 2;
|
|
||||||
required string log_message = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message RequestLog {
|
|
||||||
required string app_id = 1;
|
|
||||||
optional string module_id = 37 [default="default"];
|
|
||||||
required string version_id = 2;
|
|
||||||
required bytes request_id = 3;
|
|
||||||
optional LogOffset offset = 35;
|
|
||||||
required string ip = 4;
|
|
||||||
optional string nickname = 5;
|
|
||||||
required int64 start_time = 6;
|
|
||||||
required int64 end_time = 7;
|
|
||||||
required int64 latency = 8;
|
|
||||||
required int64 mcycles = 9;
|
|
||||||
required string method = 10;
|
|
||||||
required string resource = 11;
|
|
||||||
required string http_version = 12;
|
|
||||||
required int32 status = 13;
|
|
||||||
required int64 response_size = 14;
|
|
||||||
optional string referrer = 15;
|
|
||||||
optional string user_agent = 16;
|
|
||||||
required string url_map_entry = 17;
|
|
||||||
required string combined = 18;
|
|
||||||
optional int64 api_mcycles = 19;
|
|
||||||
optional string host = 20;
|
|
||||||
optional double cost = 21;
|
|
||||||
|
|
||||||
optional string task_queue_name = 22;
|
|
||||||
optional string task_name = 23;
|
|
||||||
|
|
||||||
optional bool was_loading_request = 24;
|
|
||||||
optional int64 pending_time = 25;
|
|
||||||
optional int32 replica_index = 26 [default = -1];
|
|
||||||
optional bool finished = 27 [default = true];
|
|
||||||
optional bytes clone_key = 28;
|
|
||||||
|
|
||||||
repeated LogLine line = 29;
|
|
||||||
|
|
||||||
optional bool lines_incomplete = 36;
|
|
||||||
optional bytes app_engine_release = 38;
|
|
||||||
|
|
||||||
optional int32 exit_reason = 30;
|
|
||||||
optional bool was_throttled_for_time = 31;
|
|
||||||
optional bool was_throttled_for_requests = 32;
|
|
||||||
optional int64 throttled_time = 33;
|
|
||||||
|
|
||||||
optional bytes server_name = 34;
|
|
||||||
}
|
|
||||||
|
|
||||||
message LogModuleVersion {
|
|
||||||
optional string module_id = 1 [default="default"];
|
|
||||||
optional string version_id = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message LogReadRequest {
|
|
||||||
required string app_id = 1;
|
|
||||||
repeated string version_id = 2;
|
|
||||||
repeated LogModuleVersion module_version = 19;
|
|
||||||
|
|
||||||
optional int64 start_time = 3;
|
|
||||||
optional int64 end_time = 4;
|
|
||||||
optional LogOffset offset = 5;
|
|
||||||
repeated bytes request_id = 6;
|
|
||||||
|
|
||||||
optional int32 minimum_log_level = 7;
|
|
||||||
optional bool include_incomplete = 8;
|
|
||||||
optional int64 count = 9;
|
|
||||||
|
|
||||||
optional string combined_log_regex = 14;
|
|
||||||
optional string host_regex = 15;
|
|
||||||
optional int32 replica_index = 16;
|
|
||||||
|
|
||||||
optional bool include_app_logs = 10;
|
|
||||||
optional int32 app_logs_per_request = 17;
|
|
||||||
optional bool include_host = 11;
|
|
||||||
optional bool include_all = 12;
|
|
||||||
optional bool cache_iterator = 13;
|
|
||||||
optional int32 num_shards = 18;
|
|
||||||
}
|
|
||||||
|
|
||||||
message LogReadResponse {
|
|
||||||
repeated RequestLog log = 1;
|
|
||||||
optional LogOffset offset = 2;
|
|
||||||
optional int64 last_end_time = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
message LogUsageRecord {
|
|
||||||
optional string version_id = 1;
|
|
||||||
optional int32 start_time = 2;
|
|
||||||
optional int32 end_time = 3;
|
|
||||||
optional int64 count = 4;
|
|
||||||
optional int64 total_size = 5;
|
|
||||||
optional int32 records = 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
message LogUsageRequest {
|
|
||||||
required string app_id = 1;
|
|
||||||
repeated string version_id = 2;
|
|
||||||
optional int32 start_time = 3;
|
|
||||||
optional int32 end_time = 4;
|
|
||||||
optional uint32 resolution_hours = 5 [default = 1];
|
|
||||||
optional bool combine_versions = 6;
|
|
||||||
optional int32 usage_version = 7;
|
|
||||||
optional bool versions_only = 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
message LogUsageResponse {
|
|
||||||
repeated LogUsageRecord usage = 1;
|
|
||||||
optional LogUsageRecord summary = 2;
|
|
||||||
}
|
|
17
vendor/google.golang.org/appengine/internal/main.go
generated
vendored
17
vendor/google.golang.org/appengine/internal/main.go
generated
vendored
@ -1,17 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build appengine
|
|
||||||
// +build appengine
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"appengine_internal"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Main() {
|
|
||||||
MainPath = ""
|
|
||||||
appengine_internal.Main()
|
|
||||||
}
|
|
7
vendor/google.golang.org/appengine/internal/main_common.go
generated
vendored
7
vendor/google.golang.org/appengine/internal/main_common.go
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
package internal
|
|
||||||
|
|
||||||
// MainPath stores the file path of the main package. On App Engine Standard
|
|
||||||
// using Go version 1.9 and below, this will be unset. On App Engine Flex and
|
|
||||||
// App Engine Standard second-gen (Go 1.11 and above), this will be the
|
|
||||||
// filepath to package main.
|
|
||||||
var MainPath string
|
|
70
vendor/google.golang.org/appengine/internal/main_vm.go
generated
vendored
70
vendor/google.golang.org/appengine/internal/main_vm.go
generated
vendored
@ -1,70 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
//go:build !appengine
|
|
||||||
// +build !appengine
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
import (
|
|
||||||
"io"
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
"net/url"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
"runtime"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Main() {
|
|
||||||
MainPath = filepath.Dir(findMainPath())
|
|
||||||
installHealthChecker(http.DefaultServeMux)
|
|
||||||
|
|
||||||
port := "8080"
|
|
||||||
if s := os.Getenv("PORT"); s != "" {
|
|
||||||
port = s
|
|
||||||
}
|
|
||||||
|
|
||||||
host := ""
|
|
||||||
if IsDevAppServer() {
|
|
||||||
host = "127.0.0.1"
|
|
||||||
}
|
|
||||||
if err := http.ListenAndServe(host+":"+port, Middleware(http.DefaultServeMux)); err != nil {
|
|
||||||
log.Fatalf("http.ListenAndServe: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find the path to package main by looking at the root Caller.
|
|
||||||
func findMainPath() string {
|
|
||||||
pc := make([]uintptr, 100)
|
|
||||||
n := runtime.Callers(2, pc)
|
|
||||||
frames := runtime.CallersFrames(pc[:n])
|
|
||||||
for {
|
|
||||||
frame, more := frames.Next()
|
|
||||||
// Tests won't have package main, instead they have testing.tRunner
|
|
||||||
if frame.Function == "main.main" || frame.Function == "testing.tRunner" {
|
|
||||||
return frame.File
|
|
||||||
}
|
|
||||||
if !more {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func installHealthChecker(mux *http.ServeMux) {
|
|
||||||
// If no health check handler has been installed by this point, add a trivial one.
|
|
||||||
const healthPath = "/_ah/health"
|
|
||||||
hreq := &http.Request{
|
|
||||||
Method: "GET",
|
|
||||||
URL: &url.URL{
|
|
||||||
Path: healthPath,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
if _, pat := mux.Handler(hreq); pat != healthPath {
|
|
||||||
mux.HandleFunc(healthPath, func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
io.WriteString(w, "ok")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
60
vendor/google.golang.org/appengine/internal/metadata.go
generated
vendored
60
vendor/google.golang.org/appengine/internal/metadata.go
generated
vendored
@ -1,60 +0,0 @@
|
|||||||
// Copyright 2014 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
// This file has code for accessing metadata.
|
|
||||||
//
|
|
||||||
// References:
|
|
||||||
// https://cloud.google.com/compute/docs/metadata
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"net/http"
|
|
||||||
"net/url"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
metadataHost = "metadata"
|
|
||||||
metadataPath = "/computeMetadata/v1/"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
metadataRequestHeaders = http.Header{
|
|
||||||
"Metadata-Flavor": []string{"Google"},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO(dsymonds): Do we need to support default values, like Python?
|
|
||||||
func mustGetMetadata(key string) []byte {
|
|
||||||
b, err := getMetadata(key)
|
|
||||||
if err != nil {
|
|
||||||
panic(fmt.Sprintf("Metadata fetch failed for '%s': %v", key, err))
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func getMetadata(key string) ([]byte, error) {
|
|
||||||
// TODO(dsymonds): May need to use url.Parse to support keys with query args.
|
|
||||||
req := &http.Request{
|
|
||||||
Method: "GET",
|
|
||||||
URL: &url.URL{
|
|
||||||
Scheme: "http",
|
|
||||||
Host: metadataHost,
|
|
||||||
Path: metadataPath + key,
|
|
||||||
},
|
|
||||||
Header: metadataRequestHeaders,
|
|
||||||
Host: metadataHost,
|
|
||||||
}
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
|
||||||
if resp.StatusCode != 200 {
|
|
||||||
return nil, fmt.Errorf("metadata server returned HTTP %d", resp.StatusCode)
|
|
||||||
}
|
|
||||||
return ioutil.ReadAll(resp.Body)
|
|
||||||
}
|
|
56
vendor/google.golang.org/appengine/internal/net.go
generated
vendored
56
vendor/google.golang.org/appengine/internal/net.go
generated
vendored
@ -1,56 +0,0 @@
|
|||||||
// Copyright 2014 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
// This file implements a network dialer that limits the number of concurrent connections.
|
|
||||||
// It is only used for API calls.
|
|
||||||
|
|
||||||
import (
|
|
||||||
"log"
|
|
||||||
"net"
|
|
||||||
"runtime"
|
|
||||||
"sync"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
var limitSem = make(chan int, 100) // TODO(dsymonds): Use environment variable.
|
|
||||||
|
|
||||||
func limitRelease() {
|
|
||||||
// non-blocking
|
|
||||||
select {
|
|
||||||
case <-limitSem:
|
|
||||||
default:
|
|
||||||
// This should not normally happen.
|
|
||||||
log.Print("appengine: unbalanced limitSem release!")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func limitDial(network, addr string) (net.Conn, error) {
|
|
||||||
limitSem <- 1
|
|
||||||
|
|
||||||
// Dial with a timeout in case the API host is MIA.
|
|
||||||
// The connection should normally be very fast.
|
|
||||||
conn, err := net.DialTimeout(network, addr, 10*time.Second)
|
|
||||||
if err != nil {
|
|
||||||
limitRelease()
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
lc := &limitConn{Conn: conn}
|
|
||||||
runtime.SetFinalizer(lc, (*limitConn).Close) // shouldn't usually be required
|
|
||||||
return lc, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type limitConn struct {
|
|
||||||
close sync.Once
|
|
||||||
net.Conn
|
|
||||||
}
|
|
||||||
|
|
||||||
func (lc *limitConn) Close() error {
|
|
||||||
defer lc.close.Do(func() {
|
|
||||||
limitRelease()
|
|
||||||
runtime.SetFinalizer(lc, nil)
|
|
||||||
})
|
|
||||||
return lc.Conn.Close()
|
|
||||||
}
|
|
40
vendor/google.golang.org/appengine/internal/regen.sh
generated
vendored
40
vendor/google.golang.org/appengine/internal/regen.sh
generated
vendored
@ -1,40 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
#
|
|
||||||
# This script rebuilds the generated code for the protocol buffers.
|
|
||||||
# To run this you will need protoc and goprotobuf installed;
|
|
||||||
# see https://github.com/golang/protobuf for instructions.
|
|
||||||
|
|
||||||
PKG=google.golang.org/appengine
|
|
||||||
|
|
||||||
function die() {
|
|
||||||
echo 1>&2 $*
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Sanity check that the right tools are accessible.
|
|
||||||
for tool in go protoc protoc-gen-go; do
|
|
||||||
q=$(which $tool) || die "didn't find $tool"
|
|
||||||
echo 1>&2 "$tool: $q"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo -n 1>&2 "finding package dir... "
|
|
||||||
pkgdir=$(go list -f '{{.Dir}}' $PKG)
|
|
||||||
echo 1>&2 $pkgdir
|
|
||||||
base=$(echo $pkgdir | sed "s,/$PKG\$,,")
|
|
||||||
echo 1>&2 "base: $base"
|
|
||||||
cd $base
|
|
||||||
|
|
||||||
# Run protoc once per package.
|
|
||||||
for dir in $(find $PKG/internal -name '*.proto' | xargs dirname | sort | uniq); do
|
|
||||||
echo 1>&2 "* $dir"
|
|
||||||
protoc --go_out=. $dir/*.proto
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in $(find $PKG/internal -name '*.pb.go'); do
|
|
||||||
# Remove proto.RegisterEnum calls.
|
|
||||||
# These cause duplicate registration panics when these packages
|
|
||||||
# are used on classic App Engine. proto.RegisterEnum only affects
|
|
||||||
# parsing the text format; we don't care about that.
|
|
||||||
# https://code.google.com/p/googleappengine/issues/detail?id=11670#c17
|
|
||||||
sed -i '/proto.RegisterEnum/d' $f
|
|
||||||
done
|
|
361
vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go
generated
vendored
361
vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go
generated
vendored
@ -1,361 +0,0 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
||||||
// source: google.golang.org/appengine/internal/remote_api/remote_api.proto
|
|
||||||
|
|
||||||
package remote_api
|
|
||||||
|
|
||||||
import proto "github.com/golang/protobuf/proto"
|
|
||||||
import fmt "fmt"
|
|
||||||
import math "math"
|
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
|
||||||
var _ = proto.Marshal
|
|
||||||
var _ = fmt.Errorf
|
|
||||||
var _ = math.Inf
|
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
|
||||||
// is compatible with the proto package it is being compiled against.
|
|
||||||
// A compilation error at this line likely means your copy of the
|
|
||||||
// proto package needs to be updated.
|
|
||||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
|
||||||
|
|
||||||
type RpcError_ErrorCode int32
|
|
||||||
|
|
||||||
const (
|
|
||||||
RpcError_UNKNOWN RpcError_ErrorCode = 0
|
|
||||||
RpcError_CALL_NOT_FOUND RpcError_ErrorCode = 1
|
|
||||||
RpcError_PARSE_ERROR RpcError_ErrorCode = 2
|
|
||||||
RpcError_SECURITY_VIOLATION RpcError_ErrorCode = 3
|
|
||||||
RpcError_OVER_QUOTA RpcError_ErrorCode = 4
|
|
||||||
RpcError_REQUEST_TOO_LARGE RpcError_ErrorCode = 5
|
|
||||||
RpcError_CAPABILITY_DISABLED RpcError_ErrorCode = 6
|
|
||||||
RpcError_FEATURE_DISABLED RpcError_ErrorCode = 7
|
|
||||||
RpcError_BAD_REQUEST RpcError_ErrorCode = 8
|
|
||||||
RpcError_RESPONSE_TOO_LARGE RpcError_ErrorCode = 9
|
|
||||||
RpcError_CANCELLED RpcError_ErrorCode = 10
|
|
||||||
RpcError_REPLAY_ERROR RpcError_ErrorCode = 11
|
|
||||||
RpcError_DEADLINE_EXCEEDED RpcError_ErrorCode = 12
|
|
||||||
)
|
|
||||||
|
|
||||||
var RpcError_ErrorCode_name = map[int32]string{
|
|
||||||
0: "UNKNOWN",
|
|
||||||
1: "CALL_NOT_FOUND",
|
|
||||||
2: "PARSE_ERROR",
|
|
||||||
3: "SECURITY_VIOLATION",
|
|
||||||
4: "OVER_QUOTA",
|
|
||||||
5: "REQUEST_TOO_LARGE",
|
|
||||||
6: "CAPABILITY_DISABLED",
|
|
||||||
7: "FEATURE_DISABLED",
|
|
||||||
8: "BAD_REQUEST",
|
|
||||||
9: "RESPONSE_TOO_LARGE",
|
|
||||||
10: "CANCELLED",
|
|
||||||
11: "REPLAY_ERROR",
|
|
||||||
12: "DEADLINE_EXCEEDED",
|
|
||||||
}
|
|
||||||
var RpcError_ErrorCode_value = map[string]int32{
|
|
||||||
"UNKNOWN": 0,
|
|
||||||
"CALL_NOT_FOUND": 1,
|
|
||||||
"PARSE_ERROR": 2,
|
|
||||||
"SECURITY_VIOLATION": 3,
|
|
||||||
"OVER_QUOTA": 4,
|
|
||||||
"REQUEST_TOO_LARGE": 5,
|
|
||||||
"CAPABILITY_DISABLED": 6,
|
|
||||||
"FEATURE_DISABLED": 7,
|
|
||||||
"BAD_REQUEST": 8,
|
|
||||||
"RESPONSE_TOO_LARGE": 9,
|
|
||||||
"CANCELLED": 10,
|
|
||||||
"REPLAY_ERROR": 11,
|
|
||||||
"DEADLINE_EXCEEDED": 12,
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x RpcError_ErrorCode) Enum() *RpcError_ErrorCode {
|
|
||||||
p := new(RpcError_ErrorCode)
|
|
||||||
*p = x
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
func (x RpcError_ErrorCode) String() string {
|
|
||||||
return proto.EnumName(RpcError_ErrorCode_name, int32(x))
|
|
||||||
}
|
|
||||||
func (x *RpcError_ErrorCode) UnmarshalJSON(data []byte) error {
|
|
||||||
value, err := proto.UnmarshalJSONEnum(RpcError_ErrorCode_value, data, "RpcError_ErrorCode")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*x = RpcError_ErrorCode(value)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
func (RpcError_ErrorCode) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_remote_api_1978114ec33a273d, []int{2, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
type Request struct {
|
|
||||||
ServiceName *string `protobuf:"bytes,2,req,name=service_name,json=serviceName" json:"service_name,omitempty"`
|
|
||||||
Method *string `protobuf:"bytes,3,req,name=method" json:"method,omitempty"`
|
|
||||||
Request []byte `protobuf:"bytes,4,req,name=request" json:"request,omitempty"`
|
|
||||||
RequestId *string `protobuf:"bytes,5,opt,name=request_id,json=requestId" json:"request_id,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Request) Reset() { *m = Request{} }
|
|
||||||
func (m *Request) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*Request) ProtoMessage() {}
|
|
||||||
func (*Request) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_remote_api_1978114ec33a273d, []int{0}
|
|
||||||
}
|
|
||||||
func (m *Request) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_Request.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_Request.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *Request) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_Request.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *Request) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_Request.Size(m)
|
|
||||||
}
|
|
||||||
func (m *Request) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_Request.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_Request proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *Request) GetServiceName() string {
|
|
||||||
if m != nil && m.ServiceName != nil {
|
|
||||||
return *m.ServiceName
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Request) GetMethod() string {
|
|
||||||
if m != nil && m.Method != nil {
|
|
||||||
return *m.Method
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Request) GetRequest() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.Request
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Request) GetRequestId() string {
|
|
||||||
if m != nil && m.RequestId != nil {
|
|
||||||
return *m.RequestId
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type ApplicationError struct {
|
|
||||||
Code *int32 `protobuf:"varint,1,req,name=code" json:"code,omitempty"`
|
|
||||||
Detail *string `protobuf:"bytes,2,req,name=detail" json:"detail,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *ApplicationError) Reset() { *m = ApplicationError{} }
|
|
||||||
func (m *ApplicationError) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*ApplicationError) ProtoMessage() {}
|
|
||||||
func (*ApplicationError) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_remote_api_1978114ec33a273d, []int{1}
|
|
||||||
}
|
|
||||||
func (m *ApplicationError) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_ApplicationError.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *ApplicationError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_ApplicationError.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *ApplicationError) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_ApplicationError.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *ApplicationError) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_ApplicationError.Size(m)
|
|
||||||
}
|
|
||||||
func (m *ApplicationError) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_ApplicationError.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_ApplicationError proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *ApplicationError) GetCode() int32 {
|
|
||||||
if m != nil && m.Code != nil {
|
|
||||||
return *m.Code
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *ApplicationError) GetDetail() string {
|
|
||||||
if m != nil && m.Detail != nil {
|
|
||||||
return *m.Detail
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type RpcError struct {
|
|
||||||
Code *int32 `protobuf:"varint,1,req,name=code" json:"code,omitempty"`
|
|
||||||
Detail *string `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *RpcError) Reset() { *m = RpcError{} }
|
|
||||||
func (m *RpcError) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*RpcError) ProtoMessage() {}
|
|
||||||
func (*RpcError) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_remote_api_1978114ec33a273d, []int{2}
|
|
||||||
}
|
|
||||||
func (m *RpcError) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_RpcError.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *RpcError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_RpcError.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *RpcError) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_RpcError.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *RpcError) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_RpcError.Size(m)
|
|
||||||
}
|
|
||||||
func (m *RpcError) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_RpcError.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_RpcError proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *RpcError) GetCode() int32 {
|
|
||||||
if m != nil && m.Code != nil {
|
|
||||||
return *m.Code
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *RpcError) GetDetail() string {
|
|
||||||
if m != nil && m.Detail != nil {
|
|
||||||
return *m.Detail
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type Response struct {
|
|
||||||
Response []byte `protobuf:"bytes,1,opt,name=response" json:"response,omitempty"`
|
|
||||||
Exception []byte `protobuf:"bytes,2,opt,name=exception" json:"exception,omitempty"`
|
|
||||||
ApplicationError *ApplicationError `protobuf:"bytes,3,opt,name=application_error,json=applicationError" json:"application_error,omitempty"`
|
|
||||||
JavaException []byte `protobuf:"bytes,4,opt,name=java_exception,json=javaException" json:"java_exception,omitempty"`
|
|
||||||
RpcError *RpcError `protobuf:"bytes,5,opt,name=rpc_error,json=rpcError" json:"rpc_error,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Response) Reset() { *m = Response{} }
|
|
||||||
func (m *Response) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*Response) ProtoMessage() {}
|
|
||||||
func (*Response) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_remote_api_1978114ec33a273d, []int{3}
|
|
||||||
}
|
|
||||||
func (m *Response) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_Response.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_Response.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *Response) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_Response.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *Response) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_Response.Size(m)
|
|
||||||
}
|
|
||||||
func (m *Response) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_Response.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_Response proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *Response) GetResponse() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.Response
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Response) GetException() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.Exception
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Response) GetApplicationError() *ApplicationError {
|
|
||||||
if m != nil {
|
|
||||||
return m.ApplicationError
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Response) GetJavaException() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.JavaException
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Response) GetRpcError() *RpcError {
|
|
||||||
if m != nil {
|
|
||||||
return m.RpcError
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterType((*Request)(nil), "remote_api.Request")
|
|
||||||
proto.RegisterType((*ApplicationError)(nil), "remote_api.ApplicationError")
|
|
||||||
proto.RegisterType((*RpcError)(nil), "remote_api.RpcError")
|
|
||||||
proto.RegisterType((*Response)(nil), "remote_api.Response")
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterFile("google.golang.org/appengine/internal/remote_api/remote_api.proto", fileDescriptor_remote_api_1978114ec33a273d)
|
|
||||||
}
|
|
||||||
|
|
||||||
var fileDescriptor_remote_api_1978114ec33a273d = []byte{
|
|
||||||
// 531 bytes of a gzipped FileDescriptorProto
|
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x51, 0x6e, 0xd3, 0x40,
|
|
||||||
0x10, 0x86, 0xb1, 0x9b, 0x34, 0xf1, 0xc4, 0x2d, 0xdb, 0xa5, 0x14, 0x0b, 0x15, 0x29, 0x44, 0x42,
|
|
||||||
0xca, 0x53, 0x2a, 0x38, 0x00, 0x62, 0x63, 0x6f, 0x91, 0x85, 0x65, 0xa7, 0x6b, 0xbb, 0x50, 0x5e,
|
|
||||||
0x56, 0x2b, 0x67, 0x65, 0x8c, 0x12, 0xaf, 0xd9, 0x98, 0x8a, 0x17, 0x6e, 0xc0, 0xb5, 0x38, 0x0c,
|
|
||||||
0xb7, 0x40, 0x36, 0x6e, 0x63, 0xf5, 0x89, 0xb7, 0x7f, 0x7e, 0x7b, 0xe6, 0x1b, 0xcd, 0xcc, 0xc2,
|
|
||||||
0xbb, 0x5c, 0xa9, 0x7c, 0x23, 0x17, 0xb9, 0xda, 0x88, 0x32, 0x5f, 0x28, 0x9d, 0x5f, 0x88, 0xaa,
|
|
||||||
0x92, 0x65, 0x5e, 0x94, 0xf2, 0xa2, 0x28, 0x6b, 0xa9, 0x4b, 0xb1, 0xb9, 0xd0, 0x72, 0xab, 0x6a,
|
|
||||||
0xc9, 0x45, 0x55, 0xf4, 0xe4, 0xa2, 0xd2, 0xaa, 0x56, 0x18, 0xf6, 0xce, 0xec, 0x27, 0x8c, 0x98,
|
|
||||||
0xfc, 0xf6, 0x5d, 0xee, 0x6a, 0xfc, 0x12, 0xec, 0x9d, 0xd4, 0xb7, 0x45, 0x26, 0x79, 0x29, 0xb6,
|
|
||||||
0xd2, 0x31, 0xa7, 0xe6, 0xdc, 0x62, 0x93, 0xce, 0x0b, 0xc5, 0x56, 0xe2, 0x33, 0x38, 0xdc, 0xca,
|
|
||||||
0xfa, 0x8b, 0x5a, 0x3b, 0x07, 0xed, 0xc7, 0x2e, 0xc2, 0x0e, 0x8c, 0xf4, 0xbf, 0x2a, 0xce, 0x60,
|
|
||||||
0x6a, 0xce, 0x6d, 0x76, 0x17, 0xe2, 0x17, 0x00, 0x9d, 0xe4, 0xc5, 0xda, 0x19, 0x4e, 0x8d, 0xb9,
|
|
||||||
0xc5, 0xac, 0xce, 0xf1, 0xd7, 0xb3, 0xb7, 0x80, 0x48, 0x55, 0x6d, 0x8a, 0x4c, 0xd4, 0x85, 0x2a,
|
|
||||||
0xa9, 0xd6, 0x4a, 0x63, 0x0c, 0x83, 0x4c, 0xad, 0xa5, 0x63, 0x4c, 0xcd, 0xf9, 0x90, 0xb5, 0xba,
|
|
||||||
0x01, 0xaf, 0x65, 0x2d, 0x8a, 0x4d, 0xd7, 0x55, 0x17, 0xcd, 0x7e, 0x9b, 0x30, 0x66, 0x55, 0xf6,
|
|
||||||
0x7f, 0x89, 0x46, 0x2f, 0xf1, 0x97, 0x09, 0x56, 0x9b, 0xe5, 0x36, 0x7f, 0x4d, 0x60, 0x94, 0x86,
|
|
||||||
0x1f, 0xc2, 0xe8, 0x63, 0x88, 0x1e, 0x61, 0x0c, 0xc7, 0x2e, 0x09, 0x02, 0x1e, 0x46, 0x09, 0xbf,
|
|
||||||
0x8c, 0xd2, 0xd0, 0x43, 0x06, 0x7e, 0x0c, 0x93, 0x15, 0x61, 0x31, 0xe5, 0x94, 0xb1, 0x88, 0x21,
|
|
||||||
0x13, 0x9f, 0x01, 0x8e, 0xa9, 0x9b, 0x32, 0x3f, 0xb9, 0xe1, 0xd7, 0x7e, 0x14, 0x90, 0xc4, 0x8f,
|
|
||||||
0x42, 0x74, 0x80, 0x8f, 0x01, 0xa2, 0x6b, 0xca, 0xf8, 0x55, 0x1a, 0x25, 0x04, 0x0d, 0xf0, 0x53,
|
|
||||||
0x38, 0x61, 0xf4, 0x2a, 0xa5, 0x71, 0xc2, 0x93, 0x28, 0xe2, 0x01, 0x61, 0xef, 0x29, 0x1a, 0xe2,
|
|
||||||
0x67, 0xf0, 0xc4, 0x25, 0x2b, 0xb2, 0xf4, 0x83, 0xa6, 0x80, 0xe7, 0xc7, 0x64, 0x19, 0x50, 0x0f,
|
|
||||||
0x1d, 0xe2, 0x53, 0x40, 0x97, 0x94, 0x24, 0x29, 0xa3, 0x7b, 0x77, 0xd4, 0xe0, 0x97, 0xc4, 0xe3,
|
|
||||||
0x5d, 0x25, 0x34, 0x6e, 0xf0, 0x8c, 0xc6, 0xab, 0x28, 0x8c, 0x69, 0xaf, 0xae, 0x85, 0x8f, 0xc0,
|
|
||||||
0x72, 0x49, 0xe8, 0xd2, 0xa0, 0xc9, 0x03, 0x8c, 0xc0, 0x66, 0x74, 0x15, 0x90, 0x9b, 0xae, 0xef,
|
|
||||||
0x49, 0xd3, 0x8f, 0x47, 0x89, 0x17, 0xf8, 0x21, 0xe5, 0xf4, 0x93, 0x4b, 0xa9, 0x47, 0x3d, 0x64,
|
|
||||||
0xcf, 0xfe, 0x18, 0x30, 0x66, 0x72, 0x57, 0xa9, 0x72, 0x27, 0xf1, 0x73, 0x18, 0xeb, 0x4e, 0x3b,
|
|
||||||
0xc6, 0xd4, 0x98, 0xdb, 0xec, 0x3e, 0xc6, 0xe7, 0x60, 0xc9, 0x1f, 0x99, 0xac, 0x9a, 0x75, 0xb5,
|
|
||||||
0x23, 0xb5, 0xd9, 0xde, 0xc0, 0x3e, 0x9c, 0x88, 0xfd, 0x3a, 0xb9, 0x6c, 0x06, 0xec, 0x1c, 0x4c,
|
|
||||||
0x8d, 0xf9, 0xe4, 0xcd, 0xf9, 0xa2, 0x77, 0x87, 0x0f, 0x77, 0xce, 0x90, 0x78, 0x78, 0x05, 0xaf,
|
|
||||||
0xe0, 0xf8, 0xab, 0xb8, 0x15, 0x7c, 0x4f, 0x1b, 0xb4, 0xb4, 0xa3, 0xc6, 0xa5, 0xf7, 0xc4, 0xd7,
|
|
||||||
0x60, 0xe9, 0x2a, 0xeb, 0x48, 0xc3, 0x96, 0x74, 0xda, 0x27, 0xdd, 0x1d, 0x07, 0x1b, 0xeb, 0x4e,
|
|
||||||
0x2d, 0xed, 0xcf, 0xbd, 0x07, 0xf0, 0x37, 0x00, 0x00, 0xff, 0xff, 0x38, 0xd1, 0x0f, 0x22, 0x4f,
|
|
||||||
0x03, 0x00, 0x00,
|
|
||||||
}
|
|
44
vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto
generated
vendored
44
vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto
generated
vendored
@ -1,44 +0,0 @@
|
|||||||
syntax = "proto2";
|
|
||||||
option go_package = "remote_api";
|
|
||||||
|
|
||||||
package remote_api;
|
|
||||||
|
|
||||||
message Request {
|
|
||||||
required string service_name = 2;
|
|
||||||
required string method = 3;
|
|
||||||
required bytes request = 4;
|
|
||||||
optional string request_id = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
message ApplicationError {
|
|
||||||
required int32 code = 1;
|
|
||||||
required string detail = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message RpcError {
|
|
||||||
enum ErrorCode {
|
|
||||||
UNKNOWN = 0;
|
|
||||||
CALL_NOT_FOUND = 1;
|
|
||||||
PARSE_ERROR = 2;
|
|
||||||
SECURITY_VIOLATION = 3;
|
|
||||||
OVER_QUOTA = 4;
|
|
||||||
REQUEST_TOO_LARGE = 5;
|
|
||||||
CAPABILITY_DISABLED = 6;
|
|
||||||
FEATURE_DISABLED = 7;
|
|
||||||
BAD_REQUEST = 8;
|
|
||||||
RESPONSE_TOO_LARGE = 9;
|
|
||||||
CANCELLED = 10;
|
|
||||||
REPLAY_ERROR = 11;
|
|
||||||
DEADLINE_EXCEEDED = 12;
|
|
||||||
}
|
|
||||||
required int32 code = 1;
|
|
||||||
optional string detail = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Response {
|
|
||||||
optional bytes response = 1;
|
|
||||||
optional bytes exception = 2;
|
|
||||||
optional ApplicationError application_error = 3;
|
|
||||||
optional bytes java_exception = 4;
|
|
||||||
optional RpcError rpc_error = 5;
|
|
||||||
}
|
|
115
vendor/google.golang.org/appengine/internal/transaction.go
generated
vendored
115
vendor/google.golang.org/appengine/internal/transaction.go
generated
vendored
@ -1,115 +0,0 @@
|
|||||||
// Copyright 2014 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package internal
|
|
||||||
|
|
||||||
// This file implements hooks for applying datastore transactions.
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"reflect"
|
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
|
|
||||||
basepb "google.golang.org/appengine/internal/base"
|
|
||||||
pb "google.golang.org/appengine/internal/datastore"
|
|
||||||
)
|
|
||||||
|
|
||||||
var transactionSetters = make(map[reflect.Type]reflect.Value)
|
|
||||||
|
|
||||||
// RegisterTransactionSetter registers a function that sets transaction information
|
|
||||||
// in a protocol buffer message. f should be a function with two arguments,
|
|
||||||
// the first being a protocol buffer type, and the second being *datastore.Transaction.
|
|
||||||
func RegisterTransactionSetter(f interface{}) {
|
|
||||||
v := reflect.ValueOf(f)
|
|
||||||
transactionSetters[v.Type().In(0)] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// applyTransaction applies the transaction t to message pb
|
|
||||||
// by using the relevant setter passed to RegisterTransactionSetter.
|
|
||||||
func applyTransaction(pb proto.Message, t *pb.Transaction) {
|
|
||||||
v := reflect.ValueOf(pb)
|
|
||||||
if f, ok := transactionSetters[v.Type()]; ok {
|
|
||||||
f.Call([]reflect.Value{v, reflect.ValueOf(t)})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var transactionKey = "used for *Transaction"
|
|
||||||
|
|
||||||
func transactionFromContext(ctx context.Context) *transaction {
|
|
||||||
t, _ := ctx.Value(&transactionKey).(*transaction)
|
|
||||||
return t
|
|
||||||
}
|
|
||||||
|
|
||||||
func withTransaction(ctx context.Context, t *transaction) context.Context {
|
|
||||||
return context.WithValue(ctx, &transactionKey, t)
|
|
||||||
}
|
|
||||||
|
|
||||||
type transaction struct {
|
|
||||||
transaction pb.Transaction
|
|
||||||
finished bool
|
|
||||||
}
|
|
||||||
|
|
||||||
var ErrConcurrentTransaction = errors.New("internal: concurrent transaction")
|
|
||||||
|
|
||||||
func RunTransactionOnce(c context.Context, f func(context.Context) error, xg bool, readOnly bool, previousTransaction *pb.Transaction) (*pb.Transaction, error) {
|
|
||||||
if transactionFromContext(c) != nil {
|
|
||||||
return nil, errors.New("nested transactions are not supported")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Begin the transaction.
|
|
||||||
t := &transaction{}
|
|
||||||
req := &pb.BeginTransactionRequest{
|
|
||||||
App: proto.String(FullyQualifiedAppID(c)),
|
|
||||||
}
|
|
||||||
if xg {
|
|
||||||
req.AllowMultipleEg = proto.Bool(true)
|
|
||||||
}
|
|
||||||
if previousTransaction != nil {
|
|
||||||
req.PreviousTransaction = previousTransaction
|
|
||||||
}
|
|
||||||
if readOnly {
|
|
||||||
req.Mode = pb.BeginTransactionRequest_READ_ONLY.Enum()
|
|
||||||
} else {
|
|
||||||
req.Mode = pb.BeginTransactionRequest_READ_WRITE.Enum()
|
|
||||||
}
|
|
||||||
if err := Call(c, "datastore_v3", "BeginTransaction", req, &t.transaction); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call f, rolling back the transaction if f returns a non-nil error, or panics.
|
|
||||||
// The panic is not recovered.
|
|
||||||
defer func() {
|
|
||||||
if t.finished {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
t.finished = true
|
|
||||||
// Ignore the error return value, since we are already returning a non-nil
|
|
||||||
// error (or we're panicking).
|
|
||||||
Call(c, "datastore_v3", "Rollback", &t.transaction, &basepb.VoidProto{})
|
|
||||||
}()
|
|
||||||
if err := f(withTransaction(c, t)); err != nil {
|
|
||||||
return &t.transaction, err
|
|
||||||
}
|
|
||||||
t.finished = true
|
|
||||||
|
|
||||||
// Commit the transaction.
|
|
||||||
res := &pb.CommitResponse{}
|
|
||||||
err := Call(c, "datastore_v3", "Commit", &t.transaction, res)
|
|
||||||
if ae, ok := err.(*APIError); ok {
|
|
||||||
/* TODO: restore this conditional
|
|
||||||
if appengine.IsDevAppServer() {
|
|
||||||
*/
|
|
||||||
// The Python Dev AppServer raises an ApplicationError with error code 2 (which is
|
|
||||||
// Error.CONCURRENT_TRANSACTION) and message "Concurrency exception.".
|
|
||||||
if ae.Code == int32(pb.Error_BAD_REQUEST) && ae.Detail == "ApplicationError: 2 Concurrency exception." {
|
|
||||||
return &t.transaction, ErrConcurrentTransaction
|
|
||||||
}
|
|
||||||
if ae.Code == int32(pb.Error_CONCURRENT_TRANSACTION) {
|
|
||||||
return &t.transaction, ErrConcurrentTransaction
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return &t.transaction, err
|
|
||||||
}
|
|
527
vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go
generated
vendored
527
vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go
generated
vendored
@ -1,527 +0,0 @@
|
|||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
||||||
// source: google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto
|
|
||||||
|
|
||||||
package urlfetch
|
|
||||||
|
|
||||||
import proto "github.com/golang/protobuf/proto"
|
|
||||||
import fmt "fmt"
|
|
||||||
import math "math"
|
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
|
||||||
var _ = proto.Marshal
|
|
||||||
var _ = fmt.Errorf
|
|
||||||
var _ = math.Inf
|
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
|
||||||
// is compatible with the proto package it is being compiled against.
|
|
||||||
// A compilation error at this line likely means your copy of the
|
|
||||||
// proto package needs to be updated.
|
|
||||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
|
||||||
|
|
||||||
type URLFetchServiceError_ErrorCode int32
|
|
||||||
|
|
||||||
const (
|
|
||||||
URLFetchServiceError_OK URLFetchServiceError_ErrorCode = 0
|
|
||||||
URLFetchServiceError_INVALID_URL URLFetchServiceError_ErrorCode = 1
|
|
||||||
URLFetchServiceError_FETCH_ERROR URLFetchServiceError_ErrorCode = 2
|
|
||||||
URLFetchServiceError_UNSPECIFIED_ERROR URLFetchServiceError_ErrorCode = 3
|
|
||||||
URLFetchServiceError_RESPONSE_TOO_LARGE URLFetchServiceError_ErrorCode = 4
|
|
||||||
URLFetchServiceError_DEADLINE_EXCEEDED URLFetchServiceError_ErrorCode = 5
|
|
||||||
URLFetchServiceError_SSL_CERTIFICATE_ERROR URLFetchServiceError_ErrorCode = 6
|
|
||||||
URLFetchServiceError_DNS_ERROR URLFetchServiceError_ErrorCode = 7
|
|
||||||
URLFetchServiceError_CLOSED URLFetchServiceError_ErrorCode = 8
|
|
||||||
URLFetchServiceError_INTERNAL_TRANSIENT_ERROR URLFetchServiceError_ErrorCode = 9
|
|
||||||
URLFetchServiceError_TOO_MANY_REDIRECTS URLFetchServiceError_ErrorCode = 10
|
|
||||||
URLFetchServiceError_MALFORMED_REPLY URLFetchServiceError_ErrorCode = 11
|
|
||||||
URLFetchServiceError_CONNECTION_ERROR URLFetchServiceError_ErrorCode = 12
|
|
||||||
)
|
|
||||||
|
|
||||||
var URLFetchServiceError_ErrorCode_name = map[int32]string{
|
|
||||||
0: "OK",
|
|
||||||
1: "INVALID_URL",
|
|
||||||
2: "FETCH_ERROR",
|
|
||||||
3: "UNSPECIFIED_ERROR",
|
|
||||||
4: "RESPONSE_TOO_LARGE",
|
|
||||||
5: "DEADLINE_EXCEEDED",
|
|
||||||
6: "SSL_CERTIFICATE_ERROR",
|
|
||||||
7: "DNS_ERROR",
|
|
||||||
8: "CLOSED",
|
|
||||||
9: "INTERNAL_TRANSIENT_ERROR",
|
|
||||||
10: "TOO_MANY_REDIRECTS",
|
|
||||||
11: "MALFORMED_REPLY",
|
|
||||||
12: "CONNECTION_ERROR",
|
|
||||||
}
|
|
||||||
var URLFetchServiceError_ErrorCode_value = map[string]int32{
|
|
||||||
"OK": 0,
|
|
||||||
"INVALID_URL": 1,
|
|
||||||
"FETCH_ERROR": 2,
|
|
||||||
"UNSPECIFIED_ERROR": 3,
|
|
||||||
"RESPONSE_TOO_LARGE": 4,
|
|
||||||
"DEADLINE_EXCEEDED": 5,
|
|
||||||
"SSL_CERTIFICATE_ERROR": 6,
|
|
||||||
"DNS_ERROR": 7,
|
|
||||||
"CLOSED": 8,
|
|
||||||
"INTERNAL_TRANSIENT_ERROR": 9,
|
|
||||||
"TOO_MANY_REDIRECTS": 10,
|
|
||||||
"MALFORMED_REPLY": 11,
|
|
||||||
"CONNECTION_ERROR": 12,
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x URLFetchServiceError_ErrorCode) Enum() *URLFetchServiceError_ErrorCode {
|
|
||||||
p := new(URLFetchServiceError_ErrorCode)
|
|
||||||
*p = x
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
func (x URLFetchServiceError_ErrorCode) String() string {
|
|
||||||
return proto.EnumName(URLFetchServiceError_ErrorCode_name, int32(x))
|
|
||||||
}
|
|
||||||
func (x *URLFetchServiceError_ErrorCode) UnmarshalJSON(data []byte) error {
|
|
||||||
value, err := proto.UnmarshalJSONEnum(URLFetchServiceError_ErrorCode_value, data, "URLFetchServiceError_ErrorCode")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*x = URLFetchServiceError_ErrorCode(value)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
func (URLFetchServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{0, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
type URLFetchRequest_RequestMethod int32
|
|
||||||
|
|
||||||
const (
|
|
||||||
URLFetchRequest_GET URLFetchRequest_RequestMethod = 1
|
|
||||||
URLFetchRequest_POST URLFetchRequest_RequestMethod = 2
|
|
||||||
URLFetchRequest_HEAD URLFetchRequest_RequestMethod = 3
|
|
||||||
URLFetchRequest_PUT URLFetchRequest_RequestMethod = 4
|
|
||||||
URLFetchRequest_DELETE URLFetchRequest_RequestMethod = 5
|
|
||||||
URLFetchRequest_PATCH URLFetchRequest_RequestMethod = 6
|
|
||||||
)
|
|
||||||
|
|
||||||
var URLFetchRequest_RequestMethod_name = map[int32]string{
|
|
||||||
1: "GET",
|
|
||||||
2: "POST",
|
|
||||||
3: "HEAD",
|
|
||||||
4: "PUT",
|
|
||||||
5: "DELETE",
|
|
||||||
6: "PATCH",
|
|
||||||
}
|
|
||||||
var URLFetchRequest_RequestMethod_value = map[string]int32{
|
|
||||||
"GET": 1,
|
|
||||||
"POST": 2,
|
|
||||||
"HEAD": 3,
|
|
||||||
"PUT": 4,
|
|
||||||
"DELETE": 5,
|
|
||||||
"PATCH": 6,
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x URLFetchRequest_RequestMethod) Enum() *URLFetchRequest_RequestMethod {
|
|
||||||
p := new(URLFetchRequest_RequestMethod)
|
|
||||||
*p = x
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
func (x URLFetchRequest_RequestMethod) String() string {
|
|
||||||
return proto.EnumName(URLFetchRequest_RequestMethod_name, int32(x))
|
|
||||||
}
|
|
||||||
func (x *URLFetchRequest_RequestMethod) UnmarshalJSON(data []byte) error {
|
|
||||||
value, err := proto.UnmarshalJSONEnum(URLFetchRequest_RequestMethod_value, data, "URLFetchRequest_RequestMethod")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*x = URLFetchRequest_RequestMethod(value)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
func (URLFetchRequest_RequestMethod) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
type URLFetchServiceError struct {
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchServiceError) Reset() { *m = URLFetchServiceError{} }
|
|
||||||
func (m *URLFetchServiceError) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*URLFetchServiceError) ProtoMessage() {}
|
|
||||||
func (*URLFetchServiceError) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{0}
|
|
||||||
}
|
|
||||||
func (m *URLFetchServiceError) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_URLFetchServiceError.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *URLFetchServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_URLFetchServiceError.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *URLFetchServiceError) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_URLFetchServiceError.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *URLFetchServiceError) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_URLFetchServiceError.Size(m)
|
|
||||||
}
|
|
||||||
func (m *URLFetchServiceError) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_URLFetchServiceError.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_URLFetchServiceError proto.InternalMessageInfo
|
|
||||||
|
|
||||||
type URLFetchRequest struct {
|
|
||||||
Method *URLFetchRequest_RequestMethod `protobuf:"varint,1,req,name=Method,enum=appengine.URLFetchRequest_RequestMethod" json:"Method,omitempty"`
|
|
||||||
Url *string `protobuf:"bytes,2,req,name=Url" json:"Url,omitempty"`
|
|
||||||
Header []*URLFetchRequest_Header `protobuf:"group,3,rep,name=Header,json=header" json:"header,omitempty"`
|
|
||||||
Payload []byte `protobuf:"bytes,6,opt,name=Payload" json:"Payload,omitempty"`
|
|
||||||
FollowRedirects *bool `protobuf:"varint,7,opt,name=FollowRedirects,def=1" json:"FollowRedirects,omitempty"`
|
|
||||||
Deadline *float64 `protobuf:"fixed64,8,opt,name=Deadline" json:"Deadline,omitempty"`
|
|
||||||
MustValidateServerCertificate *bool `protobuf:"varint,9,opt,name=MustValidateServerCertificate,def=1" json:"MustValidateServerCertificate,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) Reset() { *m = URLFetchRequest{} }
|
|
||||||
func (m *URLFetchRequest) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*URLFetchRequest) ProtoMessage() {}
|
|
||||||
func (*URLFetchRequest) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1}
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_URLFetchRequest.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_URLFetchRequest.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *URLFetchRequest) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_URLFetchRequest.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_URLFetchRequest.Size(m)
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_URLFetchRequest.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_URLFetchRequest proto.InternalMessageInfo
|
|
||||||
|
|
||||||
const Default_URLFetchRequest_FollowRedirects bool = true
|
|
||||||
const Default_URLFetchRequest_MustValidateServerCertificate bool = true
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) GetMethod() URLFetchRequest_RequestMethod {
|
|
||||||
if m != nil && m.Method != nil {
|
|
||||||
return *m.Method
|
|
||||||
}
|
|
||||||
return URLFetchRequest_GET
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) GetUrl() string {
|
|
||||||
if m != nil && m.Url != nil {
|
|
||||||
return *m.Url
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) GetHeader() []*URLFetchRequest_Header {
|
|
||||||
if m != nil {
|
|
||||||
return m.Header
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) GetPayload() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.Payload
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) GetFollowRedirects() bool {
|
|
||||||
if m != nil && m.FollowRedirects != nil {
|
|
||||||
return *m.FollowRedirects
|
|
||||||
}
|
|
||||||
return Default_URLFetchRequest_FollowRedirects
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) GetDeadline() float64 {
|
|
||||||
if m != nil && m.Deadline != nil {
|
|
||||||
return *m.Deadline
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest) GetMustValidateServerCertificate() bool {
|
|
||||||
if m != nil && m.MustValidateServerCertificate != nil {
|
|
||||||
return *m.MustValidateServerCertificate
|
|
||||||
}
|
|
||||||
return Default_URLFetchRequest_MustValidateServerCertificate
|
|
||||||
}
|
|
||||||
|
|
||||||
type URLFetchRequest_Header struct {
|
|
||||||
Key *string `protobuf:"bytes,4,req,name=Key" json:"Key,omitempty"`
|
|
||||||
Value *string `protobuf:"bytes,5,req,name=Value" json:"Value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest_Header) Reset() { *m = URLFetchRequest_Header{} }
|
|
||||||
func (m *URLFetchRequest_Header) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*URLFetchRequest_Header) ProtoMessage() {}
|
|
||||||
func (*URLFetchRequest_Header) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1, 0}
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest_Header) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_URLFetchRequest_Header.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_URLFetchRequest_Header.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *URLFetchRequest_Header) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_URLFetchRequest_Header.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest_Header) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_URLFetchRequest_Header.Size(m)
|
|
||||||
}
|
|
||||||
func (m *URLFetchRequest_Header) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_URLFetchRequest_Header.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_URLFetchRequest_Header proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *URLFetchRequest_Header) GetKey() string {
|
|
||||||
if m != nil && m.Key != nil {
|
|
||||||
return *m.Key
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchRequest_Header) GetValue() string {
|
|
||||||
if m != nil && m.Value != nil {
|
|
||||||
return *m.Value
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type URLFetchResponse struct {
|
|
||||||
Content []byte `protobuf:"bytes,1,opt,name=Content" json:"Content,omitempty"`
|
|
||||||
StatusCode *int32 `protobuf:"varint,2,req,name=StatusCode" json:"StatusCode,omitempty"`
|
|
||||||
Header []*URLFetchResponse_Header `protobuf:"group,3,rep,name=Header,json=header" json:"header,omitempty"`
|
|
||||||
ContentWasTruncated *bool `protobuf:"varint,6,opt,name=ContentWasTruncated,def=0" json:"ContentWasTruncated,omitempty"`
|
|
||||||
ExternalBytesSent *int64 `protobuf:"varint,7,opt,name=ExternalBytesSent" json:"ExternalBytesSent,omitempty"`
|
|
||||||
ExternalBytesReceived *int64 `protobuf:"varint,8,opt,name=ExternalBytesReceived" json:"ExternalBytesReceived,omitempty"`
|
|
||||||
FinalUrl *string `protobuf:"bytes,9,opt,name=FinalUrl" json:"FinalUrl,omitempty"`
|
|
||||||
ApiCpuMilliseconds *int64 `protobuf:"varint,10,opt,name=ApiCpuMilliseconds,def=0" json:"ApiCpuMilliseconds,omitempty"`
|
|
||||||
ApiBytesSent *int64 `protobuf:"varint,11,opt,name=ApiBytesSent,def=0" json:"ApiBytesSent,omitempty"`
|
|
||||||
ApiBytesReceived *int64 `protobuf:"varint,12,opt,name=ApiBytesReceived,def=0" json:"ApiBytesReceived,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) Reset() { *m = URLFetchResponse{} }
|
|
||||||
func (m *URLFetchResponse) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*URLFetchResponse) ProtoMessage() {}
|
|
||||||
func (*URLFetchResponse) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{2}
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_URLFetchResponse.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_URLFetchResponse.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *URLFetchResponse) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_URLFetchResponse.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_URLFetchResponse.Size(m)
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_URLFetchResponse.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_URLFetchResponse proto.InternalMessageInfo
|
|
||||||
|
|
||||||
const Default_URLFetchResponse_ContentWasTruncated bool = false
|
|
||||||
const Default_URLFetchResponse_ApiCpuMilliseconds int64 = 0
|
|
||||||
const Default_URLFetchResponse_ApiBytesSent int64 = 0
|
|
||||||
const Default_URLFetchResponse_ApiBytesReceived int64 = 0
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetContent() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.Content
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetStatusCode() int32 {
|
|
||||||
if m != nil && m.StatusCode != nil {
|
|
||||||
return *m.StatusCode
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetHeader() []*URLFetchResponse_Header {
|
|
||||||
if m != nil {
|
|
||||||
return m.Header
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetContentWasTruncated() bool {
|
|
||||||
if m != nil && m.ContentWasTruncated != nil {
|
|
||||||
return *m.ContentWasTruncated
|
|
||||||
}
|
|
||||||
return Default_URLFetchResponse_ContentWasTruncated
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetExternalBytesSent() int64 {
|
|
||||||
if m != nil && m.ExternalBytesSent != nil {
|
|
||||||
return *m.ExternalBytesSent
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetExternalBytesReceived() int64 {
|
|
||||||
if m != nil && m.ExternalBytesReceived != nil {
|
|
||||||
return *m.ExternalBytesReceived
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetFinalUrl() string {
|
|
||||||
if m != nil && m.FinalUrl != nil {
|
|
||||||
return *m.FinalUrl
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetApiCpuMilliseconds() int64 {
|
|
||||||
if m != nil && m.ApiCpuMilliseconds != nil {
|
|
||||||
return *m.ApiCpuMilliseconds
|
|
||||||
}
|
|
||||||
return Default_URLFetchResponse_ApiCpuMilliseconds
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetApiBytesSent() int64 {
|
|
||||||
if m != nil && m.ApiBytesSent != nil {
|
|
||||||
return *m.ApiBytesSent
|
|
||||||
}
|
|
||||||
return Default_URLFetchResponse_ApiBytesSent
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse) GetApiBytesReceived() int64 {
|
|
||||||
if m != nil && m.ApiBytesReceived != nil {
|
|
||||||
return *m.ApiBytesReceived
|
|
||||||
}
|
|
||||||
return Default_URLFetchResponse_ApiBytesReceived
|
|
||||||
}
|
|
||||||
|
|
||||||
type URLFetchResponse_Header struct {
|
|
||||||
Key *string `protobuf:"bytes,4,req,name=Key" json:"Key,omitempty"`
|
|
||||||
Value *string `protobuf:"bytes,5,req,name=Value" json:"Value,omitempty"`
|
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
|
||||||
XXX_unrecognized []byte `json:"-"`
|
|
||||||
XXX_sizecache int32 `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse_Header) Reset() { *m = URLFetchResponse_Header{} }
|
|
||||||
func (m *URLFetchResponse_Header) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*URLFetchResponse_Header) ProtoMessage() {}
|
|
||||||
func (*URLFetchResponse_Header) Descriptor() ([]byte, []int) {
|
|
||||||
return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{2, 0}
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse_Header) XXX_Unmarshal(b []byte) error {
|
|
||||||
return xxx_messageInfo_URLFetchResponse_Header.Unmarshal(m, b)
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
||||||
return xxx_messageInfo_URLFetchResponse_Header.Marshal(b, m, deterministic)
|
|
||||||
}
|
|
||||||
func (dst *URLFetchResponse_Header) XXX_Merge(src proto.Message) {
|
|
||||||
xxx_messageInfo_URLFetchResponse_Header.Merge(dst, src)
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse_Header) XXX_Size() int {
|
|
||||||
return xxx_messageInfo_URLFetchResponse_Header.Size(m)
|
|
||||||
}
|
|
||||||
func (m *URLFetchResponse_Header) XXX_DiscardUnknown() {
|
|
||||||
xxx_messageInfo_URLFetchResponse_Header.DiscardUnknown(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
var xxx_messageInfo_URLFetchResponse_Header proto.InternalMessageInfo
|
|
||||||
|
|
||||||
func (m *URLFetchResponse_Header) GetKey() string {
|
|
||||||
if m != nil && m.Key != nil {
|
|
||||||
return *m.Key
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *URLFetchResponse_Header) GetValue() string {
|
|
||||||
if m != nil && m.Value != nil {
|
|
||||||
return *m.Value
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterType((*URLFetchServiceError)(nil), "appengine.URLFetchServiceError")
|
|
||||||
proto.RegisterType((*URLFetchRequest)(nil), "appengine.URLFetchRequest")
|
|
||||||
proto.RegisterType((*URLFetchRequest_Header)(nil), "appengine.URLFetchRequest.Header")
|
|
||||||
proto.RegisterType((*URLFetchResponse)(nil), "appengine.URLFetchResponse")
|
|
||||||
proto.RegisterType((*URLFetchResponse_Header)(nil), "appengine.URLFetchResponse.Header")
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterFile("google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto", fileDescriptor_urlfetch_service_b245a7065f33bced)
|
|
||||||
}
|
|
||||||
|
|
||||||
var fileDescriptor_urlfetch_service_b245a7065f33bced = []byte{
|
|
||||||
// 770 bytes of a gzipped FileDescriptorProto
|
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6e, 0xe3, 0x54,
|
|
||||||
0x10, 0xc6, 0x76, 0x7e, 0xa7, 0x5d, 0x7a, 0x76, 0xb6, 0x45, 0x66, 0xb5, 0xa0, 0x10, 0x09, 0x29,
|
|
||||||
0x17, 0x90, 0x2e, 0x2b, 0x24, 0x44, 0xaf, 0x70, 0xed, 0x93, 0xad, 0xa9, 0x63, 0x47, 0xc7, 0x4e,
|
|
||||||
0x61, 0xb9, 0xb1, 0xac, 0x78, 0x9a, 0x5a, 0xb2, 0xec, 0x60, 0x9f, 0x2c, 0xf4, 0x35, 0x78, 0x0d,
|
|
||||||
0xde, 0x87, 0xa7, 0xe1, 0x02, 0x9d, 0xc4, 0xc9, 0x6e, 0xbb, 0xd1, 0x4a, 0x5c, 0x65, 0xe6, 0x9b,
|
|
||||||
0xef, 0xcc, 0x99, 0x7c, 0xdf, 0xf8, 0x80, 0xb3, 0x2c, 0xcb, 0x65, 0x4e, 0xe3, 0x65, 0x99, 0x27,
|
|
||||||
0xc5, 0x72, 0x5c, 0x56, 0xcb, 0xf3, 0x64, 0xb5, 0xa2, 0x62, 0x99, 0x15, 0x74, 0x9e, 0x15, 0x92,
|
|
||||||
0xaa, 0x22, 0xc9, 0xcf, 0xd7, 0x55, 0x7e, 0x4b, 0x72, 0x71, 0xb7, 0x0f, 0xe2, 0x9a, 0xaa, 0xb7,
|
|
||||||
0xd9, 0x82, 0xc6, 0xab, 0xaa, 0x94, 0x25, 0xf6, 0xf7, 0x67, 0x86, 0x7f, 0xeb, 0x70, 0x3a, 0x17,
|
|
||||||
0xde, 0x44, 0xb1, 0xc2, 0x2d, 0x89, 0x57, 0x55, 0x59, 0x0d, 0xff, 0xd2, 0xa1, 0xbf, 0x89, 0xec,
|
|
||||||
0x32, 0x25, 0xec, 0x80, 0x1e, 0x5c, 0xb3, 0x4f, 0xf0, 0x04, 0x8e, 0x5c, 0xff, 0xc6, 0xf2, 0x5c,
|
|
||||||
0x27, 0x9e, 0x0b, 0x8f, 0x69, 0x0a, 0x98, 0xf0, 0xc8, 0xbe, 0x8a, 0xb9, 0x10, 0x81, 0x60, 0x3a,
|
|
||||||
0x9e, 0xc1, 0xd3, 0xb9, 0x1f, 0xce, 0xb8, 0xed, 0x4e, 0x5c, 0xee, 0x34, 0xb0, 0x81, 0x9f, 0x01,
|
|
||||||
0x0a, 0x1e, 0xce, 0x02, 0x3f, 0xe4, 0x71, 0x14, 0x04, 0xb1, 0x67, 0x89, 0xd7, 0x9c, 0xb5, 0x14,
|
|
||||||
0xdd, 0xe1, 0x96, 0xe3, 0xb9, 0x3e, 0x8f, 0xf9, 0xaf, 0x36, 0xe7, 0x0e, 0x77, 0x58, 0x1b, 0x3f,
|
|
||||||
0x87, 0xb3, 0x30, 0xf4, 0x62, 0x9b, 0x8b, 0xc8, 0x9d, 0xb8, 0xb6, 0x15, 0xf1, 0xa6, 0x53, 0x07,
|
|
||||||
0x9f, 0x40, 0xdf, 0xf1, 0xc3, 0x26, 0xed, 0x22, 0x40, 0xc7, 0xf6, 0x82, 0x90, 0x3b, 0xac, 0x87,
|
|
||||||
0x2f, 0xc0, 0x74, 0xfd, 0x88, 0x0b, 0xdf, 0xf2, 0xe2, 0x48, 0x58, 0x7e, 0xe8, 0x72, 0x3f, 0x6a,
|
|
||||||
0x98, 0x7d, 0x35, 0x82, 0xba, 0x79, 0x6a, 0xf9, 0x6f, 0x62, 0xc1, 0x1d, 0x57, 0x70, 0x3b, 0x0a,
|
|
||||||
0x19, 0xe0, 0x33, 0x38, 0x99, 0x5a, 0xde, 0x24, 0x10, 0x53, 0xee, 0xc4, 0x82, 0xcf, 0xbc, 0x37,
|
|
||||||
0xec, 0x08, 0x4f, 0x81, 0xd9, 0x81, 0xef, 0x73, 0x3b, 0x72, 0x03, 0xbf, 0x69, 0x71, 0x3c, 0xfc,
|
|
||||||
0xc7, 0x80, 0x93, 0x9d, 0x5a, 0x82, 0x7e, 0x5f, 0x53, 0x2d, 0xf1, 0x27, 0xe8, 0x4c, 0x49, 0xde,
|
|
||||||
0x95, 0xa9, 0xa9, 0x0d, 0xf4, 0xd1, 0xa7, 0xaf, 0x46, 0xe3, 0xbd, 0xba, 0xe3, 0x47, 0xdc, 0x71,
|
|
||||||
0xf3, 0xbb, 0xe5, 0x8b, 0xe6, 0x1c, 0x32, 0x30, 0xe6, 0x55, 0x6e, 0xea, 0x03, 0x7d, 0xd4, 0x17,
|
|
||||||
0x2a, 0xc4, 0x1f, 0xa1, 0x73, 0x47, 0x49, 0x4a, 0x95, 0x69, 0x0c, 0x8c, 0x11, 0xbc, 0xfa, 0xea,
|
|
||||||
0x23, 0x3d, 0xaf, 0x36, 0x44, 0xd1, 0x1c, 0xc0, 0x17, 0xd0, 0x9d, 0x25, 0xf7, 0x79, 0x99, 0xa4,
|
|
||||||
0x66, 0x67, 0xa0, 0x8d, 0x8e, 0x2f, 0xf5, 0x9e, 0x26, 0x76, 0x10, 0x8e, 0xe1, 0x64, 0x52, 0xe6,
|
|
||||||
0x79, 0xf9, 0x87, 0xa0, 0x34, 0xab, 0x68, 0x21, 0x6b, 0xb3, 0x3b, 0xd0, 0x46, 0xbd, 0x8b, 0x96,
|
|
||||||
0xac, 0xd6, 0x24, 0x1e, 0x17, 0xf1, 0x39, 0xf4, 0x1c, 0x4a, 0xd2, 0x3c, 0x2b, 0xc8, 0xec, 0x0d,
|
|
||||||
0xb4, 0x91, 0x26, 0xf6, 0x39, 0xfe, 0x0c, 0x5f, 0x4c, 0xd7, 0xb5, 0xbc, 0x49, 0xf2, 0x2c, 0x4d,
|
|
||||||
0x24, 0xa9, 0xed, 0xa1, 0xca, 0xa6, 0x4a, 0x66, 0xb7, 0xd9, 0x22, 0x91, 0x64, 0xf6, 0xdf, 0xeb,
|
|
||||||
0xfc, 0x71, 0xea, 0xf3, 0x97, 0xd0, 0xd9, 0xfe, 0x0f, 0x25, 0xc6, 0x35, 0xdd, 0x9b, 0xad, 0xad,
|
|
||||||
0x18, 0xd7, 0x74, 0x8f, 0xa7, 0xd0, 0xbe, 0x49, 0xf2, 0x35, 0x99, 0xed, 0x0d, 0xb6, 0x4d, 0x86,
|
|
||||||
0x1e, 0x3c, 0x79, 0xa0, 0x26, 0x76, 0xc1, 0x78, 0xcd, 0x23, 0xa6, 0x61, 0x0f, 0x5a, 0xb3, 0x20,
|
|
||||||
0x8c, 0x98, 0xae, 0xa2, 0x2b, 0x6e, 0x39, 0xcc, 0x50, 0xc5, 0xd9, 0x3c, 0x62, 0x2d, 0xb5, 0x2e,
|
|
||||||
0x0e, 0xf7, 0x78, 0xc4, 0x59, 0x1b, 0xfb, 0xd0, 0x9e, 0x59, 0x91, 0x7d, 0xc5, 0x3a, 0xc3, 0x7f,
|
|
||||||
0x0d, 0x60, 0xef, 0x84, 0xad, 0x57, 0x65, 0x51, 0x13, 0x9a, 0xd0, 0xb5, 0xcb, 0x42, 0x52, 0x21,
|
|
||||||
0x4d, 0x4d, 0x49, 0x29, 0x76, 0x29, 0x7e, 0x09, 0x10, 0xca, 0x44, 0xae, 0x6b, 0xf5, 0x71, 0x6c,
|
|
||||||
0x8c, 0x6b, 0x8b, 0xf7, 0x10, 0xbc, 0x78, 0xe4, 0xdf, 0xf0, 0xa0, 0x7f, 0xdb, 0x6b, 0x1e, 0x1b,
|
|
||||||
0xf8, 0x03, 0x3c, 0x6b, 0xae, 0xf9, 0x25, 0xa9, 0xa3, 0x6a, 0x5d, 0x28, 0x81, 0xb6, 0x66, 0xf6,
|
|
||||||
0x2e, 0xda, 0xb7, 0x49, 0x5e, 0x93, 0x38, 0xc4, 0xc0, 0x6f, 0xe0, 0x29, 0xff, 0x73, 0xfb, 0x02,
|
|
||||||
0x5c, 0xde, 0x4b, 0xaa, 0x43, 0x35, 0xb8, 0x72, 0xd7, 0x10, 0x1f, 0x16, 0xf0, 0x7b, 0x38, 0x7b,
|
|
||||||
0x00, 0x0a, 0x5a, 0x50, 0xf6, 0x96, 0xd2, 0x8d, 0xcd, 0x86, 0x38, 0x5c, 0x54, 0xfb, 0x30, 0xc9,
|
|
||||||
0x8a, 0x24, 0x57, 0xfb, 0xaa, 0xec, 0xed, 0x8b, 0x7d, 0x8e, 0xdf, 0x01, 0x5a, 0xab, 0xcc, 0x5e,
|
|
||||||
0xad, 0xa7, 0x59, 0x9e, 0x67, 0x35, 0x2d, 0xca, 0x22, 0xad, 0x4d, 0x50, 0xed, 0x2e, 0xb4, 0x97,
|
|
||||||
0xe2, 0x40, 0x11, 0xbf, 0x86, 0x63, 0x6b, 0x95, 0xbd, 0x9b, 0xf6, 0x68, 0x47, 0x7e, 0x00, 0xe3,
|
|
||||||
0xb7, 0xc0, 0x76, 0xf9, 0x7e, 0xcc, 0xe3, 0x1d, 0xf5, 0x83, 0xd2, 0xff, 0x5f, 0xa6, 0x4b, 0xf8,
|
|
||||||
0xad, 0xb7, 0x7b, 0x2a, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x9f, 0x6d, 0x24, 0x63, 0x05,
|
|
||||||
0x00, 0x00,
|
|
||||||
}
|
|
64
vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto
generated
vendored
64
vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto
generated
vendored
@ -1,64 +0,0 @@
|
|||||||
syntax = "proto2";
|
|
||||||
option go_package = "urlfetch";
|
|
||||||
|
|
||||||
package appengine;
|
|
||||||
|
|
||||||
message URLFetchServiceError {
|
|
||||||
enum ErrorCode {
|
|
||||||
OK = 0;
|
|
||||||
INVALID_URL = 1;
|
|
||||||
FETCH_ERROR = 2;
|
|
||||||
UNSPECIFIED_ERROR = 3;
|
|
||||||
RESPONSE_TOO_LARGE = 4;
|
|
||||||
DEADLINE_EXCEEDED = 5;
|
|
||||||
SSL_CERTIFICATE_ERROR = 6;
|
|
||||||
DNS_ERROR = 7;
|
|
||||||
CLOSED = 8;
|
|
||||||
INTERNAL_TRANSIENT_ERROR = 9;
|
|
||||||
TOO_MANY_REDIRECTS = 10;
|
|
||||||
MALFORMED_REPLY = 11;
|
|
||||||
CONNECTION_ERROR = 12;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message URLFetchRequest {
|
|
||||||
enum RequestMethod {
|
|
||||||
GET = 1;
|
|
||||||
POST = 2;
|
|
||||||
HEAD = 3;
|
|
||||||
PUT = 4;
|
|
||||||
DELETE = 5;
|
|
||||||
PATCH = 6;
|
|
||||||
}
|
|
||||||
required RequestMethod Method = 1;
|
|
||||||
required string Url = 2;
|
|
||||||
repeated group Header = 3 {
|
|
||||||
required string Key = 4;
|
|
||||||
required string Value = 5;
|
|
||||||
}
|
|
||||||
optional bytes Payload = 6 [ctype=CORD];
|
|
||||||
|
|
||||||
optional bool FollowRedirects = 7 [default=true];
|
|
||||||
|
|
||||||
optional double Deadline = 8;
|
|
||||||
|
|
||||||
optional bool MustValidateServerCertificate = 9 [default=true];
|
|
||||||
}
|
|
||||||
|
|
||||||
message URLFetchResponse {
|
|
||||||
optional bytes Content = 1;
|
|
||||||
required int32 StatusCode = 2;
|
|
||||||
repeated group Header = 3 {
|
|
||||||
required string Key = 4;
|
|
||||||
required string Value = 5;
|
|
||||||
}
|
|
||||||
optional bool ContentWasTruncated = 6 [default=false];
|
|
||||||
optional int64 ExternalBytesSent = 7;
|
|
||||||
optional int64 ExternalBytesReceived = 8;
|
|
||||||
|
|
||||||
optional string FinalUrl = 9;
|
|
||||||
|
|
||||||
optional int64 ApiCpuMilliseconds = 10 [default=0];
|
|
||||||
optional int64 ApiBytesSent = 11 [default=0];
|
|
||||||
optional int64 ApiBytesReceived = 12 [default=0];
|
|
||||||
}
|
|
209
vendor/google.golang.org/appengine/urlfetch/urlfetch.go
generated
vendored
209
vendor/google.golang.org/appengine/urlfetch/urlfetch.go
generated
vendored
@ -1,209 +0,0 @@
|
|||||||
// Copyright 2011 Google Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the Apache 2.0
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
// Package urlfetch provides an http.RoundTripper implementation
|
|
||||||
// for fetching URLs via App Engine's urlfetch service.
|
|
||||||
package urlfetch // import "google.golang.org/appengine/urlfetch"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
|
||||||
"net/http"
|
|
||||||
"net/url"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
|
|
||||||
"google.golang.org/appengine/internal"
|
|
||||||
pb "google.golang.org/appengine/internal/urlfetch"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Transport is an implementation of http.RoundTripper for
|
|
||||||
// App Engine. Users should generally create an http.Client using
|
|
||||||
// this transport and use the Client rather than using this transport
|
|
||||||
// directly.
|
|
||||||
type Transport struct {
|
|
||||||
Context context.Context
|
|
||||||
|
|
||||||
// Controls whether the application checks the validity of SSL certificates
|
|
||||||
// over HTTPS connections. A value of false (the default) instructs the
|
|
||||||
// application to send a request to the server only if the certificate is
|
|
||||||
// valid and signed by a trusted certificate authority (CA), and also
|
|
||||||
// includes a hostname that matches the certificate. A value of true
|
|
||||||
// instructs the application to perform no certificate validation.
|
|
||||||
AllowInvalidServerCertificate bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// Verify statically that *Transport implements http.RoundTripper.
|
|
||||||
var _ http.RoundTripper = (*Transport)(nil)
|
|
||||||
|
|
||||||
// Client returns an *http.Client using a default urlfetch Transport. This
|
|
||||||
// client will check the validity of SSL certificates.
|
|
||||||
//
|
|
||||||
// Any deadline of the provided context will be used for requests through this client.
|
|
||||||
// If the client does not have a deadline, then an App Engine default of 60 second is used.
|
|
||||||
func Client(ctx context.Context) *http.Client {
|
|
||||||
return &http.Client{
|
|
||||||
Transport: &Transport{
|
|
||||||
Context: ctx,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type bodyReader struct {
|
|
||||||
content []byte
|
|
||||||
truncated bool
|
|
||||||
closed bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrTruncatedBody is the error returned after the final Read() from a
|
|
||||||
// response's Body if the body has been truncated by App Engine's proxy.
|
|
||||||
var ErrTruncatedBody = errors.New("urlfetch: truncated body")
|
|
||||||
|
|
||||||
func statusCodeToText(code int) string {
|
|
||||||
if t := http.StatusText(code); t != "" {
|
|
||||||
return t
|
|
||||||
}
|
|
||||||
return strconv.Itoa(code)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (br *bodyReader) Read(p []byte) (n int, err error) {
|
|
||||||
if br.closed {
|
|
||||||
if br.truncated {
|
|
||||||
return 0, ErrTruncatedBody
|
|
||||||
}
|
|
||||||
return 0, io.EOF
|
|
||||||
}
|
|
||||||
n = copy(p, br.content)
|
|
||||||
if n > 0 {
|
|
||||||
br.content = br.content[n:]
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if br.truncated {
|
|
||||||
br.closed = true
|
|
||||||
return 0, ErrTruncatedBody
|
|
||||||
}
|
|
||||||
return 0, io.EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
func (br *bodyReader) Close() error {
|
|
||||||
br.closed = true
|
|
||||||
br.content = nil
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// A map of the URL Fetch-accepted methods that take a request body.
|
|
||||||
var methodAcceptsRequestBody = map[string]bool{
|
|
||||||
"POST": true,
|
|
||||||
"PUT": true,
|
|
||||||
"PATCH": true,
|
|
||||||
}
|
|
||||||
|
|
||||||
// urlString returns a valid string given a URL. This function is necessary because
|
|
||||||
// the String method of URL doesn't correctly handle URLs with non-empty Opaque values.
|
|
||||||
// See http://code.google.com/p/go/issues/detail?id=4860.
|
|
||||||
func urlString(u *url.URL) string {
|
|
||||||
if u.Opaque == "" || strings.HasPrefix(u.Opaque, "//") {
|
|
||||||
return u.String()
|
|
||||||
}
|
|
||||||
aux := *u
|
|
||||||
aux.Opaque = "//" + aux.Host + aux.Opaque
|
|
||||||
return aux.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
// RoundTrip issues a single HTTP request and returns its response. Per the
|
|
||||||
// http.RoundTripper interface, RoundTrip only returns an error if there
|
|
||||||
// was an unsupported request or the URL Fetch proxy fails.
|
|
||||||
// Note that HTTP response codes such as 5xx, 403, 404, etc are not
|
|
||||||
// errors as far as the transport is concerned and will be returned
|
|
||||||
// with err set to nil.
|
|
||||||
func (t *Transport) RoundTrip(req *http.Request) (res *http.Response, err error) {
|
|
||||||
methNum, ok := pb.URLFetchRequest_RequestMethod_value[req.Method]
|
|
||||||
if !ok {
|
|
||||||
return nil, fmt.Errorf("urlfetch: unsupported HTTP method %q", req.Method)
|
|
||||||
}
|
|
||||||
|
|
||||||
method := pb.URLFetchRequest_RequestMethod(methNum)
|
|
||||||
|
|
||||||
freq := &pb.URLFetchRequest{
|
|
||||||
Method: &method,
|
|
||||||
Url: proto.String(urlString(req.URL)),
|
|
||||||
FollowRedirects: proto.Bool(false), // http.Client's responsibility
|
|
||||||
MustValidateServerCertificate: proto.Bool(!t.AllowInvalidServerCertificate),
|
|
||||||
}
|
|
||||||
if deadline, ok := t.Context.Deadline(); ok {
|
|
||||||
freq.Deadline = proto.Float64(deadline.Sub(time.Now()).Seconds())
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, vals := range req.Header {
|
|
||||||
for _, val := range vals {
|
|
||||||
freq.Header = append(freq.Header, &pb.URLFetchRequest_Header{
|
|
||||||
Key: proto.String(k),
|
|
||||||
Value: proto.String(val),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if methodAcceptsRequestBody[req.Method] && req.Body != nil {
|
|
||||||
// Avoid a []byte copy if req.Body has a Bytes method.
|
|
||||||
switch b := req.Body.(type) {
|
|
||||||
case interface {
|
|
||||||
Bytes() []byte
|
|
||||||
}:
|
|
||||||
freq.Payload = b.Bytes()
|
|
||||||
default:
|
|
||||||
freq.Payload, err = ioutil.ReadAll(req.Body)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fres := &pb.URLFetchResponse{}
|
|
||||||
if err := internal.Call(t.Context, "urlfetch", "Fetch", freq, fres); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
res = &http.Response{}
|
|
||||||
res.StatusCode = int(*fres.StatusCode)
|
|
||||||
res.Status = fmt.Sprintf("%d %s", res.StatusCode, statusCodeToText(res.StatusCode))
|
|
||||||
res.Header = make(http.Header)
|
|
||||||
res.Request = req
|
|
||||||
|
|
||||||
// Faked:
|
|
||||||
res.ProtoMajor = 1
|
|
||||||
res.ProtoMinor = 1
|
|
||||||
res.Proto = "HTTP/1.1"
|
|
||||||
res.Close = true
|
|
||||||
|
|
||||||
for _, h := range fres.Header {
|
|
||||||
hkey := http.CanonicalHeaderKey(*h.Key)
|
|
||||||
hval := *h.Value
|
|
||||||
if hkey == "Content-Length" {
|
|
||||||
// Will get filled in below for all but HEAD requests.
|
|
||||||
if req.Method == "HEAD" {
|
|
||||||
res.ContentLength, _ = strconv.ParseInt(hval, 10, 64)
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
res.Header.Add(hkey, hval)
|
|
||||||
}
|
|
||||||
|
|
||||||
if req.Method != "HEAD" {
|
|
||||||
res.ContentLength = int64(len(fres.Content))
|
|
||||||
}
|
|
||||||
|
|
||||||
truncated := fres.GetContentWasTruncated()
|
|
||||||
res.Body = &bodyReader{content: fres.Content, truncated: truncated}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
internal.RegisterErrorCodeMap("urlfetch", pb.URLFetchServiceError_ErrorCode_name)
|
|
||||||
internal.RegisterTimeoutErrorCode("urlfetch", int32(pb.URLFetchServiceError_DEADLINE_EXCEEDED))
|
|
||||||
}
|
|
21
vendor/modules.txt
vendored
21
vendor/modules.txt
vendored
@ -573,8 +573,8 @@ github.com/pkg/xattr
|
|||||||
# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
|
# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
|
||||||
## explicit
|
## explicit
|
||||||
github.com/pmezard/go-difflib/difflib
|
github.com/pmezard/go-difflib/difflib
|
||||||
# github.com/prometheus/client_golang v1.19.1
|
# github.com/prometheus/client_golang v1.19.1 => github.com/prometheus/client_golang v1.18.0
|
||||||
## explicit; go 1.20
|
## explicit; go 1.19
|
||||||
github.com/prometheus/client_golang/prometheus
|
github.com/prometheus/client_golang/prometheus
|
||||||
github.com/prometheus/client_golang/prometheus/collectors
|
github.com/prometheus/client_golang/prometheus/collectors
|
||||||
github.com/prometheus/client_golang/prometheus/internal
|
github.com/prometheus/client_golang/prometheus/internal
|
||||||
@ -582,10 +582,10 @@ github.com/prometheus/client_golang/prometheus/promhttp
|
|||||||
github.com/prometheus/client_golang/prometheus/testutil
|
github.com/prometheus/client_golang/prometheus/testutil
|
||||||
github.com/prometheus/client_golang/prometheus/testutil/promlint
|
github.com/prometheus/client_golang/prometheus/testutil/promlint
|
||||||
github.com/prometheus/client_golang/prometheus/testutil/promlint/validations
|
github.com/prometheus/client_golang/prometheus/testutil/promlint/validations
|
||||||
# github.com/prometheus/client_model v0.5.0
|
# github.com/prometheus/client_model v0.6.1
|
||||||
## explicit; go 1.19
|
## explicit; go 1.19
|
||||||
github.com/prometheus/client_model/go
|
github.com/prometheus/client_model/go
|
||||||
# github.com/prometheus/common v0.48.0
|
# github.com/prometheus/common v0.55.0 => github.com/prometheus/common v0.47.0
|
||||||
## explicit; go 1.20
|
## explicit; go 1.20
|
||||||
github.com/prometheus/common/expfmt
|
github.com/prometheus/common/expfmt
|
||||||
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
|
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
|
||||||
@ -749,7 +749,7 @@ golang.org/x/net/internal/timeseries
|
|||||||
golang.org/x/net/proxy
|
golang.org/x/net/proxy
|
||||||
golang.org/x/net/trace
|
golang.org/x/net/trace
|
||||||
golang.org/x/net/websocket
|
golang.org/x/net/websocket
|
||||||
# golang.org/x/oauth2 v0.18.0
|
# golang.org/x/oauth2 v0.19.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/oauth2
|
golang.org/x/oauth2
|
||||||
golang.org/x/oauth2/internal
|
golang.org/x/oauth2/internal
|
||||||
@ -808,15 +808,6 @@ golang.org/x/tools/go/ast/inspector
|
|||||||
# gomodules.xyz/jsonpatch/v2 v2.4.0 => github.com/gomodules/jsonpatch/v2 v2.2.0
|
# gomodules.xyz/jsonpatch/v2 v2.4.0 => github.com/gomodules/jsonpatch/v2 v2.2.0
|
||||||
## explicit; go 1.12
|
## explicit; go 1.12
|
||||||
gomodules.xyz/jsonpatch/v2
|
gomodules.xyz/jsonpatch/v2
|
||||||
# google.golang.org/appengine v1.6.8
|
|
||||||
## explicit; go 1.11
|
|
||||||
google.golang.org/appengine/internal
|
|
||||||
google.golang.org/appengine/internal/base
|
|
||||||
google.golang.org/appengine/internal/datastore
|
|
||||||
google.golang.org/appengine/internal/log
|
|
||||||
google.golang.org/appengine/internal/remote_api
|
|
||||||
google.golang.org/appengine/internal/urlfetch
|
|
||||||
google.golang.org/appengine/urlfetch
|
|
||||||
# google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de
|
# google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de
|
||||||
## explicit; go 1.19
|
## explicit; go 1.19
|
||||||
# google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237
|
# google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237
|
||||||
@ -1805,6 +1796,8 @@ sigs.k8s.io/yaml/goyaml.v2
|
|||||||
# code.cloudfoundry.org/gofileutils => github.com/cloudfoundry/gofileutils v0.0.0-20170111115228-4d0c80011a0f
|
# code.cloudfoundry.org/gofileutils => github.com/cloudfoundry/gofileutils v0.0.0-20170111115228-4d0c80011a0f
|
||||||
# github.com/ceph/ceph-csi/api => ./api
|
# github.com/ceph/ceph-csi/api => ./api
|
||||||
# github.com/portworx/sched-ops => github.com/portworx/sched-ops v0.20.4-openstorage-rc3
|
# github.com/portworx/sched-ops => github.com/portworx/sched-ops v0.20.4-openstorage-rc3
|
||||||
|
# github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.18.0
|
||||||
|
# github.com/prometheus/common => github.com/prometheus/common v0.47.0
|
||||||
# gomodules.xyz/jsonpatch/v2 => github.com/gomodules/jsonpatch/v2 v2.2.0
|
# gomodules.xyz/jsonpatch/v2 => github.com/gomodules/jsonpatch/v2 v2.2.0
|
||||||
# k8s.io/api => k8s.io/api v0.30.2
|
# k8s.io/api => k8s.io/api v0.30.2
|
||||||
# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.30.2
|
# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.30.2
|
||||||
|
Loading…
Reference in New Issue
Block a user