mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-01 14:47:38 +00:00
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
This commit is contained in:
commit
a142390014
50 changed files with 422 additions and 154 deletions
|
@ -211,7 +211,7 @@ The shortlist of configuration flags is the following:
|
||||||
-datasource.maxIdleConnections int
|
-datasource.maxIdleConnections int
|
||||||
Defines the number of idle (keep-alive connections) to each configured datasource. Consider setting this value equal to the value: groups_total * group.concurrency. Too low a value may result in a high number of sockets in TIME_WAIT state. (default 100)
|
Defines the number of idle (keep-alive connections) to each configured datasource. Consider setting this value equal to the value: groups_total * group.concurrency. Too low a value may result in a high number of sockets in TIME_WAIT state. (default 100)
|
||||||
-datasource.queryStep duration
|
-datasource.queryStep duration
|
||||||
queryStep defines how far a value can fallback to when evaluating queries. For example, if datasource.queryStep=15s then param "step" with value "15s" will be added to every query.
|
queryStep defines how far a value can fallback to when evaluating queries. For example, if datasource.queryStep=15s then param "step" with value "15s" will be added to every query.If queryStep isn't specified, rule's evaluationInterval will be used instead.
|
||||||
-datasource.tlsCAFile string
|
-datasource.tlsCAFile string
|
||||||
Optional path to TLS CA file to use for verifying connections to -datasource.url. By default, system CA is used
|
Optional path to TLS CA file to use for verifying connections to -datasource.url. By default, system CA is used
|
||||||
-datasource.tlsCertFile string
|
-datasource.tlsCertFile string
|
||||||
|
|
|
@ -116,8 +116,8 @@ func (s *VMStorage) Clone() *VMStorage {
|
||||||
func (s *VMStorage) ApplyParams(params QuerierParams) *VMStorage {
|
func (s *VMStorage) ApplyParams(params QuerierParams) *VMStorage {
|
||||||
if params.DataSourceType != nil {
|
if params.DataSourceType != nil {
|
||||||
s.dataSourceType = *params.DataSourceType
|
s.dataSourceType = *params.DataSourceType
|
||||||
s.evaluationInterval = params.EvaluationInterval
|
|
||||||
}
|
}
|
||||||
|
s.evaluationInterval = params.EvaluationInterval
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,14 +6,18 @@ sort: 15
|
||||||
|
|
||||||
## tip
|
## tip
|
||||||
|
|
||||||
* FEATURE: vmauth: add ability to set madatory query args in `url_prefix`. For example, `url_prefix: http://vm:8428/?extra_label=team=dev` would add `extra_label=team=dev` query arg to all the incoming requests. See [the example](https://docs.victoriametrics.com/vmauth.html#auth-config) for more details.
|
|
||||||
* FEATURE: add OpenTSDB migration option to vmctl. See more details [here](https://docs.victoriametrics.com/vmctl#migrating-data-from-opentsdb).
|
|
||||||
Thanks to @johnseekins!
|
|
||||||
* FEATURE: improved new time series registration speed on systems with many CPU cores. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1244). Thanks to @waldoweng for the idea and [draft implementation](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1243).
|
|
||||||
* FEATURE: vmagent: list user-visible endpoints at `http://vmagent:8429/`. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1251).
|
|
||||||
* FEATURE: vmalert: use the same technique as Grafana for determining evaluation timestamps for recording rules. This should make consistent graphs for series generated by recording rules compared to graphs generated for queries from recording rules in Grafana. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1232).
|
|
||||||
|
|
||||||
* BUGFIX: vmagent: properly update `role: endpoints` and `role: endpointslices` scrape targets if the underlying service changes in `kubernetes_sd_config`. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1240).
|
## [v1.59.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.59.0)
|
||||||
|
|
||||||
|
* FEATURE: improved new time series registration speed on systems with many CPU cores. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1244). Thanks to @waldoweng for the idea and [draft implementation](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1243).
|
||||||
|
* FEATURE: vmalert: use the same technique as Grafana for determining evaluation timestamps for recording rules. This should make consistent graphs for series generated by recording rules compared to graphs generated for queries from recording rules in Grafana. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1232).
|
||||||
|
* FEATURE: vmauth: add ability to set madatory query args in `url_prefix`. For example, `url_prefix: http://vm:8428/?extra_label=team=dev` would add `extra_label=team=dev` query arg to all the incoming requests. See [the example](https://docs.victoriametrics.com/vmauth.html#auth-config) for more details.
|
||||||
|
* FEATURE: vmctl: add OpenTSDB migration option. See more details [here](https://docs.victoriametrics.com/vmctl#migrating-data-from-opentsdb).
|
||||||
|
Thanks to @johnseekins!
|
||||||
|
* FEATURE: log metrics with dropped labels if the number of labels in the ingested metric exceeds `-maxLabelsPerTimeseries`. This should simplify debugging for this case.
|
||||||
|
* FEATURE: vmagent: list user-visible endpoints at `http://vmagent:8429/`. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1251).
|
||||||
|
|
||||||
|
* BUGFIX: vmagent: properly update `role: endpoints` and `role: endpointslices` scrape targets if the underlying service objects are updated in `kubernetes_sd_config`. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1240).
|
||||||
* BUGFIX: vmagent: apply `scrape_timeout` on receiving the first response byte from `stream_parse: true` scrape targets. Previously it was applied to receiving and *processing* the full response stream. This could result in false timeout errors when scrape target exposes millions of metrics as described [here](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1017#issuecomment-767235047).
|
* BUGFIX: vmagent: apply `scrape_timeout` on receiving the first response byte from `stream_parse: true` scrape targets. Previously it was applied to receiving and *processing* the full response stream. This could result in false timeout errors when scrape target exposes millions of metrics as described [here](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1017#issuecomment-767235047).
|
||||||
* BUGFIX: vmagent: eliminate possible data race when obtaining value for the metric `vm_persistentqueue_bytes_pending`. The data race could result in incorrect value for this metric.
|
* BUGFIX: vmagent: eliminate possible data race when obtaining value for the metric `vm_persistentqueue_bytes_pending`. The data race could result in incorrect value for this metric.
|
||||||
* BUGFIX: vmstorage: remove empty directories on startup. Such directories can be left after unclean shutdown on NFS storage. Previously such directories could lead to crashloop until manually removed. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1142).
|
* BUGFIX: vmstorage: remove empty directories on startup. Such directories can be left after unclean shutdown on NFS storage. Previously such directories could lead to crashloop until manually removed. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1142).
|
||||||
|
|
|
@ -200,6 +200,7 @@ It is recommended setting up alerts in [vmalert](https://docs.victoriametrics.co
|
||||||
- `api/v1/export` - exports raw data in JSON line format. See [this article](https://medium.com/@valyala/analyzing-prometheus-data-with-external-tools-5f3e5e147639) for details.
|
- `api/v1/export` - exports raw data in JSON line format. See [this article](https://medium.com/@valyala/analyzing-prometheus-data-with-external-tools-5f3e5e147639) for details.
|
||||||
- `api/v1/export/native` - exports raw data in native binary format. It may be imported into another VictoriaMetrics via `api/v1/import/native` (see above).
|
- `api/v1/export/native` - exports raw data in native binary format. It may be imported into another VictoriaMetrics via `api/v1/import/native` (see above).
|
||||||
- `api/v1/export/csv` - exports data in CSV. It may be imported into another VictoriaMetrics via `api/v1/import/csv` (see above).
|
- `api/v1/export/csv` - exports data in CSV. It may be imported into another VictoriaMetrics via `api/v1/import/csv` (see above).
|
||||||
|
- `api/v1/series/count` - returns the total number of series.
|
||||||
- `api/v1/status/tsdb` - for time series stats. See [these docs](https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-stats) for details.
|
- `api/v1/status/tsdb` - for time series stats. See [these docs](https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-stats) for details.
|
||||||
VictoriaMetrics accepts optional `topN=N` and `date=YYYY-MM-DD` query args for this handler, where `N` is the number of top entries to return in the response
|
VictoriaMetrics accepts optional `topN=N` and `date=YYYY-MM-DD` query args for this handler, where `N` is the number of top entries to return in the response
|
||||||
and `YYYY-MM-DD` is the date for collecting the stats. By default the stats is collected for the current day.
|
and `YYYY-MM-DD` is the date for collecting the stats. By default the stats is collected for the current day.
|
||||||
|
|
|
@ -215,7 +215,7 @@ The shortlist of configuration flags is the following:
|
||||||
-datasource.maxIdleConnections int
|
-datasource.maxIdleConnections int
|
||||||
Defines the number of idle (keep-alive connections) to each configured datasource. Consider setting this value equal to the value: groups_total * group.concurrency. Too low a value may result in a high number of sockets in TIME_WAIT state. (default 100)
|
Defines the number of idle (keep-alive connections) to each configured datasource. Consider setting this value equal to the value: groups_total * group.concurrency. Too low a value may result in a high number of sockets in TIME_WAIT state. (default 100)
|
||||||
-datasource.queryStep duration
|
-datasource.queryStep duration
|
||||||
queryStep defines how far a value can fallback to when evaluating queries. For example, if datasource.queryStep=15s then param "step" with value "15s" will be added to every query.
|
queryStep defines how far a value can fallback to when evaluating queries. For example, if datasource.queryStep=15s then param "step" with value "15s" will be added to every query.If queryStep isn't specified, rule's evaluationInterval will be used instead.
|
||||||
-datasource.tlsCAFile string
|
-datasource.tlsCAFile string
|
||||||
Optional path to TLS CA file to use for verifying connections to -datasource.url. By default, system CA is used
|
Optional path to TLS CA file to use for verifying connections to -datasource.url. By default, system CA is used
|
||||||
-datasource.tlsCertFile string
|
-datasource.tlsCertFile string
|
||||||
|
|
13
go.mod
13
go.mod
|
@ -9,7 +9,8 @@ require (
|
||||||
github.com/VictoriaMetrics/fasthttp v1.0.14
|
github.com/VictoriaMetrics/fasthttp v1.0.14
|
||||||
github.com/VictoriaMetrics/metrics v1.17.2
|
github.com/VictoriaMetrics/metrics v1.17.2
|
||||||
github.com/VictoriaMetrics/metricsql v0.14.0
|
github.com/VictoriaMetrics/metricsql v0.14.0
|
||||||
github.com/aws/aws-sdk-go v1.38.25
|
github.com/VividCortex/ewma v1.2.0 // indirect
|
||||||
|
github.com/aws/aws-sdk-go v1.38.30
|
||||||
github.com/cespare/xxhash/v2 v2.1.1
|
github.com/cespare/xxhash/v2 v2.1.1
|
||||||
github.com/cheggaaa/pb/v3 v3.0.8
|
github.com/cheggaaa/pb/v3 v3.0.8
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
|
||||||
|
@ -20,7 +21,7 @@ require (
|
||||||
github.com/klauspost/compress v1.12.2
|
github.com/klauspost/compress v1.12.2
|
||||||
github.com/oklog/ulid v1.3.1
|
github.com/oklog/ulid v1.3.1
|
||||||
github.com/prometheus/client_golang v1.10.0 // indirect
|
github.com/prometheus/client_golang v1.10.0 // indirect
|
||||||
github.com/prometheus/common v0.21.0 // indirect
|
github.com/prometheus/common v0.23.0 // indirect
|
||||||
github.com/prometheus/prometheus v1.8.2-0.20201119142752-3ad25a6dc3d9
|
github.com/prometheus/prometheus v1.8.2-0.20201119142752-3ad25a6dc3d9
|
||||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||||
github.com/urfave/cli/v2 v2.3.0
|
github.com/urfave/cli/v2 v2.3.0
|
||||||
|
@ -31,11 +32,11 @@ require (
|
||||||
github.com/valyala/histogram v1.1.2
|
github.com/valyala/histogram v1.1.2
|
||||||
github.com/valyala/quicktemplate v1.6.3
|
github.com/valyala/quicktemplate v1.6.3
|
||||||
golang.org/x/mod v0.4.2 // indirect
|
golang.org/x/mod v0.4.2 // indirect
|
||||||
golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6
|
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781
|
||||||
golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78
|
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c
|
||||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7
|
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887
|
||||||
google.golang.org/api v0.45.0
|
google.golang.org/api v0.45.0
|
||||||
google.golang.org/genproto v0.0.0-20210423144448-3a41ef94ed2b // indirect
|
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
26
go.sum
26
go.sum
|
@ -90,8 +90,9 @@ github.com/VictoriaMetrics/metrics v1.17.2 h1:9zPJ7DPfxdJWshOGLPLpAtPL0ZZ9AeUyQC
|
||||||
github.com/VictoriaMetrics/metrics v1.17.2/go.mod h1:Z1tSfPfngDn12bTfZSCqArT3OPY3u88J12hSoOhuiRE=
|
github.com/VictoriaMetrics/metrics v1.17.2/go.mod h1:Z1tSfPfngDn12bTfZSCqArT3OPY3u88J12hSoOhuiRE=
|
||||||
github.com/VictoriaMetrics/metricsql v0.14.0 h1:XGbpZJVskUPJFo2C7vG6ATxXBwkBFPe7EWZXB2HZt2U=
|
github.com/VictoriaMetrics/metricsql v0.14.0 h1:XGbpZJVskUPJFo2C7vG6ATxXBwkBFPe7EWZXB2HZt2U=
|
||||||
github.com/VictoriaMetrics/metricsql v0.14.0/go.mod h1:ylO7YITho/Iw6P71oEaGyHbO94bGoGtzWfLGqFhMIg8=
|
github.com/VictoriaMetrics/metricsql v0.14.0/go.mod h1:ylO7YITho/Iw6P71oEaGyHbO94bGoGtzWfLGqFhMIg8=
|
||||||
github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM=
|
|
||||||
github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA=
|
github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA=
|
||||||
|
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
|
||||||
|
github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4=
|
||||||
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
|
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
|
||||||
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
|
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
|
||||||
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
||||||
|
@ -124,8 +125,8 @@ github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQ
|
||||||
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
|
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
|
||||||
github.com/aws/aws-sdk-go v1.35.31/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
github.com/aws/aws-sdk-go v1.35.31/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
||||||
github.com/aws/aws-sdk-go v1.38.25 h1:aNjeh7+MON05cZPtZ6do+KxVT67jPOSQXANA46gOQao=
|
github.com/aws/aws-sdk-go v1.38.30 h1:X+JDSwkpSQfoLqH4fBLmS0rou8W/cdCCCD5lntTk9Vs=
|
||||||
github.com/aws/aws-sdk-go v1.38.25/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
github.com/aws/aws-sdk-go v1.38.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
||||||
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks 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.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
|
@ -681,8 +682,8 @@ github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB8
|
||||||
github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
||||||
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
||||||
github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
||||||
github.com/prometheus/common v0.21.0 h1:SMvI2JVldvfUvRVlP64jkIJEC6WiGHJcN2e5tB+ztF8=
|
github.com/prometheus/common v0.23.0 h1:GXWvPYuTUenIa+BhOq/x+L/QZzCqASkVRny5KTlPDGM=
|
||||||
github.com/prometheus/common v0.21.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
github.com/prometheus/common v0.23.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q=
|
||||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/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-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||||
|
@ -922,8 +923,8 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v
|
||||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
|
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
|
||||||
golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6 h1:0PC75Fz/kyMGhL0e1QnypqK2kQMqKt9csD1GnMJR+Zk=
|
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0=
|
||||||
golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
@ -935,8 +936,9 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ
|
||||||
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78 h1:rPRtHfUb0UKZeZ6GH4K4Nt4YRbE9V1u+QZX5upZXqJQ=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c h1:SgVl/sCtkicsS7psKkje4H9YtjdEl3xsYh7N+5TDHqY=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-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=
|
||||||
|
@ -1022,8 +1024,8 @@ golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7 h1:iGu644GcxtEcrInvDsQRCwJjtCIOlT2V7IRt6ah2Whw=
|
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 h1:dXfMednGJh/SUUFjTLsWJz3P+TQt9qnR11GgeI3vWKs=
|
||||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -1198,8 +1200,8 @@ google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6D
|
||||||
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
|
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
|
||||||
google.golang.org/genproto v0.0.0-20210413151531-c14fb6ef47c3/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
google.golang.org/genproto v0.0.0-20210413151531-c14fb6ef47c3/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
||||||
google.golang.org/genproto v0.0.0-20210420162539-3c870d7478d2/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
google.golang.org/genproto v0.0.0-20210420162539-3c870d7478d2/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
||||||
google.golang.org/genproto v0.0.0-20210423144448-3a41ef94ed2b h1:Rt15zyw7G2yfLqmsjEa1xICjWEw+topkn7vEAR6bVPk=
|
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab h1:dkb90hr43A2Q5as5ZBphcOF2II0+EqfCBqGp7qFSpN4=
|
||||||
google.golang.org/genproto v0.0.0-20210423144448-3a41ef94ed2b/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
||||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
|
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
|
||||||
|
|
|
@ -4,12 +4,14 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/encoding"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/encoding"
|
||||||
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/fasttime"
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logger"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logger"
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/prompb"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/prompb"
|
||||||
)
|
)
|
||||||
|
@ -447,7 +449,7 @@ func MarshalMetricNameRaw(dst []byte, labels []prompb.Label) []byte {
|
||||||
dstSize := dstLen
|
dstSize := dstLen
|
||||||
for i := range labels {
|
for i := range labels {
|
||||||
if i >= maxLabelsPerTimeseries {
|
if i >= maxLabelsPerTimeseries {
|
||||||
atomic.AddUint64(&MetricsWithDroppedLabels, 1)
|
trackDroppedLabels(labels, labels[i:])
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
label := &labels[i]
|
label := &labels[i]
|
||||||
|
@ -499,6 +501,47 @@ var (
|
||||||
TooLongLabelValues uint64
|
TooLongLabelValues uint64
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func trackDroppedLabels(labels, droppedLabels []prompb.Label) {
|
||||||
|
atomic.AddUint64(&MetricsWithDroppedLabels, 1)
|
||||||
|
ct := fasttime.UnixTimestamp()
|
||||||
|
if ct < atomic.LoadUint64(&droppedLabelsLogNextTimestamp) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
droppedLabelsLogOnce.Do(func() {
|
||||||
|
atomic.StoreUint64(&droppedLabelsLogNextTimestamp, ct+5)
|
||||||
|
logger.Infof("dropping %d labels for %s; dropped labels: %s; either reduce the number of labels for this metric "+
|
||||||
|
"or increase -maxLabelsPerTimeseries=%d command-line flag value",
|
||||||
|
len(droppedLabels), labelsToString(labels), labelsToString(droppedLabels), maxLabelsPerTimeseries)
|
||||||
|
droppedLabelsLogOnce = &sync.Once{}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
var droppedLabelsLogOnce = &sync.Once{}
|
||||||
|
var droppedLabelsLogNextTimestamp uint64
|
||||||
|
|
||||||
|
func labelsToString(labels []prompb.Label) string {
|
||||||
|
labelsCopy := append([]prompb.Label{}, labels...)
|
||||||
|
sort.Slice(labelsCopy, func(i, j int) bool {
|
||||||
|
return string(labelsCopy[i].Name) < string(labelsCopy[j].Name)
|
||||||
|
})
|
||||||
|
var b []byte
|
||||||
|
b = append(b, '{')
|
||||||
|
for i, label := range labelsCopy {
|
||||||
|
if len(label.Name) == 0 {
|
||||||
|
b = append(b, "__name__"...)
|
||||||
|
} else {
|
||||||
|
b = append(b, label.Name...)
|
||||||
|
}
|
||||||
|
b = append(b, '=')
|
||||||
|
b = strconv.AppendQuote(b, string(label.Value))
|
||||||
|
if i < len(labels)-1 {
|
||||||
|
b = append(b, ',')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b = append(b, '}')
|
||||||
|
return string(b)
|
||||||
|
}
|
||||||
|
|
||||||
// marshalRaw marshals mn to dst and returns the result.
|
// marshalRaw marshals mn to dst and returns the result.
|
||||||
//
|
//
|
||||||
// The results may be unmarshaled with MetricName.unmarshalRaw.
|
// The results may be unmarshaled with MetricName.unmarshalRaw.
|
||||||
|
|
1
vendor/github.com/VividCortex/ewma/.gitignore
generated
vendored
1
vendor/github.com/VividCortex/ewma/.gitignore
generated
vendored
|
@ -1,2 +1,3 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.*.sw?
|
.*.sw?
|
||||||
|
/coverage.txt
|
3
vendor/github.com/VividCortex/ewma/.whitesource
generated
vendored
Normal file
3
vendor/github.com/VividCortex/ewma/.whitesource
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"settingsInheritedFrom": "VividCortex/whitesource-config@master"
|
||||||
|
}
|
7
vendor/github.com/VividCortex/ewma/README.md
generated
vendored
7
vendor/github.com/VividCortex/ewma/README.md
generated
vendored
|
@ -1,4 +1,8 @@
|
||||||
# EWMA [![GoDoc](https://godoc.org/github.com/VividCortex/ewma?status.svg)](https://godoc.org/github.com/VividCortex/ewma) ![Build Status](https://circleci.com/gh/VividCortex/moving_average.png?circle-token=1459fa37f9ca0e50cef05d1963146d96d47ea523)
|
# EWMA
|
||||||
|
|
||||||
|
[![GoDoc](https://godoc.org/github.com/VividCortex/ewma?status.svg)](https://godoc.org/github.com/VividCortex/ewma)
|
||||||
|
![build](https://github.com/VividCortex/ewma/workflows/build/badge.svg)
|
||||||
|
[![codecov](https://codecov.io/gh/VividCortex/ewma/branch/master/graph/badge.svg)](https://codecov.io/gh/VividCortex/ewma)
|
||||||
|
|
||||||
This repo provides Exponentially Weighted Moving Average algorithms, or EWMAs for short, [based on our
|
This repo provides Exponentially Weighted Moving Average algorithms, or EWMAs for short, [based on our
|
||||||
Quantifying Abnormal Behavior talk](https://vividcortex.com/blog/2013/07/23/a-fast-go-library-for-exponential-moving-averages/).
|
Quantifying Abnormal Behavior talk](https://vividcortex.com/blog/2013/07/23/a-fast-go-library-for-exponential-moving-averages/).
|
||||||
|
@ -103,6 +107,7 @@ View the GoDoc generated documentation [here](http://godoc.org/github.com/VividC
|
||||||
|
|
||||||
```go
|
```go
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "github.com/VividCortex/ewma"
|
import "github.com/VividCortex/ewma"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
6
vendor/github.com/VividCortex/ewma/codecov.yml
generated
vendored
Normal file
6
vendor/github.com/VividCortex/ewma/codecov.yml
generated
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
coverage:
|
||||||
|
status:
|
||||||
|
project:
|
||||||
|
default:
|
||||||
|
threshold: 15%
|
||||||
|
patch: off
|
3
vendor/github.com/VividCortex/ewma/go.mod
generated
vendored
Normal file
3
vendor/github.com/VividCortex/ewma/go.mod
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
module github.com/VividCortex/ewma
|
||||||
|
|
||||||
|
go 1.12
|
2
vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
generated
vendored
|
@ -178,7 +178,7 @@ func handleSendError(r *request.Request, err error) {
|
||||||
var ValidateResponseHandler = request.NamedHandler{Name: "core.ValidateResponseHandler", Fn: func(r *request.Request) {
|
var ValidateResponseHandler = request.NamedHandler{Name: "core.ValidateResponseHandler", Fn: func(r *request.Request) {
|
||||||
if r.HTTPResponse.StatusCode == 0 || r.HTTPResponse.StatusCode >= 300 {
|
if r.HTTPResponse.StatusCode == 0 || r.HTTPResponse.StatusCode >= 300 {
|
||||||
// this may be replaced by an UnmarshalError handler
|
// this may be replaced by an UnmarshalError handler
|
||||||
r.Error = awserr.New("UnknownError", "unknown error", nil)
|
r.Error = awserr.New("UnknownError", "unknown error", r.Error)
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
1
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
1
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
|
@ -7985,6 +7985,7 @@ var awscnPartition = partition{
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
"cn-north-1": endpoint{},
|
"cn-north-1": endpoint{},
|
||||||
|
"cn-northwest-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"runtime.sagemaker": service{
|
"runtime.sagemaker": service{
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
|
@ -5,4 +5,4 @@ package aws
|
||||||
const SDKName = "aws-sdk-go"
|
const SDKName = "aws-sdk-go"
|
||||||
|
|
||||||
// SDKVersion is the version of this SDK
|
// SDKVersion is the version of this SDK
|
||||||
const SDKVersion = "1.38.25"
|
const SDKVersion = "1.38.30"
|
||||||
|
|
|
@ -5,6 +5,10 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// InputWriterCloseErrorCode is used to denote an error occurred
|
||||||
|
// while closing the event stream input writer.
|
||||||
|
const InputWriterCloseErrorCode = "EventStreamInputWriterCloseError"
|
||||||
|
|
||||||
type messageError struct {
|
type messageError struct {
|
||||||
code string
|
code string
|
||||||
msg string
|
msg string
|
||||||
|
|
46
vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/writer.go
generated
vendored
46
vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/writer.go
generated
vendored
|
@ -61,49 +61,3 @@ func (w *EventWriter) marshal(event Marshaler) (eventstream.Message, error) {
|
||||||
msg.Headers.Set(EventTypeHeader, eventstream.StringValue(eventType))
|
msg.Headers.Set(EventTypeHeader, eventstream.StringValue(eventType))
|
||||||
return msg, nil
|
return msg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
//type EventEncoder struct {
|
|
||||||
// encoder Encoder
|
|
||||||
// ppayloadMarshaler protocol.PayloadMarshaler
|
|
||||||
// eventTypeFor func(Marshaler) (string, error)
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//func (e EventEncoder) Encode(event Marshaler) error {
|
|
||||||
// msg, err := e.marshal(event)
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return w.encoder.Encode(msg)
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//func (e EventEncoder) marshal(event Marshaler) (eventstream.Message, error) {
|
|
||||||
// eventType, err := w.eventTypeFor(event)
|
|
||||||
// if err != nil {
|
|
||||||
// return eventstream.Message{}, err
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// msg, err := event.MarshalEvent(w.payloadMarshaler)
|
|
||||||
// if err != nil {
|
|
||||||
// return eventstream.Message{}, err
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// msg.Headers.Set(EventTypeHeader, eventstream.StringValue(eventType))
|
|
||||||
// return msg, nil
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//func (w *EventWriter) marshal(event Marshaler) (eventstream.Message, error) {
|
|
||||||
// eventType, err := w.eventTypeFor(event)
|
|
||||||
// if err != nil {
|
|
||||||
// return eventstream.Message{}, err
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// msg, err := event.MarshalEvent(w.payloadMarshaler)
|
|
||||||
// if err != nil {
|
|
||||||
// return eventstream.Message{}, err
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// msg.Headers.Set(EventTypeHeader, eventstream.StringValue(eventType))
|
|
||||||
// return msg, nil
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
generated
vendored
|
@ -308,6 +308,8 @@ func (b *xmlBuilder) buildScalar(value reflect.Value, current *XMLNode, tag refl
|
||||||
if tag.Get("xmlAttribute") != "" { // put into current node's attribute list
|
if tag.Get("xmlAttribute") != "" { // put into current node's attribute list
|
||||||
attr := xml.Attr{Name: xname, Value: str}
|
attr := xml.Attr{Name: xname, Value: str}
|
||||||
current.Attr = append(current.Attr, attr)
|
current.Attr = append(current.Attr, attr)
|
||||||
|
} else if len(xname.Local) == 0 {
|
||||||
|
current.Text = str
|
||||||
} else { // regular text node
|
} else { // regular text node
|
||||||
current.AddChild(&XMLNode{Name: xname, Text: str})
|
current.AddChild(&XMLNode{Name: xname, Text: str})
|
||||||
}
|
}
|
||||||
|
|
22
vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go
generated
vendored
22
vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go
generated
vendored
|
@ -18,6 +18,14 @@ type XMLNode struct {
|
||||||
parent *XMLNode
|
parent *XMLNode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// textEncoder is a string type alias that implemnts the TextMarshaler interface.
|
||||||
|
// This alias type is used to ensure that the line feed (\n) (U+000A) is escaped.
|
||||||
|
type textEncoder string
|
||||||
|
|
||||||
|
func (t textEncoder) MarshalText() ([]byte, error) {
|
||||||
|
return []byte(t), nil
|
||||||
|
}
|
||||||
|
|
||||||
// NewXMLElement returns a pointer to a new XMLNode initialized to default values.
|
// NewXMLElement returns a pointer to a new XMLNode initialized to default values.
|
||||||
func NewXMLElement(name xml.Name) *XMLNode {
|
func NewXMLElement(name xml.Name) *XMLNode {
|
||||||
return &XMLNode{
|
return &XMLNode{
|
||||||
|
@ -130,11 +138,16 @@ func StructToXML(e *xml.Encoder, node *XMLNode, sorted bool) error {
|
||||||
attrs = sortedAttrs
|
attrs = sortedAttrs
|
||||||
}
|
}
|
||||||
|
|
||||||
e.EncodeToken(xml.StartElement{Name: node.Name, Attr: attrs})
|
startElement := xml.StartElement{Name: node.Name, Attr: attrs}
|
||||||
|
|
||||||
if node.Text != "" {
|
if node.Text != "" {
|
||||||
e.EncodeToken(xml.CharData([]byte(node.Text)))
|
e.EncodeElement(textEncoder(node.Text), startElement)
|
||||||
} else if sorted {
|
return e.Flush()
|
||||||
|
}
|
||||||
|
|
||||||
|
e.EncodeToken(startElement)
|
||||||
|
|
||||||
|
if sorted {
|
||||||
sortedNames := []string{}
|
sortedNames := []string{}
|
||||||
for k := range node.Children {
|
for k := range node.Children {
|
||||||
sortedNames = append(sortedNames, k)
|
sortedNames = append(sortedNames, k)
|
||||||
|
@ -154,6 +167,7 @@ func StructToXML(e *xml.Encoder, node *XMLNode, sorted bool) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
e.EncodeToken(xml.EndElement{Name: node.Name})
|
e.EncodeToken(startElement.End())
|
||||||
|
|
||||||
return e.Flush()
|
return e.Flush()
|
||||||
}
|
}
|
||||||
|
|
10
vendor/golang.org/x/net/http/httpguts/httplex.go
generated
vendored
10
vendor/golang.org/x/net/http/httpguts/httplex.go
generated
vendored
|
@ -137,11 +137,13 @@ func trimOWS(x string) string {
|
||||||
// contains token amongst its comma-separated tokens, ASCII
|
// contains token amongst its comma-separated tokens, ASCII
|
||||||
// case-insensitively.
|
// case-insensitively.
|
||||||
func headerValueContainsToken(v string, token string) bool {
|
func headerValueContainsToken(v string, token string) bool {
|
||||||
v = trimOWS(v)
|
for comma := strings.IndexByte(v, ','); comma != -1; comma = strings.IndexByte(v, ',') {
|
||||||
if comma := strings.IndexByte(v, ','); comma != -1 {
|
if tokenEqual(trimOWS(v[:comma]), token) {
|
||||||
return tokenEqual(trimOWS(v[:comma]), token) || headerValueContainsToken(v[comma+1:], token)
|
return true
|
||||||
}
|
}
|
||||||
return tokenEqual(v, token)
|
v = v[comma+1:]
|
||||||
|
}
|
||||||
|
return tokenEqual(trimOWS(v), token)
|
||||||
}
|
}
|
||||||
|
|
||||||
// lowerASCII returns the ASCII lowercase version of b.
|
// lowerASCII returns the ASCII lowercase version of b.
|
||||||
|
|
56
vendor/golang.org/x/oauth2/authhandler/authhandler.go
generated
vendored
Normal file
56
vendor/golang.org/x/oauth2/authhandler/authhandler.go
generated
vendored
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
// Copyright 2021 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.
|
||||||
|
|
||||||
|
// Package authhandler implements a TokenSource to support
|
||||||
|
// "three-legged OAuth 2.0" via a custom AuthorizationHandler.
|
||||||
|
package authhandler
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
"golang.org/x/oauth2"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AuthorizationHandler is a 3-legged-OAuth helper that prompts
|
||||||
|
// the user for OAuth consent at the specified auth code URL
|
||||||
|
// and returns an auth code and state upon approval.
|
||||||
|
type AuthorizationHandler func(authCodeURL string) (code string, state string, err error)
|
||||||
|
|
||||||
|
// TokenSource returns an oauth2.TokenSource that fetches access tokens
|
||||||
|
// using 3-legged-OAuth flow.
|
||||||
|
//
|
||||||
|
// The provided context.Context is used for oauth2 Exchange operation.
|
||||||
|
//
|
||||||
|
// The provided oauth2.Config should be a full configuration containing AuthURL,
|
||||||
|
// TokenURL, and Scope.
|
||||||
|
//
|
||||||
|
// An environment-specific AuthorizationHandler is used to obtain user consent.
|
||||||
|
//
|
||||||
|
// Per the OAuth protocol, a unique "state" string should be specified here.
|
||||||
|
// This token source will verify that the "state" is identical in the request
|
||||||
|
// and response before exchanging the auth code for OAuth token to prevent CSRF
|
||||||
|
// attacks.
|
||||||
|
func TokenSource(ctx context.Context, config *oauth2.Config, state string, authHandler AuthorizationHandler) oauth2.TokenSource {
|
||||||
|
return oauth2.ReuseTokenSource(nil, authHandlerSource{config: config, ctx: ctx, authHandler: authHandler, state: state})
|
||||||
|
}
|
||||||
|
|
||||||
|
type authHandlerSource struct {
|
||||||
|
ctx context.Context
|
||||||
|
config *oauth2.Config
|
||||||
|
authHandler AuthorizationHandler
|
||||||
|
state string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (source authHandlerSource) Token() (*oauth2.Token, error) {
|
||||||
|
url := source.config.AuthCodeURL(source.state)
|
||||||
|
code, state, err := source.authHandler(url)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if state != source.state {
|
||||||
|
return nil, errors.New("state mismatch in 3-legged-OAuth flow")
|
||||||
|
}
|
||||||
|
return source.config.Exchange(source.ctx, code)
|
||||||
|
}
|
89
vendor/golang.org/x/oauth2/google/default.go
generated
vendored
89
vendor/golang.org/x/oauth2/google/default.go
generated
vendored
|
@ -16,6 +16,7 @@ import (
|
||||||
|
|
||||||
"cloud.google.com/go/compute/metadata"
|
"cloud.google.com/go/compute/metadata"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
|
"golang.org/x/oauth2/authhandler"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Credentials holds Google credentials, including "Application Default Credentials".
|
// Credentials holds Google credentials, including "Application Default Credentials".
|
||||||
|
@ -41,6 +42,32 @@ type Credentials struct {
|
||||||
// Deprecated: use Credentials instead.
|
// Deprecated: use Credentials instead.
|
||||||
type DefaultCredentials = Credentials
|
type DefaultCredentials = Credentials
|
||||||
|
|
||||||
|
// CredentialsParams holds user supplied parameters that are used together
|
||||||
|
// with a credentials file for building a Credentials object.
|
||||||
|
type CredentialsParams struct {
|
||||||
|
// Scopes is the list OAuth scopes. Required.
|
||||||
|
// Example: https://www.googleapis.com/auth/cloud-platform
|
||||||
|
Scopes []string
|
||||||
|
|
||||||
|
// Subject is the user email used for domain wide delegation (see
|
||||||
|
// https://developers.google.com/identity/protocols/oauth2/service-account#delegatingauthority).
|
||||||
|
// Optional.
|
||||||
|
Subject string
|
||||||
|
|
||||||
|
// AuthHandler is the AuthorizationHandler used for 3-legged OAuth flow. Optional.
|
||||||
|
AuthHandler authhandler.AuthorizationHandler
|
||||||
|
|
||||||
|
// State is a unique string used with AuthHandler. Optional.
|
||||||
|
State string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (params CredentialsParams) deepCopy() CredentialsParams {
|
||||||
|
paramsCopy := params
|
||||||
|
paramsCopy.Scopes = make([]string, len(params.Scopes))
|
||||||
|
copy(paramsCopy.Scopes, params.Scopes)
|
||||||
|
return paramsCopy
|
||||||
|
}
|
||||||
|
|
||||||
// DefaultClient returns an HTTP Client that uses the
|
// DefaultClient returns an HTTP Client that uses the
|
||||||
// DefaultTokenSource to obtain authentication credentials.
|
// DefaultTokenSource to obtain authentication credentials.
|
||||||
func DefaultClient(ctx context.Context, scope ...string) (*http.Client, error) {
|
func DefaultClient(ctx context.Context, scope ...string) (*http.Client, error) {
|
||||||
|
@ -62,7 +89,7 @@ func DefaultTokenSource(ctx context.Context, scope ...string) (oauth2.TokenSourc
|
||||||
return creds.TokenSource, nil
|
return creds.TokenSource, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// FindDefaultCredentials searches for "Application Default Credentials".
|
// FindDefaultCredentialsWithParams searches for "Application Default Credentials".
|
||||||
//
|
//
|
||||||
// It looks for credentials in the following places,
|
// It looks for credentials in the following places,
|
||||||
// preferring the first location found:
|
// preferring the first location found:
|
||||||
|
@ -81,11 +108,14 @@ func DefaultTokenSource(ctx context.Context, scope ...string) (oauth2.TokenSourc
|
||||||
// 4. On Google Compute Engine, Google App Engine standard second generation runtimes
|
// 4. On Google Compute Engine, Google App Engine standard second generation runtimes
|
||||||
// (>= Go 1.11), and Google App Engine flexible environment, it fetches
|
// (>= Go 1.11), and Google App Engine flexible environment, it fetches
|
||||||
// credentials from the metadata server.
|
// credentials from the metadata server.
|
||||||
func FindDefaultCredentials(ctx context.Context, scopes ...string) (*Credentials, error) {
|
func FindDefaultCredentialsWithParams(ctx context.Context, params CredentialsParams) (*Credentials, error) {
|
||||||
|
// Make defensive copy of the slices in params.
|
||||||
|
params = params.deepCopy()
|
||||||
|
|
||||||
// First, try the environment variable.
|
// First, try the environment variable.
|
||||||
const envVar = "GOOGLE_APPLICATION_CREDENTIALS"
|
const envVar = "GOOGLE_APPLICATION_CREDENTIALS"
|
||||||
if filename := os.Getenv(envVar); filename != "" {
|
if filename := os.Getenv(envVar); filename != "" {
|
||||||
creds, err := readCredentialsFile(ctx, filename, scopes)
|
creds, err := readCredentialsFile(ctx, filename, params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("google: error getting credentials using %v environment variable: %v", envVar, err)
|
return nil, fmt.Errorf("google: error getting credentials using %v environment variable: %v", envVar, err)
|
||||||
}
|
}
|
||||||
|
@ -94,7 +124,7 @@ func FindDefaultCredentials(ctx context.Context, scopes ...string) (*Credentials
|
||||||
|
|
||||||
// Second, try a well-known file.
|
// Second, try a well-known file.
|
||||||
filename := wellKnownFile()
|
filename := wellKnownFile()
|
||||||
if creds, err := readCredentialsFile(ctx, filename, scopes); err == nil {
|
if creds, err := readCredentialsFile(ctx, filename, params); err == nil {
|
||||||
return creds, nil
|
return creds, nil
|
||||||
} else if !os.IsNotExist(err) {
|
} else if !os.IsNotExist(err) {
|
||||||
return nil, fmt.Errorf("google: error getting credentials using well-known file (%v): %v", filename, err)
|
return nil, fmt.Errorf("google: error getting credentials using well-known file (%v): %v", filename, err)
|
||||||
|
@ -106,7 +136,7 @@ func FindDefaultCredentials(ctx context.Context, scopes ...string) (*Credentials
|
||||||
if appengineTokenFunc != nil {
|
if appengineTokenFunc != nil {
|
||||||
return &DefaultCredentials{
|
return &DefaultCredentials{
|
||||||
ProjectID: appengineAppIDFunc(ctx),
|
ProjectID: appengineAppIDFunc(ctx),
|
||||||
TokenSource: AppEngineTokenSource(ctx, scopes...),
|
TokenSource: AppEngineTokenSource(ctx, params.Scopes...),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +146,7 @@ func FindDefaultCredentials(ctx context.Context, scopes ...string) (*Credentials
|
||||||
id, _ := metadata.ProjectID()
|
id, _ := metadata.ProjectID()
|
||||||
return &DefaultCredentials{
|
return &DefaultCredentials{
|
||||||
ProjectID: id,
|
ProjectID: id,
|
||||||
TokenSource: ComputeTokenSource("", scopes...),
|
TokenSource: ComputeTokenSource("", params.Scopes...),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,18 +155,38 @@ func FindDefaultCredentials(ctx context.Context, scopes ...string) (*Credentials
|
||||||
return nil, fmt.Errorf("google: could not find default credentials. See %v for more information.", url)
|
return nil, fmt.Errorf("google: could not find default credentials. See %v for more information.", url)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CredentialsFromJSON obtains Google credentials from a JSON value. The JSON can
|
// FindDefaultCredentials invokes FindDefaultCredentialsWithParams with the specified scopes.
|
||||||
// represent either a Google Developers Console client_credentials.json file (as in
|
func FindDefaultCredentials(ctx context.Context, scopes ...string) (*Credentials, error) {
|
||||||
// ConfigFromJSON), a Google Developers service account key file (as in
|
var params CredentialsParams
|
||||||
// JWTConfigFromJSON) or the JSON configuration file for workload identity federation
|
params.Scopes = scopes
|
||||||
// in non-Google cloud platforms (see
|
return FindDefaultCredentialsWithParams(ctx, params)
|
||||||
// https://cloud.google.com/iam/docs/how-to#using-workload-identity-federation).
|
}
|
||||||
func CredentialsFromJSON(ctx context.Context, jsonData []byte, scopes ...string) (*Credentials, error) {
|
|
||||||
|
// CredentialsFromJSONWithParams obtains Google credentials from a JSON value. The JSON can
|
||||||
|
// represent either a Google Developers Console client_credentials.json file (as in ConfigFromJSON),
|
||||||
|
// a Google Developers service account key file, a gcloud user credentials file (a.k.a. refresh
|
||||||
|
// token JSON), or the JSON configuration file for workload identity federation in non-Google cloud
|
||||||
|
// platforms (see https://cloud.google.com/iam/docs/how-to#using-workload-identity-federation).
|
||||||
|
func CredentialsFromJSONWithParams(ctx context.Context, jsonData []byte, params CredentialsParams) (*Credentials, error) {
|
||||||
|
// Make defensive copy of the slices in params.
|
||||||
|
params = params.deepCopy()
|
||||||
|
|
||||||
|
// First, attempt to parse jsonData as a Google Developers Console client_credentials.json.
|
||||||
|
config, _ := ConfigFromJSON(jsonData, params.Scopes...)
|
||||||
|
if config != nil {
|
||||||
|
return &Credentials{
|
||||||
|
ProjectID: "",
|
||||||
|
TokenSource: authhandler.TokenSource(ctx, config, params.State, params.AuthHandler),
|
||||||
|
JSON: jsonData,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, parse jsonData as one of the other supported credentials files.
|
||||||
var f credentialsFile
|
var f credentialsFile
|
||||||
if err := json.Unmarshal(jsonData, &f); err != nil {
|
if err := json.Unmarshal(jsonData, &f); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ts, err := f.tokenSource(ctx, append([]string(nil), scopes...))
|
ts, err := f.tokenSource(ctx, params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -147,6 +197,13 @@ func CredentialsFromJSON(ctx context.Context, jsonData []byte, scopes ...string)
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CredentialsFromJSON invokes CredentialsFromJSONWithParams with the specified scopes.
|
||||||
|
func CredentialsFromJSON(ctx context.Context, jsonData []byte, scopes ...string) (*Credentials, error) {
|
||||||
|
var params CredentialsParams
|
||||||
|
params.Scopes = scopes
|
||||||
|
return CredentialsFromJSONWithParams(ctx, jsonData, params)
|
||||||
|
}
|
||||||
|
|
||||||
func wellKnownFile() string {
|
func wellKnownFile() string {
|
||||||
const f = "application_default_credentials.json"
|
const f = "application_default_credentials.json"
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
|
@ -155,10 +212,10 @@ func wellKnownFile() string {
|
||||||
return filepath.Join(guessUnixHomeDir(), ".config", "gcloud", f)
|
return filepath.Join(guessUnixHomeDir(), ".config", "gcloud", f)
|
||||||
}
|
}
|
||||||
|
|
||||||
func readCredentialsFile(ctx context.Context, filename string, scopes []string) (*DefaultCredentials, error) {
|
func readCredentialsFile(ctx context.Context, filename string, params CredentialsParams) (*DefaultCredentials, error) {
|
||||||
b, err := ioutil.ReadFile(filename)
|
b, err := ioutil.ReadFile(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return CredentialsFromJSON(ctx, b, scopes...)
|
return CredentialsFromJSONWithParams(ctx, b, params)
|
||||||
}
|
}
|
||||||
|
|
30
vendor/golang.org/x/oauth2/google/google.go
generated
vendored
30
vendor/golang.org/x/oauth2/google/google.go
generated
vendored
|
@ -19,7 +19,7 @@ import (
|
||||||
"golang.org/x/oauth2/jwt"
|
"golang.org/x/oauth2/jwt"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Endpoint is Google's OAuth 2.0 endpoint.
|
// Endpoint is Google's OAuth 2.0 default endpoint.
|
||||||
var Endpoint = oauth2.Endpoint{
|
var Endpoint = oauth2.Endpoint{
|
||||||
AuthURL: "https://accounts.google.com/o/oauth2/auth",
|
AuthURL: "https://accounts.google.com/o/oauth2/auth",
|
||||||
TokenURL: "https://oauth2.googleapis.com/token",
|
TokenURL: "https://oauth2.googleapis.com/token",
|
||||||
|
@ -87,7 +87,7 @@ func JWTConfigFromJSON(jsonKey []byte, scope ...string) (*jwt.Config, error) {
|
||||||
return nil, fmt.Errorf("google: read JWT from JSON credentials: 'type' field is %q (expected %q)", f.Type, serviceAccountKey)
|
return nil, fmt.Errorf("google: read JWT from JSON credentials: 'type' field is %q (expected %q)", f.Type, serviceAccountKey)
|
||||||
}
|
}
|
||||||
scope = append([]string(nil), scope...) // copy
|
scope = append([]string(nil), scope...) // copy
|
||||||
return f.jwtConfig(scope), nil
|
return f.jwtConfig(scope, ""), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// JSON key file types.
|
// JSON key file types.
|
||||||
|
@ -99,12 +99,13 @@ const (
|
||||||
|
|
||||||
// credentialsFile is the unmarshalled representation of a credentials file.
|
// credentialsFile is the unmarshalled representation of a credentials file.
|
||||||
type credentialsFile struct {
|
type credentialsFile struct {
|
||||||
Type string `json:"type"` // serviceAccountKey or userCredentialsKey
|
Type string `json:"type"`
|
||||||
|
|
||||||
// Service Account fields
|
// Service Account fields
|
||||||
ClientEmail string `json:"client_email"`
|
ClientEmail string `json:"client_email"`
|
||||||
PrivateKeyID string `json:"private_key_id"`
|
PrivateKeyID string `json:"private_key_id"`
|
||||||
PrivateKey string `json:"private_key"`
|
PrivateKey string `json:"private_key"`
|
||||||
|
AuthURL string `json:"auth_uri"`
|
||||||
TokenURL string `json:"token_uri"`
|
TokenURL string `json:"token_uri"`
|
||||||
ProjectID string `json:"project_id"`
|
ProjectID string `json:"project_id"`
|
||||||
|
|
||||||
|
@ -124,13 +125,14 @@ type credentialsFile struct {
|
||||||
QuotaProjectID string `json:"quota_project_id"`
|
QuotaProjectID string `json:"quota_project_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *credentialsFile) jwtConfig(scopes []string) *jwt.Config {
|
func (f *credentialsFile) jwtConfig(scopes []string, subject string) *jwt.Config {
|
||||||
cfg := &jwt.Config{
|
cfg := &jwt.Config{
|
||||||
Email: f.ClientEmail,
|
Email: f.ClientEmail,
|
||||||
PrivateKey: []byte(f.PrivateKey),
|
PrivateKey: []byte(f.PrivateKey),
|
||||||
PrivateKeyID: f.PrivateKeyID,
|
PrivateKeyID: f.PrivateKeyID,
|
||||||
Scopes: scopes,
|
Scopes: scopes,
|
||||||
TokenURL: f.TokenURL,
|
TokenURL: f.TokenURL,
|
||||||
|
Subject: subject, // This is the user email to impersonate
|
||||||
}
|
}
|
||||||
if cfg.TokenURL == "" {
|
if cfg.TokenURL == "" {
|
||||||
cfg.TokenURL = JWTTokenURL
|
cfg.TokenURL = JWTTokenURL
|
||||||
|
@ -138,17 +140,27 @@ func (f *credentialsFile) jwtConfig(scopes []string) *jwt.Config {
|
||||||
return cfg
|
return cfg
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *credentialsFile) tokenSource(ctx context.Context, scopes []string) (oauth2.TokenSource, error) {
|
func (f *credentialsFile) tokenSource(ctx context.Context, params CredentialsParams) (oauth2.TokenSource, error) {
|
||||||
switch f.Type {
|
switch f.Type {
|
||||||
case serviceAccountKey:
|
case serviceAccountKey:
|
||||||
cfg := f.jwtConfig(scopes)
|
cfg := f.jwtConfig(params.Scopes, params.Subject)
|
||||||
return cfg.TokenSource(ctx), nil
|
return cfg.TokenSource(ctx), nil
|
||||||
case userCredentialsKey:
|
case userCredentialsKey:
|
||||||
cfg := &oauth2.Config{
|
cfg := &oauth2.Config{
|
||||||
ClientID: f.ClientID,
|
ClientID: f.ClientID,
|
||||||
ClientSecret: f.ClientSecret,
|
ClientSecret: f.ClientSecret,
|
||||||
Scopes: scopes,
|
Scopes: params.Scopes,
|
||||||
Endpoint: Endpoint,
|
Endpoint: oauth2.Endpoint{
|
||||||
|
AuthURL: f.AuthURL,
|
||||||
|
TokenURL: f.TokenURL,
|
||||||
|
AuthStyle: oauth2.AuthStyleInParams,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if cfg.Endpoint.AuthURL == "" {
|
||||||
|
cfg.Endpoint.AuthURL = Endpoint.AuthURL
|
||||||
|
}
|
||||||
|
if cfg.Endpoint.TokenURL == "" {
|
||||||
|
cfg.Endpoint.TokenURL = Endpoint.TokenURL
|
||||||
}
|
}
|
||||||
tok := &oauth2.Token{RefreshToken: f.RefreshToken}
|
tok := &oauth2.Token{RefreshToken: f.RefreshToken}
|
||||||
return cfg.TokenSource(ctx, tok), nil
|
return cfg.TokenSource(ctx, tok), nil
|
||||||
|
@ -163,7 +175,7 @@ func (f *credentialsFile) tokenSource(ctx context.Context, scopes []string) (oau
|
||||||
ClientID: f.ClientID,
|
ClientID: f.ClientID,
|
||||||
CredentialSource: f.CredentialSource,
|
CredentialSource: f.CredentialSource,
|
||||||
QuotaProjectID: f.QuotaProjectID,
|
QuotaProjectID: f.QuotaProjectID,
|
||||||
Scopes: scopes,
|
Scopes: params.Scopes,
|
||||||
}
|
}
|
||||||
return cfg.TokenSource(ctx), nil
|
return cfg.TokenSource(ctx), nil
|
||||||
case "":
|
case "":
|
||||||
|
|
51
vendor/golang.org/x/sys/unix/syscall_illumos.go
generated
vendored
51
vendor/golang.org/x/sys/unix/syscall_illumos.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2009 The Go Authors. All rights reserved.
|
// Copyright 2021 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
@ -10,6 +10,8 @@
|
||||||
package unix
|
package unix
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"runtime"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -127,3 +129,50 @@ func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags
|
||||||
}
|
}
|
||||||
return retCl, retData, flags, nil
|
return retCl, retData, flags, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IoctlSetIntRetInt(fd int, req uint, arg int) (int, error) {
|
||||||
|
return ioctlRet(fd, req, uintptr(arg))
|
||||||
|
}
|
||||||
|
|
||||||
|
func IoctlSetString(fd int, req uint, val string) error {
|
||||||
|
bs := make([]byte, len(val)+1)
|
||||||
|
copy(bs[:len(bs)-1], val)
|
||||||
|
err := ioctl(fd, req, uintptr(unsafe.Pointer(&bs[0])))
|
||||||
|
runtime.KeepAlive(&bs[0])
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lifreq Helpers
|
||||||
|
|
||||||
|
func (l *Lifreq) SetName(name string) error {
|
||||||
|
if len(name) >= len(l.Name) {
|
||||||
|
return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1)
|
||||||
|
}
|
||||||
|
for i := range name {
|
||||||
|
l.Name[i] = int8(name[i])
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *Lifreq) SetLifruInt(d int) {
|
||||||
|
*(*int)(unsafe.Pointer(&l.Lifru[0])) = d
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *Lifreq) GetLifruInt() int {
|
||||||
|
return *(*int)(unsafe.Pointer(&l.Lifru[0]))
|
||||||
|
}
|
||||||
|
|
||||||
|
func IoctlLifreq(fd int, req uint, l *Lifreq) error {
|
||||||
|
return ioctl(fd, req, uintptr(unsafe.Pointer(l)))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Strioctl Helpers
|
||||||
|
|
||||||
|
func (s *Strioctl) SetInt(i int) {
|
||||||
|
s.Len = int32(unsafe.Sizeof(i))
|
||||||
|
s.Dp = (*int8)(unsafe.Pointer(&i))
|
||||||
|
}
|
||||||
|
|
||||||
|
func IoctlSetStrioctlRetInt(fd int, req uint, s *Strioctl) (int, error) {
|
||||||
|
return ioctlRet(fd, req, uintptr(unsafe.Pointer(s)))
|
||||||
|
}
|
||||||
|
|
4
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
4
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
|
@ -1151,7 +1151,11 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
|
||||||
func Accept(fd int) (nfd int, sa Sockaddr, err error) {
|
func Accept(fd int) (nfd int, sa Sockaddr, err error) {
|
||||||
var rsa RawSockaddrAny
|
var rsa RawSockaddrAny
|
||||||
var len _Socklen = SizeofSockaddrAny
|
var len _Socklen = SizeofSockaddrAny
|
||||||
|
// Try accept4 first for Android, then try accept for kernel older than 2.6.28
|
||||||
|
nfd, err = accept4(fd, &rsa, &len, 0)
|
||||||
|
if err == ENOSYS {
|
||||||
nfd, err = accept(fd, &rsa, &len)
|
nfd, err = accept(fd, &rsa, &len)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
23
vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
23
vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
|
@ -166,13 +166,16 @@ const (
|
||||||
BPF_ALU64 = 0x7
|
BPF_ALU64 = 0x7
|
||||||
BPF_AND = 0x50
|
BPF_AND = 0x50
|
||||||
BPF_ARSH = 0xc0
|
BPF_ARSH = 0xc0
|
||||||
|
BPF_ATOMIC = 0xc0
|
||||||
BPF_B = 0x10
|
BPF_B = 0x10
|
||||||
BPF_BUILD_ID_SIZE = 0x14
|
BPF_BUILD_ID_SIZE = 0x14
|
||||||
BPF_CALL = 0x80
|
BPF_CALL = 0x80
|
||||||
|
BPF_CMPXCHG = 0xf1
|
||||||
BPF_DIV = 0x30
|
BPF_DIV = 0x30
|
||||||
BPF_DW = 0x18
|
BPF_DW = 0x18
|
||||||
BPF_END = 0xd0
|
BPF_END = 0xd0
|
||||||
BPF_EXIT = 0x90
|
BPF_EXIT = 0x90
|
||||||
|
BPF_FETCH = 0x1
|
||||||
BPF_FROM_BE = 0x8
|
BPF_FROM_BE = 0x8
|
||||||
BPF_FROM_LE = 0x0
|
BPF_FROM_LE = 0x0
|
||||||
BPF_FS_MAGIC = 0xcafe4a11
|
BPF_FS_MAGIC = 0xcafe4a11
|
||||||
|
@ -240,6 +243,7 @@ const (
|
||||||
BPF_W = 0x0
|
BPF_W = 0x0
|
||||||
BPF_X = 0x8
|
BPF_X = 0x8
|
||||||
BPF_XADD = 0xc0
|
BPF_XADD = 0xc0
|
||||||
|
BPF_XCHG = 0xe1
|
||||||
BPF_XOR = 0xa0
|
BPF_XOR = 0xa0
|
||||||
BRKINT = 0x2
|
BRKINT = 0x2
|
||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
|
@ -490,9 +494,9 @@ const (
|
||||||
DM_UUID_FLAG = 0x4000
|
DM_UUID_FLAG = 0x4000
|
||||||
DM_UUID_LEN = 0x81
|
DM_UUID_LEN = 0x81
|
||||||
DM_VERSION = 0xc138fd00
|
DM_VERSION = 0xc138fd00
|
||||||
DM_VERSION_EXTRA = "-ioctl (2020-10-01)"
|
DM_VERSION_EXTRA = "-ioctl (2021-02-01)"
|
||||||
DM_VERSION_MAJOR = 0x4
|
DM_VERSION_MAJOR = 0x4
|
||||||
DM_VERSION_MINOR = 0x2b
|
DM_VERSION_MINOR = 0x2c
|
||||||
DM_VERSION_PATCHLEVEL = 0x0
|
DM_VERSION_PATCHLEVEL = 0x0
|
||||||
DT_BLK = 0x6
|
DT_BLK = 0x6
|
||||||
DT_CHR = 0x2
|
DT_CHR = 0x2
|
||||||
|
@ -860,6 +864,7 @@ const (
|
||||||
FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
|
FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
|
||||||
FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
|
FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
|
||||||
FS_IOC_MEASURE_VERITY = 0xc0046686
|
FS_IOC_MEASURE_VERITY = 0xc0046686
|
||||||
|
FS_IOC_READ_VERITY_METADATA = 0xc0286687
|
||||||
FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
|
FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
|
||||||
FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
|
FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
|
||||||
FS_KEY_DESCRIPTOR_SIZE = 0x8
|
FS_KEY_DESCRIPTOR_SIZE = 0x8
|
||||||
|
@ -875,6 +880,9 @@ const (
|
||||||
FS_VERITY_FL = 0x100000
|
FS_VERITY_FL = 0x100000
|
||||||
FS_VERITY_HASH_ALG_SHA256 = 0x1
|
FS_VERITY_HASH_ALG_SHA256 = 0x1
|
||||||
FS_VERITY_HASH_ALG_SHA512 = 0x2
|
FS_VERITY_HASH_ALG_SHA512 = 0x2
|
||||||
|
FS_VERITY_METADATA_TYPE_DESCRIPTOR = 0x2
|
||||||
|
FS_VERITY_METADATA_TYPE_MERKLE_TREE = 0x1
|
||||||
|
FS_VERITY_METADATA_TYPE_SIGNATURE = 0x3
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1673,6 +1681,10 @@ const (
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
PERF_MAX_CONTEXTS_PER_STACK = 0x8
|
PERF_MAX_CONTEXTS_PER_STACK = 0x8
|
||||||
PERF_MAX_STACK_DEPTH = 0x7f
|
PERF_MAX_STACK_DEPTH = 0x7f
|
||||||
|
PERF_MEM_BLK_ADDR = 0x4
|
||||||
|
PERF_MEM_BLK_DATA = 0x2
|
||||||
|
PERF_MEM_BLK_NA = 0x1
|
||||||
|
PERF_MEM_BLK_SHIFT = 0x28
|
||||||
PERF_MEM_LOCK_LOCKED = 0x2
|
PERF_MEM_LOCK_LOCKED = 0x2
|
||||||
PERF_MEM_LOCK_NA = 0x1
|
PERF_MEM_LOCK_NA = 0x1
|
||||||
PERF_MEM_LOCK_SHIFT = 0x18
|
PERF_MEM_LOCK_SHIFT = 0x18
|
||||||
|
@ -1736,12 +1748,14 @@ const (
|
||||||
PERF_RECORD_MISC_GUEST_USER = 0x5
|
PERF_RECORD_MISC_GUEST_USER = 0x5
|
||||||
PERF_RECORD_MISC_HYPERVISOR = 0x3
|
PERF_RECORD_MISC_HYPERVISOR = 0x3
|
||||||
PERF_RECORD_MISC_KERNEL = 0x1
|
PERF_RECORD_MISC_KERNEL = 0x1
|
||||||
|
PERF_RECORD_MISC_MMAP_BUILD_ID = 0x4000
|
||||||
PERF_RECORD_MISC_MMAP_DATA = 0x2000
|
PERF_RECORD_MISC_MMAP_DATA = 0x2000
|
||||||
PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000
|
PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000
|
||||||
PERF_RECORD_MISC_SWITCH_OUT = 0x2000
|
PERF_RECORD_MISC_SWITCH_OUT = 0x2000
|
||||||
PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000
|
PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000
|
||||||
PERF_RECORD_MISC_USER = 0x2
|
PERF_RECORD_MISC_USER = 0x2
|
||||||
PERF_SAMPLE_BRANCH_PLM_ALL = 0x7
|
PERF_SAMPLE_BRANCH_PLM_ALL = 0x7
|
||||||
|
PERF_SAMPLE_WEIGHT_TYPE = 0x1004000
|
||||||
PIPEFS_MAGIC = 0x50495045
|
PIPEFS_MAGIC = 0x50495045
|
||||||
PPC_CMM_MAGIC = 0xc7571590
|
PPC_CMM_MAGIC = 0xc7571590
|
||||||
PPPIOCGNPMODE = 0xc008744c
|
PPPIOCGNPMODE = 0xc008744c
|
||||||
|
@ -1995,6 +2009,10 @@ const (
|
||||||
RTCF_NAT = 0x800000
|
RTCF_NAT = 0x800000
|
||||||
RTCF_VALVE = 0x200000
|
RTCF_VALVE = 0x200000
|
||||||
RTC_AF = 0x20
|
RTC_AF = 0x20
|
||||||
|
RTC_FEATURE_ALARM = 0x0
|
||||||
|
RTC_FEATURE_ALARM_RES_MINUTE = 0x1
|
||||||
|
RTC_FEATURE_CNT = 0x3
|
||||||
|
RTC_FEATURE_NEED_WEEK_DAY = 0x2
|
||||||
RTC_IRQF = 0x80
|
RTC_IRQF = 0x80
|
||||||
RTC_MAX_FREQ = 0x2000
|
RTC_MAX_FREQ = 0x2000
|
||||||
RTC_PF = 0x40
|
RTC_PF = 0x40
|
||||||
|
@ -2068,6 +2086,7 @@ const (
|
||||||
RTM_F_LOOKUP_TABLE = 0x1000
|
RTM_F_LOOKUP_TABLE = 0x1000
|
||||||
RTM_F_NOTIFY = 0x100
|
RTM_F_NOTIFY = 0x100
|
||||||
RTM_F_OFFLOAD = 0x4000
|
RTM_F_OFFLOAD = 0x4000
|
||||||
|
RTM_F_OFFLOAD_FAILED = 0x20000000
|
||||||
RTM_F_PREFIX = 0x800
|
RTM_F_PREFIX = 0x800
|
||||||
RTM_F_TRAP = 0x8000
|
RTM_F_TRAP = 0x8000
|
||||||
RTM_GETACTION = 0x32
|
RTM_GETACTION = 0x32
|
||||||
|
|
2
vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
generated
vendored
2
vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
generated
vendored
|
@ -212,6 +212,8 @@ const (
|
||||||
PTRACE_POKE_SYSTEM_CALL = 0x5008
|
PTRACE_POKE_SYSTEM_CALL = 0x5008
|
||||||
PTRACE_PROT = 0x15
|
PTRACE_PROT = 0x15
|
||||||
PTRACE_SINGLEBLOCK = 0xc
|
PTRACE_SINGLEBLOCK = 0xc
|
||||||
|
PTRACE_SYSEMU = 0x1f
|
||||||
|
PTRACE_SYSEMU_SINGLESTEP = 0x20
|
||||||
PTRACE_TE_ABORT_RAND = 0x5011
|
PTRACE_TE_ABORT_RAND = 0x5011
|
||||||
PT_ACR0 = 0x90
|
PT_ACR0 = 0x90
|
||||||
PT_ACR1 = 0x94
|
PT_ACR1 = 0x94
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
generated
vendored
|
@ -438,4 +438,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
generated
vendored
|
@ -360,4 +360,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
generated
vendored
|
@ -402,4 +402,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
generated
vendored
|
@ -305,4 +305,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
generated
vendored
|
@ -423,4 +423,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 4439
|
SYS_FACCESSAT2 = 4439
|
||||||
SYS_PROCESS_MADVISE = 4440
|
SYS_PROCESS_MADVISE = 4440
|
||||||
SYS_EPOLL_PWAIT2 = 4441
|
SYS_EPOLL_PWAIT2 = 4441
|
||||||
|
SYS_MOUNT_SETATTR = 4442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
generated
vendored
|
@ -353,4 +353,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 5439
|
SYS_FACCESSAT2 = 5439
|
||||||
SYS_PROCESS_MADVISE = 5440
|
SYS_PROCESS_MADVISE = 5440
|
||||||
SYS_EPOLL_PWAIT2 = 5441
|
SYS_EPOLL_PWAIT2 = 5441
|
||||||
|
SYS_MOUNT_SETATTR = 5442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
generated
vendored
|
@ -353,4 +353,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 5439
|
SYS_FACCESSAT2 = 5439
|
||||||
SYS_PROCESS_MADVISE = 5440
|
SYS_PROCESS_MADVISE = 5440
|
||||||
SYS_EPOLL_PWAIT2 = 5441
|
SYS_EPOLL_PWAIT2 = 5441
|
||||||
|
SYS_MOUNT_SETATTR = 5442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
generated
vendored
|
@ -423,4 +423,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 4439
|
SYS_FACCESSAT2 = 4439
|
||||||
SYS_PROCESS_MADVISE = 4440
|
SYS_PROCESS_MADVISE = 4440
|
||||||
SYS_EPOLL_PWAIT2 = 4441
|
SYS_EPOLL_PWAIT2 = 4441
|
||||||
|
SYS_MOUNT_SETATTR = 4442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
generated
vendored
|
@ -430,4 +430,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
generated
vendored
|
@ -402,4 +402,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
generated
vendored
|
@ -402,4 +402,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
generated
vendored
|
@ -304,4 +304,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
generated
vendored
|
@ -367,4 +367,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
generated
vendored
|
@ -381,4 +381,5 @@ const (
|
||||||
SYS_FACCESSAT2 = 439
|
SYS_FACCESSAT2 = 439
|
||||||
SYS_PROCESS_MADVISE = 440
|
SYS_PROCESS_MADVISE = 440
|
||||||
SYS_EPOLL_PWAIT2 = 441
|
SYS_EPOLL_PWAIT2 = 441
|
||||||
|
SYS_MOUNT_SETATTR = 442
|
||||||
)
|
)
|
||||||
|
|
4
vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go
generated
vendored
|
@ -25,14 +25,14 @@ type strbuf struct {
|
||||||
Buf *int8
|
Buf *int8
|
||||||
}
|
}
|
||||||
|
|
||||||
type strioctl struct {
|
type Strioctl struct {
|
||||||
Cmd int32
|
Cmd int32
|
||||||
Timout int32
|
Timout int32
|
||||||
Len int32
|
Len int32
|
||||||
Dp *int8
|
Dp *int8
|
||||||
}
|
}
|
||||||
|
|
||||||
type lifreq struct {
|
type Lifreq struct {
|
||||||
Name [32]int8
|
Name [32]int8
|
||||||
Lifru1 [4]byte
|
Lifru1 [4]byte
|
||||||
Type uint32
|
Type uint32
|
||||||
|
|
15
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
15
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
|
@ -1016,7 +1016,10 @@ const (
|
||||||
PERF_SAMPLE_PHYS_ADDR = 0x80000
|
PERF_SAMPLE_PHYS_ADDR = 0x80000
|
||||||
PERF_SAMPLE_AUX = 0x100000
|
PERF_SAMPLE_AUX = 0x100000
|
||||||
PERF_SAMPLE_CGROUP = 0x200000
|
PERF_SAMPLE_CGROUP = 0x200000
|
||||||
PERF_SAMPLE_MAX = 0x1000000
|
PERF_SAMPLE_DATA_PAGE_SIZE = 0x400000
|
||||||
|
PERF_SAMPLE_CODE_PAGE_SIZE = 0x800000
|
||||||
|
PERF_SAMPLE_WEIGHT_STRUCT = 0x1000000
|
||||||
|
PERF_SAMPLE_MAX = 0x2000000
|
||||||
PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0
|
PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0
|
||||||
PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1
|
PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1
|
||||||
PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2
|
PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2
|
||||||
|
@ -3126,7 +3129,8 @@ const (
|
||||||
DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1
|
DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1
|
||||||
DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2
|
DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2
|
||||||
DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3
|
DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3
|
||||||
DEVLINK_ATTR_MAX = 0xa3
|
DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 0xa4
|
||||||
|
DEVLINK_ATTR_MAX = 0xa4
|
||||||
DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
|
DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
|
||||||
DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
|
DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
|
||||||
DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
|
DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
|
||||||
|
@ -3140,7 +3144,9 @@ const (
|
||||||
DEVLINK_RESOURCE_UNIT_ENTRY = 0x0
|
DEVLINK_RESOURCE_UNIT_ENTRY = 0x0
|
||||||
DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0
|
DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0
|
||||||
DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1
|
DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1
|
||||||
DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x1
|
DEVLINK_PORT_FN_ATTR_STATE = 0x2
|
||||||
|
DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3
|
||||||
|
DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x3
|
||||||
)
|
)
|
||||||
|
|
||||||
type FsverityDigest struct {
|
type FsverityDigest struct {
|
||||||
|
@ -3509,7 +3515,8 @@ const (
|
||||||
ETHTOOL_A_LINKMODES_DUPLEX = 0x6
|
ETHTOOL_A_LINKMODES_DUPLEX = 0x6
|
||||||
ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7
|
ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7
|
||||||
ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8
|
ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8
|
||||||
ETHTOOL_A_LINKMODES_MAX = 0x8
|
ETHTOOL_A_LINKMODES_LANES = 0x9
|
||||||
|
ETHTOOL_A_LINKMODES_MAX = 0x9
|
||||||
ETHTOOL_A_LINKSTATE_UNSPEC = 0x0
|
ETHTOOL_A_LINKSTATE_UNSPEC = 0x0
|
||||||
ETHTOOL_A_LINKSTATE_HEADER = 0x1
|
ETHTOOL_A_LINKSTATE_HEADER = 0x1
|
||||||
ETHTOOL_A_LINKSTATE_LINK = 0x2
|
ETHTOOL_A_LINKSTATE_LINK = 0x2
|
||||||
|
|
6
vendor/google.golang.org/genproto/googleapis/api/annotations/annotations.pb.go
generated
vendored
6
vendor/google.golang.org/genproto/googleapis/api/annotations/annotations.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) 2015, Google Inc.
|
// Copyright 2015 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.25.0
|
// protoc-gen-go v1.25.0-devel
|
||||||
// protoc v3.13.0
|
// protoc v3.12.2
|
||||||
// source: google/api/annotations.proto
|
// source: google/api/annotations.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
|
6
vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
generated
vendored
6
vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2020 Google LLC
|
// Copyright 2018 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.25.0
|
// protoc-gen-go v1.25.0-devel
|
||||||
// protoc v3.13.0
|
// protoc v3.12.2
|
||||||
// source: google/api/client.proto
|
// source: google/api/client.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
|
4
vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go
generated
vendored
4
vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2020 Google LLC
|
// Copyright 2018 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.25.0-devel
|
// protoc-gen-go v1.25.0-devel
|
||||||
// protoc v3.13.0
|
// protoc v3.12.2
|
||||||
// source: google/api/field_behavior.proto
|
// source: google/api/field_behavior.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
|
6
vendor/google.golang.org/genproto/googleapis/api/annotations/http.pb.go
generated
vendored
6
vendor/google.golang.org/genproto/googleapis/api/annotations/http.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2020 Google LLC
|
// Copyright 2015 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.25.0
|
// protoc-gen-go v1.25.0-devel
|
||||||
// protoc v3.13.0
|
// protoc v3.12.2
|
||||||
// source: google/api/http.proto
|
// source: google/api/http.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
|
6
vendor/google.golang.org/genproto/googleapis/api/annotations/resource.pb.go
generated
vendored
6
vendor/google.golang.org/genproto/googleapis/api/annotations/resource.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2020 Google LLC
|
// Copyright 2018 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.25.0
|
// protoc-gen-go v1.25.0-devel
|
||||||
// protoc v3.13.0
|
// protoc v3.12.2
|
||||||
// source: google/api/resource.proto
|
// source: google/api/resource.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
|
16
vendor/modules.txt
vendored
16
vendor/modules.txt
vendored
|
@ -24,9 +24,10 @@ github.com/VictoriaMetrics/metrics
|
||||||
## explicit
|
## explicit
|
||||||
github.com/VictoriaMetrics/metricsql
|
github.com/VictoriaMetrics/metricsql
|
||||||
github.com/VictoriaMetrics/metricsql/binaryop
|
github.com/VictoriaMetrics/metricsql/binaryop
|
||||||
# github.com/VividCortex/ewma v1.1.1
|
# github.com/VividCortex/ewma v1.2.0
|
||||||
|
## explicit
|
||||||
github.com/VividCortex/ewma
|
github.com/VividCortex/ewma
|
||||||
# github.com/aws/aws-sdk-go v1.38.25
|
# github.com/aws/aws-sdk-go v1.38.30
|
||||||
## explicit
|
## explicit
|
||||||
github.com/aws/aws-sdk-go/aws
|
github.com/aws/aws-sdk-go/aws
|
||||||
github.com/aws/aws-sdk-go/aws/arn
|
github.com/aws/aws-sdk-go/aws/arn
|
||||||
|
@ -154,7 +155,7 @@ github.com/prometheus/client_golang/prometheus
|
||||||
github.com/prometheus/client_golang/prometheus/internal
|
github.com/prometheus/client_golang/prometheus/internal
|
||||||
# github.com/prometheus/client_model v0.2.0
|
# github.com/prometheus/client_model v0.2.0
|
||||||
github.com/prometheus/client_model/go
|
github.com/prometheus/client_model/go
|
||||||
# github.com/prometheus/common v0.21.0
|
# github.com/prometheus/common v0.23.0
|
||||||
## explicit
|
## explicit
|
||||||
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
|
||||||
|
@ -235,7 +236,7 @@ golang.org/x/lint/golint
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/mod/module
|
golang.org/x/mod/module
|
||||||
golang.org/x/mod/semver
|
golang.org/x/mod/semver
|
||||||
# golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6
|
# golang.org/x/net v0.0.0-20210428140749-89ef3d95e781
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/net/context
|
golang.org/x/net/context
|
||||||
golang.org/x/net/context/ctxhttp
|
golang.org/x/net/context/ctxhttp
|
||||||
|
@ -247,9 +248,10 @@ golang.org/x/net/internal/socks
|
||||||
golang.org/x/net/internal/timeseries
|
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/oauth2 v0.0.0-20210413134643-5e61552d6c78
|
# golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/oauth2
|
golang.org/x/oauth2
|
||||||
|
golang.org/x/oauth2/authhandler
|
||||||
golang.org/x/oauth2/google
|
golang.org/x/oauth2/google
|
||||||
golang.org/x/oauth2/google/internal/externalaccount
|
golang.org/x/oauth2/google/internal/externalaccount
|
||||||
golang.org/x/oauth2/internal
|
golang.org/x/oauth2/internal
|
||||||
|
@ -257,7 +259,7 @@ golang.org/x/oauth2/jws
|
||||||
golang.org/x/oauth2/jwt
|
golang.org/x/oauth2/jwt
|
||||||
# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||||
golang.org/x/sync/errgroup
|
golang.org/x/sync/errgroup
|
||||||
# golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7
|
# golang.org/x/sys v0.0.0-20210426230700-d19ff857e887
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/sys/execabs
|
golang.org/x/sys/execabs
|
||||||
golang.org/x/sys/internal/unsafeheader
|
golang.org/x/sys/internal/unsafeheader
|
||||||
|
@ -311,7 +313,7 @@ google.golang.org/appengine/internal/modules
|
||||||
google.golang.org/appengine/internal/remote_api
|
google.golang.org/appengine/internal/remote_api
|
||||||
google.golang.org/appengine/internal/urlfetch
|
google.golang.org/appengine/internal/urlfetch
|
||||||
google.golang.org/appengine/urlfetch
|
google.golang.org/appengine/urlfetch
|
||||||
# google.golang.org/genproto v0.0.0-20210423144448-3a41ef94ed2b
|
# google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab
|
||||||
## explicit
|
## explicit
|
||||||
google.golang.org/genproto/googleapis/api/annotations
|
google.golang.org/genproto/googleapis/api/annotations
|
||||||
google.golang.org/genproto/googleapis/iam/v1
|
google.golang.org/genproto/googleapis/iam/v1
|
||||||
|
|
Loading…
Reference in a new issue