Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
tabacco
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai3
tools
tabacco
Commits
bcd5150a
Commit
bcd5150a
authored
Aug 04, 2018
by
ale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add vendored deps
parent
1bf674bc
Changes
229
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
229 changed files
with
272952 additions
and
0 deletions
+272952
-0
vendor/git.autistici.org/ai3/go-common/clientutil/backend.go
vendor/git.autistici.org/ai3/go-common/clientutil/backend.go
+119
-0
vendor/git.autistici.org/ai3/go-common/clientutil/json.go
vendor/git.autistici.org/ai3/go-common/clientutil/json.go
+45
-0
vendor/git.autistici.org/ai3/go-common/clientutil/retry.go
vendor/git.autistici.org/ai3/go-common/clientutil/retry.go
+92
-0
vendor/git.autistici.org/ai3/go-common/clientutil/tls.go
vendor/git.autistici.org/ai3/go-common/clientutil/tls.go
+37
-0
vendor/git.autistici.org/ai3/go-common/clientutil/transport.go
...r/git.autistici.org/ai3/go-common/clientutil/transport.go
+172
-0
vendor/git.autistici.org/ai3/go-common/misc.go
vendor/git.autistici.org/ai3/go-common/misc.go
+17
-0
vendor/git.autistici.org/ai3/go-common/serverutil/http.go
vendor/git.autistici.org/ai3/go-common/serverutil/http.go
+180
-0
vendor/git.autistici.org/ai3/go-common/serverutil/json.go
vendor/git.autistici.org/ai3/go-common/serverutil/json.go
+47
-0
vendor/git.autistici.org/ai3/go-common/serverutil/load_shedding.go
...t.autistici.org/ai3/go-common/serverutil/load_shedding.go
+51
-0
vendor/git.autistici.org/ai3/go-common/serverutil/proxy_headers.go
...t.autistici.org/ai3/go-common/serverutil/proxy_headers.go
+78
-0
vendor/git.autistici.org/ai3/go-common/serverutil/tls.go
vendor/git.autistici.org/ai3/go-common/serverutil/tls.go
+124
-0
vendor/github.com/beorn7/perks/LICENSE
vendor/github.com/beorn7/perks/LICENSE
+20
-0
vendor/github.com/beorn7/perks/quantile/exampledata.txt
vendor/github.com/beorn7/perks/quantile/exampledata.txt
+2388
-0
vendor/github.com/beorn7/perks/quantile/stream.go
vendor/github.com/beorn7/perks/quantile/stream.go
+292
-0
vendor/github.com/cenkalti/backoff/LICENSE
vendor/github.com/cenkalti/backoff/LICENSE
+20
-0
vendor/github.com/cenkalti/backoff/README.md
vendor/github.com/cenkalti/backoff/README.md
+30
-0
vendor/github.com/cenkalti/backoff/backoff.go
vendor/github.com/cenkalti/backoff/backoff.go
+66
-0
vendor/github.com/cenkalti/backoff/context.go
vendor/github.com/cenkalti/backoff/context.go
+60
-0
vendor/github.com/cenkalti/backoff/exponential.go
vendor/github.com/cenkalti/backoff/exponential.go
+158
-0
vendor/github.com/cenkalti/backoff/retry.go
vendor/github.com/cenkalti/backoff/retry.go
+78
-0
vendor/github.com/cenkalti/backoff/ticker.go
vendor/github.com/cenkalti/backoff/ticker.go
+84
-0
vendor/github.com/cenkalti/backoff/tries.go
vendor/github.com/cenkalti/backoff/tries.go
+35
-0
vendor/github.com/coreos/go-systemd/LICENSE
vendor/github.com/coreos/go-systemd/LICENSE
+191
-0
vendor/github.com/coreos/go-systemd/daemon/sdnotify.go
vendor/github.com/coreos/go-systemd/daemon/sdnotify.go
+63
-0
vendor/github.com/coreos/go-systemd/daemon/watchdog.go
vendor/github.com/coreos/go-systemd/daemon/watchdog.go
+72
-0
vendor/github.com/golang/protobuf/LICENSE
vendor/github.com/golang/protobuf/LICENSE
+31
-0
vendor/github.com/golang/protobuf/proto/Makefile
vendor/github.com/golang/protobuf/proto/Makefile
+43
-0
vendor/github.com/golang/protobuf/proto/clone.go
vendor/github.com/golang/protobuf/proto/clone.go
+229
-0
vendor/github.com/golang/protobuf/proto/decode.go
vendor/github.com/golang/protobuf/proto/decode.go
+970
-0
vendor/github.com/golang/protobuf/proto/encode.go
vendor/github.com/golang/protobuf/proto/encode.go
+1362
-0
vendor/github.com/golang/protobuf/proto/equal.go
vendor/github.com/golang/protobuf/proto/equal.go
+300
-0
vendor/github.com/golang/protobuf/proto/extensions.go
vendor/github.com/golang/protobuf/proto/extensions.go
+587
-0
vendor/github.com/golang/protobuf/proto/lib.go
vendor/github.com/golang/protobuf/proto/lib.go
+897
-0
vendor/github.com/golang/protobuf/proto/message_set.go
vendor/github.com/golang/protobuf/proto/message_set.go
+311
-0
vendor/github.com/golang/protobuf/proto/pointer_reflect.go
vendor/github.com/golang/protobuf/proto/pointer_reflect.go
+484
-0
vendor/github.com/golang/protobuf/proto/pointer_unsafe.go
vendor/github.com/golang/protobuf/proto/pointer_unsafe.go
+270
-0
vendor/github.com/golang/protobuf/proto/properties.go
vendor/github.com/golang/protobuf/proto/properties.go
+872
-0
vendor/github.com/golang/protobuf/proto/text.go
vendor/github.com/golang/protobuf/proto/text.go
+854
-0
vendor/github.com/golang/protobuf/proto/text_parser.go
vendor/github.com/golang/protobuf/proto/text_parser.go
+895
-0
vendor/github.com/google/subcommands/CONTRIBUTING
vendor/github.com/google/subcommands/CONTRIBUTING
+27
-0
vendor/github.com/google/subcommands/LICENSE
vendor/github.com/google/subcommands/LICENSE
+202
-0
vendor/github.com/google/subcommands/README.md
vendor/github.com/google/subcommands/README.md
+67
-0
vendor/github.com/google/subcommands/subcommands.go
vendor/github.com/google/subcommands/subcommands.go
+405
-0
vendor/github.com/gorilla/handlers/LICENSE
vendor/github.com/gorilla/handlers/LICENSE
+22
-0
vendor/github.com/gorilla/handlers/README.md
vendor/github.com/gorilla/handlers/README.md
+55
-0
vendor/github.com/gorilla/handlers/canonical.go
vendor/github.com/gorilla/handlers/canonical.go
+74
-0
vendor/github.com/gorilla/handlers/compress.go
vendor/github.com/gorilla/handlers/compress.go
+148
-0
vendor/github.com/gorilla/handlers/cors.go
vendor/github.com/gorilla/handlers/cors.go
+327
-0
vendor/github.com/gorilla/handlers/doc.go
vendor/github.com/gorilla/handlers/doc.go
+9
-0
vendor/github.com/gorilla/handlers/handlers.go
vendor/github.com/gorilla/handlers/handlers.go
+399
-0
vendor/github.com/gorilla/handlers/handlers_go18.go
vendor/github.com/gorilla/handlers/handlers_go18.go
+21
-0
vendor/github.com/gorilla/handlers/handlers_pre18.go
vendor/github.com/gorilla/handlers/handlers_pre18.go
+7
-0
vendor/github.com/gorilla/handlers/proxy_headers.go
vendor/github.com/gorilla/handlers/proxy_headers.go
+120
-0
vendor/github.com/gorilla/handlers/recovery.go
vendor/github.com/gorilla/handlers/recovery.go
+91
-0
vendor/github.com/hashicorp/go-version/LICENSE
vendor/github.com/hashicorp/go-version/LICENSE
+354
-0
vendor/github.com/hashicorp/go-version/README.md
vendor/github.com/hashicorp/go-version/README.md
+65
-0
vendor/github.com/hashicorp/go-version/constraint.go
vendor/github.com/hashicorp/go-version/constraint.go
+204
-0
vendor/github.com/hashicorp/go-version/version.go
vendor/github.com/hashicorp/go-version/version.go
+347
-0
vendor/github.com/hashicorp/go-version/version_collection.go
vendor/github.com/hashicorp/go-version/version_collection.go
+17
-0
vendor/github.com/mattes/migrate/CONTRIBUTING.md
vendor/github.com/mattes/migrate/CONTRIBUTING.md
+22
-0
vendor/github.com/mattes/migrate/FAQ.md
vendor/github.com/mattes/migrate/FAQ.md
+67
-0
vendor/github.com/mattes/migrate/LICENSE
vendor/github.com/mattes/migrate/LICENSE
+23
-0
vendor/github.com/mattes/migrate/MIGRATIONS.md
vendor/github.com/mattes/migrate/MIGRATIONS.md
+81
-0
vendor/github.com/mattes/migrate/Makefile
vendor/github.com/mattes/migrate/Makefile
+123
-0
vendor/github.com/mattes/migrate/README.md
vendor/github.com/mattes/migrate/README.md
+9
-0
vendor/github.com/mattes/migrate/database/driver.go
vendor/github.com/mattes/migrate/database/driver.go
+112
-0
vendor/github.com/mattes/migrate/database/error.go
vendor/github.com/mattes/migrate/database/error.go
+27
-0
vendor/github.com/mattes/migrate/database/sqlite3/README.md
vendor/github.com/mattes/migrate/database/sqlite3/README.md
+0
-0
vendor/github.com/mattes/migrate/database/sqlite3/sqlite3.go
vendor/github.com/mattes/migrate/database/sqlite3/sqlite3.go
+214
-0
vendor/github.com/mattes/migrate/database/util.go
vendor/github.com/mattes/migrate/database/util.go
+15
-0
vendor/github.com/mattes/migrate/log.go
vendor/github.com/mattes/migrate/log.go
+12
-0
vendor/github.com/mattes/migrate/migrate.go
vendor/github.com/mattes/migrate/migrate.go
+920
-0
vendor/github.com/mattes/migrate/migration.go
vendor/github.com/mattes/migrate/migration.go
+154
-0
vendor/github.com/mattes/migrate/source/driver.go
vendor/github.com/mattes/migrate/source/driver.go
+107
-0
vendor/github.com/mattes/migrate/source/go-bindata/README.md
vendor/github.com/mattes/migrate/source/go-bindata/README.md
+43
-0
vendor/github.com/mattes/migrate/source/go-bindata/go-bindata.go
...github.com/mattes/migrate/source/go-bindata/go-bindata.go
+119
-0
vendor/github.com/mattes/migrate/source/migration.go
vendor/github.com/mattes/migrate/source/migration.go
+143
-0
vendor/github.com/mattes/migrate/source/parse.go
vendor/github.com/mattes/migrate/source/parse.go
+39
-0
vendor/github.com/mattes/migrate/util.go
vendor/github.com/mattes/migrate/util.go
+105
-0
vendor/github.com/mattn/go-sqlite3/LICENSE
vendor/github.com/mattn/go-sqlite3/LICENSE
+21
-0
vendor/github.com/mattn/go-sqlite3/README.md
vendor/github.com/mattn/go-sqlite3/README.md
+518
-0
vendor/github.com/mattn/go-sqlite3/backup.go
vendor/github.com/mattn/go-sqlite3/backup.go
+85
-0
vendor/github.com/mattn/go-sqlite3/callback.go
vendor/github.com/mattn/go-sqlite3/callback.go
+374
-0
vendor/github.com/mattn/go-sqlite3/doc.go
vendor/github.com/mattn/go-sqlite3/doc.go
+112
-0
vendor/github.com/mattn/go-sqlite3/error.go
vendor/github.com/mattn/go-sqlite3/error.go
+135
-0
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c
+212224
-0
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h
+11535
-0
vendor/github.com/mattn/go-sqlite3/sqlite3.go
vendor/github.com/mattn/go-sqlite3/sqlite3.go
+1979
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_context.go
vendor/github.com/mattn/go-sqlite3/sqlite3_context.go
+103
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_func_crypt.go
vendor/github.com/mattn/go-sqlite3/sqlite3_func_crypt.go
+120
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_go18.go
vendor/github.com/mattn/go-sqlite3/sqlite3_go18.go
+70
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go
vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go
+17
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.go
vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.go
+70
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension_omit.go
...ithub.com/mattn/go-sqlite3/sqlite3_load_extension_omit.go
+24
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_allow_uri_authority.go
...b.com/mattn/go-sqlite3/sqlite3_opt_allow_uri_authority.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_app_armor.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_app_armor.go
+16
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_foreign_keys.go
...r/github.com/mattn/go-sqlite3/sqlite3_opt_foreign_keys.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_fts5.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_fts5.go
+14
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_icu.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_icu.go
+17
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_introspect.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_introspect.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_json1.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_json1.go
+13
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete.go
.../github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete_fast.go
...ub.com/mattn/go-sqlite3/sqlite3_opt_secure_delete_fast.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_stat4.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_stat4.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go
+289
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth_omit.go
.../github.com/mattn/go-sqlite3/sqlite3_opt_userauth_omit.go
+152
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_full.go
...or/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_full.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_incr.go
...or/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_incr.go
+15
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vtable.go
vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vtable.go
+650
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_other.go
vendor/github.com/mattn/go-sqlite3/sqlite3_other.go
+17
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_solaris.go
vendor/github.com/mattn/go-sqlite3/sqlite3_solaris.go
+14
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_trace.go
vendor/github.com/mattn/go-sqlite3/sqlite3_trace.go
+288
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_type.go
vendor/github.com/mattn/go-sqlite3/sqlite3_type.go
+57
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_usleep_windows.go
vendor/github.com/mattn/go-sqlite3/sqlite3_usleep_windows.go
+39
-0
vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go
vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go
+18
-0
vendor/github.com/mattn/go-sqlite3/sqlite3ext.h
vendor/github.com/mattn/go-sqlite3/sqlite3ext.h
+620
-0
vendor/github.com/mattn/go-sqlite3/static_mock.go
vendor/github.com/mattn/go-sqlite3/static_mock.go
+21
-0
vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE
.../github.com/matttproud/golang_protobuf_extensions/LICENSE
+201
-0
vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE
...r/github.com/matttproud/golang_protobuf_extensions/NOTICE
+1
-0
vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/Makefile
...com/matttproud/golang_protobuf_extensions/pbutil/Makefile
+7
-0
vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/decode.go
...om/matttproud/golang_protobuf_extensions/pbutil/decode.go
+75
-0
vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/doc.go
...b.com/matttproud/golang_protobuf_extensions/pbutil/doc.go
+16
-0
vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/encode.go
...om/matttproud/golang_protobuf_extensions/pbutil/encode.go
+46
-0
vendor/github.com/prometheus/client_golang/LICENSE
vendor/github.com/prometheus/client_golang/LICENSE
+201
-0
vendor/github.com/prometheus/client_golang/NOTICE
vendor/github.com/prometheus/client_golang/NOTICE
+23
-0
vendor/github.com/prometheus/client_golang/prometheus/README.md
.../github.com/prometheus/client_golang/prometheus/README.md
+1
-0
vendor/github.com/prometheus/client_golang/prometheus/collector.go
...thub.com/prometheus/client_golang/prometheus/collector.go
+75
-0
vendor/github.com/prometheus/client_golang/prometheus/counter.go
...github.com/prometheus/client_golang/prometheus/counter.go
+189
-0
vendor/github.com/prometheus/client_golang/prometheus/desc.go
...or/github.com/prometheus/client_golang/prometheus/desc.go
+189
-0
vendor/github.com/prometheus/client_golang/prometheus/doc.go
vendor/github.com/prometheus/client_golang/prometheus/doc.go
+186
-0
vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go
...m/prometheus/client_golang/prometheus/expvar_collector.go
+119
-0
vendor/github.com/prometheus/client_golang/prometheus/fnv.go
vendor/github.com/prometheus/client_golang/prometheus/fnv.go
+29
-0
vendor/github.com/prometheus/client_golang/prometheus/gauge.go
...r/github.com/prometheus/client_golang/prometheus/gauge.go
+173
-0
vendor/github.com/prometheus/client_golang/prometheus/go_collector.go
...b.com/prometheus/client_golang/prometheus/go_collector.go
+284
-0
vendor/github.com/prometheus/client_golang/prometheus/histogram.go
...thub.com/prometheus/client_golang/prometheus/histogram.go
+473
-0
vendor/github.com/prometheus/client_golang/prometheus/http.go
...or/github.com/prometheus/client_golang/prometheus/http.go
+524
-0
vendor/github.com/prometheus/client_golang/prometheus/labels.go
.../github.com/prometheus/client_golang/prometheus/labels.go
+57
-0
vendor/github.com/prometheus/client_golang/prometheus/metric.go
.../github.com/prometheus/client_golang/prometheus/metric.go
+166
-0
vendor/github.com/prometheus/client_golang/prometheus/observer.go
...ithub.com/prometheus/client_golang/prometheus/observer.go
+50
-0
vendor/github.com/prometheus/client_golang/prometheus/process_collector.go
.../prometheus/client_golang/prometheus/process_collector.go
+140
-0
vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go
...prometheus/client_golang/prometheus/promhttp/delegator.go
+199
-0
vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_1_8.go
...etheus/client_golang/prometheus/promhttp/delegator_1_8.go
+181
-0
vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_pre_1_8.go
...us/client_golang/prometheus/promhttp/delegator_pre_1_8.go
+44
-0
vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
....com/prometheus/client_golang/prometheus/promhttp/http.go
+204
-0
vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client.go
...us/client_golang/prometheus/promhttp/instrument_client.go
+98
-0
vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client_1_8.go
...lient_golang/prometheus/promhttp/instrument_client_1_8.go
+144
-0
vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go
...us/client_golang/prometheus/promhttp/instrument_server.go
+440
-0
vendor/github.com/prometheus/client_golang/prometheus/registry.go
...ithub.com/prometheus/client_golang/prometheus/registry.go
+762
-0
vendor/github.com/prometheus/client_golang/prometheus/summary.go
...github.com/prometheus/client_golang/prometheus/summary.go
+577
-0
vendor/github.com/prometheus/client_golang/prometheus/timer.go
...r/github.com/prometheus/client_golang/prometheus/timer.go
+51
-0
vendor/github.com/prometheus/client_golang/prometheus/untyped.go
...github.com/prometheus/client_golang/prometheus/untyped.go
+42
-0
vendor/github.com/prometheus/client_golang/prometheus/value.go
...r/github.com/prometheus/client_golang/prometheus/value.go
+236
-0
vendor/github.com/prometheus/client_golang/prometheus/vec.go
vendor/github.com/prometheus/client_golang/prometheus/vec.go
+363
-0
vendor/github.com/prometheus/client_model/LICENSE
vendor/github.com/prometheus/client_model/LICENSE
+201
-0
vendor/github.com/prometheus/client_model/NOTICE
vendor/github.com/prometheus/client_model/NOTICE
+5
-0
vendor/github.com/prometheus/client_model/go/metrics.pb.go
vendor/github.com/prometheus/client_model/go/metrics.pb.go
+364
-0
vendor/github.com/prometheus/common/LICENSE
vendor/github.com/prometheus/common/LICENSE
+201
-0
vendor/github.com/prometheus/common/NOTICE
vendor/github.com/prometheus/common/NOTICE
+5
-0
vendor/github.com/prometheus/common/expfmt/decode.go
vendor/github.com/prometheus/common/expfmt/decode.go
+429
-0
vendor/github.com/prometheus/common/expfmt/encode.go
vendor/github.com/prometheus/common/expfmt/encode.go
+88
-0
vendor/github.com/prometheus/common/expfmt/expfmt.go
vendor/github.com/prometheus/common/expfmt/expfmt.go
+38
-0
vendor/github.com/prometheus/common/expfmt/fuzz.go
vendor/github.com/prometheus/common/expfmt/fuzz.go
+36
-0
vendor/github.com/prometheus/common/expfmt/text_create.go
vendor/github.com/prometheus/common/expfmt/text_create.go
+303
-0
vendor/github.com/prometheus/common/expfmt/text_parse.go
vendor/github.com/prometheus/common/expfmt/text_parse.go
+757
-0
vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/README.txt
...eus/common/internal/bitbucket.org/ww/goautoneg/README.txt
+67
-0
vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go
...eus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go
+162
-0
vendor/github.com/prometheus/common/model/alert.go
vendor/github.com/prometheus/common/model/alert.go
+136
-0
vendor/github.com/prometheus/common/model/fingerprinting.go
vendor/github.com/prometheus/common/model/fingerprinting.go
+105
-0
vendor/github.com/prometheus/common/model/fnv.go
vendor/github.com/prometheus/common/model/fnv.go
+42
-0
vendor/github.com/prometheus/common/model/labels.go
vendor/github.com/prometheus/common/model/labels.go
+210
-0
vendor/github.com/prometheus/common/model/labelset.go
vendor/github.com/prometheus/common/model/labelset.go
+169
-0
vendor/github.com/prometheus/common/model/metric.go
vendor/github.com/prometheus/common/model/metric.go
+103
-0
vendor/github.com/prometheus/common/model/model.go
vendor/github.com/prometheus/common/model/model.go
+16
-0
vendor/github.com/prometheus/common/model/signature.go
vendor/github.com/prometheus/common/model/signature.go
+144
-0
vendor/github.com/prometheus/common/model/silence.go
vendor/github.com/prometheus/common/model/silence.go
+106
-0
vendor/github.com/prometheus/common/model/time.go
vendor/github.com/prometheus/common/model/time.go
+264
-0
vendor/github.com/prometheus/common/model/value.go
vendor/github.com/prometheus/common/model/value.go
+416
-0
vendor/github.com/prometheus/procfs/CONTRIBUTING.md
vendor/github.com/prometheus/procfs/CONTRIBUTING.md
+18
-0
vendor/github.com/prometheus/procfs/LICENSE
vendor/github.com/prometheus/procfs/LICENSE
+201
-0
vendor/github.com/prometheus/procfs/MAINTAINERS.md
vendor/github.com/prometheus/procfs/MAINTAINERS.md
+1
-0
vendor/github.com/prometheus/procfs/Makefile
vendor/github.com/prometheus/procfs/Makefile
+18
-0
vendor/github.com/prometheus/procfs/NOTICE
vendor/github.com/prometheus/procfs/NOTICE
+7
-0
vendor/github.com/prometheus/procfs/README.md
vendor/github.com/prometheus/procfs/README.md
+11
-0
vendor/github.com/prometheus/procfs/buddyinfo.go
vendor/github.com/prometheus/procfs/buddyinfo.go
+95
-0
vendor/github.com/prometheus/procfs/doc.go
vendor/github.com/prometheus/procfs/doc.go
+45
-0
vendor/github.com/prometheus/procfs/fs.go
vendor/github.com/prometheus/procfs/fs.go
+46
-0
vendor/github.com/prometheus/procfs/ipvs.go
vendor/github.com/prometheus/procfs/ipvs.go
+246
-0
vendor/github.com/prometheus/procfs/mdstat.go
vendor/github.com/prometheus/procfs/mdstat.go
+138
-0
vendor/github.com/prometheus/procfs/mountstats.go
vendor/github.com/prometheus/procfs/mountstats.go
+556
-0
vendor/github.com/prometheus/procfs/proc.go
vendor/github.com/prometheus/procfs/proc.go
+224
-0
vendor/github.com/prometheus/procfs/proc_io.go
vendor/github.com/prometheus/procfs/proc_io.go
+55
-0
vendor/github.com/prometheus/procfs/proc_limits.go
vendor/github.com/prometheus/procfs/proc_limits.go
+137
-0
vendor/github.com/prometheus/procfs/proc_stat.go
vendor/github.com/prometheus/procfs/proc_stat.go
+175
-0
vendor/github.com/prometheus/procfs/stat.go
vendor/github.com/prometheus/procfs/stat.go
+219
-0
vendor/github.com/prometheus/procfs/ttar
vendor/github.com/prometheus/procfs/ttar
+264
-0
vendor/github.com/prometheus/procfs/xfrm.go
vendor/github.com/prometheus/procfs/xfrm.go
+187
-0
vendor/github.com/prometheus/procfs/xfs/parse.go
vendor/github.com/prometheus/procfs/xfs/parse.go
+359
-0
vendor/github.com/prometheus/procfs/xfs/xfs.go
vendor/github.com/prometheus/procfs/xfs/xfs.go
+163
-0
vendor/github.com/robfig/cron/LICENSE
vendor/github.com/robfig/cron/LICENSE
+21
-0
vendor/github.com/robfig/cron/README.md
vendor/github.com/robfig/cron/README.md
+6
-0
vendor/github.com/robfig/cron/constantdelay.go
vendor/github.com/robfig/cron/constantdelay.go
+27
-0
vendor/github.com/robfig/cron/cron.go
vendor/github.com/robfig/cron/cron.go
+259
-0
vendor/github.com/robfig/cron/doc.go
vendor/github.com/robfig/cron/doc.go
+129
-0
vendor/github.com/robfig/cron/parser.go
vendor/github.com/robfig/cron/parser.go
+380
-0
vendor/github.com/robfig/cron/spec.go
vendor/github.com/robfig/cron/spec.go
+158
-0
vendor/golang.org/x/net/LICENSE
vendor/golang.org/x/net/LICENSE
+27
-0
vendor/golang.org/x/net/PATENTS
vendor/golang.org/x/net/PATENTS
+22
-0
vendor/golang.org/x/net/context/context.go
vendor/golang.org/x/net/context/context.go
+56
-0
vendor/golang.org/x/net/context/go17.go
vendor/golang.org/x/net/context/go17.go
+72
-0
vendor/golang.org/x/net/context/go19.go
vendor/golang.org/x/net/context/go19.go
+20
-0
vendor/golang.org/x/net/context/pre_go17.go
vendor/golang.org/x/net/context/pre_go17.go
+300
-0
vendor/golang.org/x/net/context/pre_go19.go
vendor/golang.org/x/net/context/pre_go19.go
+109
-0
vendor/gopkg.in/yaml.v2/LICENSE
vendor/gopkg.in/yaml.v2/LICENSE
+13
-0
vendor/gopkg.in/yaml.v2/LICENSE.libyaml
vendor/gopkg.in/yaml.v2/LICENSE.libyaml
+31
-0
vendor/gopkg.in/yaml.v2/README.md
vendor/gopkg.in/yaml.v2/README.md
+133
-0
vendor/gopkg.in/yaml.v2/apic.go
vendor/gopkg.in/yaml.v2/apic.go
+742
-0
vendor/gopkg.in/yaml.v2/decode.go
vendor/gopkg.in/yaml.v2/decode.go
+685
-0
vendor/gopkg.in/yaml.v2/emitterc.go
vendor/gopkg.in/yaml.v2/emitterc.go
+1684
-0
vendor/gopkg.in/yaml.v2/encode.go
vendor/gopkg.in/yaml.v2/encode.go
+306
-0
vendor/gopkg.in/yaml.v2/parserc.go
vendor/gopkg.in/yaml.v2/parserc.go
+1095
-0
vendor/gopkg.in/yaml.v2/readerc.go
vendor/gopkg.in/yaml.v2/readerc.go
+394
-0
vendor/gopkg.in/yaml.v2/resolve.go
vendor/gopkg.in/yaml.v2/resolve.go
+208
-0
vendor/gopkg.in/yaml.v2/scannerc.go
vendor/gopkg.in/yaml.v2/scannerc.go
+2711
-0
vendor/gopkg.in/yaml.v2/sorter.go
vendor/gopkg.in/yaml.v2/sorter.go
+104
-0
vendor/gopkg.in/yaml.v2/writerc.go
vendor/gopkg.in/yaml.v2/writerc.go
+89
-0
vendor/gopkg.in/yaml.v2/yaml.go
vendor/gopkg.in/yaml.v2/yaml.go
+357
-0
vendor/gopkg.in/yaml.v2/yamlh.go
vendor/gopkg.in/yaml.v2/yamlh.go
+716
-0
vendor/gopkg.in/yaml.v2/yamlprivateh.go
vendor/gopkg.in/yaml.v2/yamlprivateh.go
+173
-0
vendor/vendor.json
vendor/vendor.json
+175
-0
No files found.
vendor/git.autistici.org/ai3/go-common/clientutil/backend.go
0 → 100644
View file @
bcd5150a
package
clientutil
import
(
"crypto/tls"
"fmt"
"net/http"
"net/url"
"sync"
"time"
)
// BackendConfig specifies the configuration to access a service.
//
// Services with multiple backends can be replicated or partitioned,
// depending on a configuration switch, making it a deployment-time
// decision. Clients are expected to compute their own sharding
// function (either by database lookup or other methods), and expose a
// 'shard' parameter on their APIs.
type
BackendConfig
struct
{
URL
string
`yaml:"url"`
Sharded
bool
`yaml:"sharded"`
TLSConfig
*
TLSClientConfig
`yaml:"tls_config"`
}
// Backend is a runtime class that provides http Clients for use with
// a specific service backend. If the service can't be partitioned,
// pass an empty string to the Client method.
type
Backend
interface
{
// URL for the service for a specific shard.
URL
(
string
)
string
// Client that can be used to make a request to the service.
Client
(
string
)
*
http
.
Client
}
// NewBackend returns a new Backend with the given config.
func
NewBackend
(
config
*
BackendConfig
)
(
Backend
,
error
)
{
u
,
err
:=
url
.
Parse
(
config
.
URL
)
if
err
!=
nil
{
return
nil
,
err
}
var
tlsConfig
*
tls
.
Config
if
config
.
TLSConfig
!=
nil
{
tlsConfig
,
err
=
config
.
TLSConfig
.
TLSConfig
()
if
err
!=
nil
{
return
nil
,
err
}
}
if
config
.
Sharded
{
return
&
replicatedClient
{
u
:
u
,
c
:
newHTTPClient
(
u
,
tlsConfig
),
},
nil
}
return
&
shardedClient
{
baseURL
:
u
,
tlsConfig
:
tlsConfig
,
urls
:
make
(
map
[
string
]
*
url
.
URL
),
shards
:
make
(
map
[
string
]
*
http
.
Client
),
},
nil
}
type
replicatedClient
struct
{
c
*
http
.
Client
u
*
url
.
URL
}
func
(
r
*
replicatedClient
)
Client
(
_
string
)
*
http
.
Client
{
return
r
.
c
}
func
(
r
*
replicatedClient
)
URL
(
_
string
)
string
{
return
r
.
u
.
String
()
}
type
shardedClient
struct
{
baseURL
*
url
.
URL
tlsConfig
*
tls
.
Config
mx
sync
.
Mutex
urls
map
[
string
]
*
url
.
URL
shards
map
[
string
]
*
http
.
Client
}
func
(
s
*
shardedClient
)
getShardURL
(
shard
string
)
*
url
.
URL
{
if
shard
==
""
{
return
s
.
baseURL
}
u
,
ok
:=
s
.
urls
[
shard
]
if
!
ok
{
var
tmp
=
*
s
.
baseURL
tmp
.
Host
=
fmt
.
Sprintf
(
"%s.%s"
,
shard
,
tmp
.
Host
)
u
=
&
tmp
s
.
urls
[
shard
]
=
u
}
return
u
}
func
(
s
*
shardedClient
)
URL
(
shard
string
)
string
{
s
.
mx
.
Lock
()
defer
s
.
mx
.
Unlock
()
return
s
.
getShardURL
(
shard
)
.
String
()
}
func
(
s
*
shardedClient
)
Client
(
shard
string
)
*
http
.
Client
{
s
.
mx
.
Lock
()
defer
s
.
mx
.
Unlock
()
client
,
ok
:=
s
.
shards
[
shard
]
if
!
ok
{
u
:=
s
.
getShardURL
(
shard
)
client
=
newHTTPClient
(
u
,
s
.
tlsConfig
)
s
.
shards
[
shard
]
=
client
}
return
client
}
func
newHTTPClient
(
u
*
url
.
URL
,
tlsConfig
*
tls
.
Config
)
*
http
.
Client
{
return
&
http
.
Client
{
Transport
:
NewTransport
([]
string
{
u
.
Host
},
tlsConfig
,
nil
),
Timeout
:
30
*
time
.
Second
,
}
}
vendor/git.autistici.org/ai3/go-common/clientutil/json.go
0 → 100644
View file @
bcd5150a
package
clientutil
import
(
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"net/http"
)
// DoJSONHTTPRequest makes an HTTP POST request to the specified uri,
// with a JSON-encoded request body. It will attempt to decode the
// response body as JSON.
func
DoJSONHTTPRequest
(
ctx
context
.
Context
,
client
*
http
.
Client
,
uri
string
,
req
,
resp
interface
{})
error
{
data
,
err
:=
json
.
Marshal
(
req
)
if
err
!=
nil
{
return
err
}
httpReq
,
err
:=
http
.
NewRequest
(
"POST"
,
uri
,
bytes
.
NewReader
(
data
))
if
err
!=
nil
{
return
err
}
httpReq
.
Header
.
Set
(
"Content-Type"
,
"application/json"
)
httpReq
=
httpReq
.
WithContext
(
ctx
)
httpResp
,
err
:=
RetryHTTPDo
(
client
,
httpReq
,
NewExponentialBackOff
())
if
err
!=
nil
{
return
err
}
defer
httpResp
.
Body
.
Close
()
if
httpResp
.
StatusCode
!=
200
{
return
fmt
.
Errorf
(
"HTTP status %d"
,
httpResp
.
StatusCode
)
}
if
httpResp
.
Header
.
Get
(
"Content-Type"
)
!=
"application/json"
{
return
errors
.
New
(
"not a JSON response"
)
}
if
resp
==
nil
{
return
nil
}
return
json
.
NewDecoder
(
httpResp
.
Body
)
.
Decode
(
resp
)
}
vendor/git.autistici.org/ai3/go-common/clientutil/retry.go
0 → 100644
View file @
bcd5150a
package
clientutil
import
(
"errors"
"net/http"
"time"
"github.com/cenkalti/backoff"
)
// NewExponentialBackOff creates a backoff.ExponentialBackOff object
// with our own default values.
func
NewExponentialBackOff
()
*
backoff
.
ExponentialBackOff
{
b
:=
backoff
.
NewExponentialBackOff
()
b
.
InitialInterval
=
100
*
time
.
Millisecond
//b.Multiplier = 1.4142
return
b
}
// A temporary (retriable) error is something that has a Temporary method.
type
tempError
interface
{
Temporary
()
bool
}
type
tempErrorWrapper
struct
{
error
}
func
(
t
tempErrorWrapper
)
Temporary
()
bool
{
return
true
}
// TempError makes a temporary (retriable) error out of a normal error.
func
TempError
(
err
error
)
error
{
return
tempErrorWrapper
{
err
}
}
// Retry operation op until it succeeds according to the backoff
// policy b.
//
// Note that this function reverses the error semantics of
// backoff.Operation: all errors are permanent unless explicitly
// marked as temporary (i.e. they have a Temporary() method that
// returns true). This is to better align with the errors returned by
// the net package.
func
Retry
(
op
backoff
.
Operation
,
b
backoff
.
BackOff
)
error
{
innerOp
:=
func
()
error
{
err
:=
op
()
if
err
==
nil
{
return
err
}
if
tmpErr
,
ok
:=
err
.
(
tempError
);
ok
&&
tmpErr
.
Temporary
()
{
return
err
}
return
backoff
.
Permanent
(
err
)
}
return
backoff
.
Retry
(
innerOp
,
b
)
}
var
errHTTPBackOff
=
TempError
(
errors
.
New
(
"temporary http error"
))
func
isStatusTemporary
(
code
int
)
bool
{
switch
code
{
case
http
.
StatusTooManyRequests
,
http
.
StatusBadGateway
,
http
.
StatusServiceUnavailable
,
http
.
StatusGatewayTimeout
:
return
true
default
:
return
false
}
}
// RetryHTTPDo retries an HTTP request until it succeeds, according to
// the backoff policy b. It will retry on temporary network errors and
// upon receiving specific temporary HTTP errors. It will use the
// context associated with the HTTP request object.
func
RetryHTTPDo
(
client
*
http
.
Client
,
req
*
http
.
Request
,
b
backoff
.
BackOff
)
(
*
http
.
Response
,
error
)
{
var
resp
*
http
.
Response
op
:=
func
()
error
{
// Clear up previous response if set.
if
resp
!=
nil
{
resp
.
Body
.
Close
()
}
var
err
error
resp
,
err
=
client
.
Do
(
req
)
if
err
==
nil
&&
isStatusTemporary
(
resp
.
StatusCode
)
{
resp
.
Body
.
Close
()
return
errHTTPBackOff
}
return
err
}
err
:=
Retry
(
op
,
backoff
.
WithContext
(
b
,
req
.
Context
()))
return
resp
,
err
}
vendor/git.autistici.org/ai3/go-common/clientutil/tls.go
0 → 100644
View file @
bcd5150a
package
clientutil
import
(
"crypto/tls"
common
"git.autistici.org/ai3/go-common"
)
// TLSClientConfig defines the TLS parameters for a client connection
// that should use a client X509 certificate for authentication.
type
TLSClientConfig
struct
{
Cert
string
`yaml:"cert"`
Key
string
`yaml:"key"`
CA
string
`yaml:"ca"`
}
// TLSConfig returns a tls.Config object with the current configuration.
func
(
c
*
TLSClientConfig
)
TLSConfig
()
(
*
tls
.
Config
,
error
)
{
cert
,
err
:=
tls
.
LoadX509KeyPair
(
c
.
Cert
,
c
.
Key
)
if
err
!=
nil
{
return
nil
,
err
}
tlsConf
:=
&
tls
.
Config
{
Certificates
:
[]
tls
.
Certificate
{
cert
},
}
if
c
.
CA
!=
""
{
cas
,
err
:=
common
.
LoadCA
(
c
.
CA
)
if
err
!=
nil
{
return
nil
,
err
}
tlsConf
.
RootCAs
=
cas
}
tlsConf
.
BuildNameToCertificate
()
return
tlsConf
,
nil
}
vendor/git.autistici.org/ai3/go-common/clientutil/transport.go
0 → 100644
View file @
bcd5150a
package
clientutil
import
(
"context"
"crypto/tls"
"errors"
"log"
"net"
"net/http"
"sync"
"time"
)
var
errAllBackendsFailed
=
errors
.
New
(
"all backends failed"
)
type
dnsResolver
struct
{}
func
(
r
*
dnsResolver
)
ResolveIPs
(
hosts
[]
string
)
[]
string
{
var
resolved
[]
string
for
_
,
hostport
:=
range
hosts
{
host
,
port
,
err
:=
net
.
SplitHostPort
(
hostport
)
if
err
!=
nil
{
log
.
Printf
(
"error parsing %s: %v"
,
hostport
,
err
)
continue
}
hostIPs
,
err
:=
net
.
LookupIP
(
host
)
if
err
!=
nil
{
log
.
Printf
(
"error resolving %s: %v"
,
host
,
err
)
continue
}
for
_
,
ip
:=
range
hostIPs
{
resolved
=
append
(
resolved
,
net
.
JoinHostPort
(
ip
.
String
(),
port
))
}
}
return
resolved
}
var
defaultResolver
=
&
dnsResolver
{}
type
resolver
interface
{
ResolveIPs
([]
string
)
[]
string
}
// Balancer for HTTP connections. It will round-robin across available
// backends, trying to avoid ones that are erroring out, until one
// succeeds or they all fail.
//
// This object should not be used for load balancing of individual
// HTTP requests: once a new connection is established, requests will
// be sent over it until it errors out. It's meant to provide a
// *reliable* connection to a set of equivalent backends for HA
// purposes.
type
balancer
struct
{
hosts
[]
string
resolver
resolver
stop
chan
bool
// List of currently valid (or untested) backends, and ones
// that errored out at least once.
mx
sync
.
Mutex
addrs
[]
string
ok
map
[
string
]
bool
}
var
backendUpdateInterval
=
60
*
time
.
Second
// Periodically update the list of available backends.
func
(
b
*
balancer
)
updateProc
()
{
tick
:=
time
.
NewTicker
(
backendUpdateInterval
)
for
{
select
{
case
<-
b
.
stop
:
return
case
<-
tick
.
C
:
resolved
:=
b
.
resolver
.
ResolveIPs
(
b
.
hosts
)
if
len
(
resolved
)
>
0
{
b
.
mx
.
Lock
()
b
.
addrs
=
resolved
b
.
mx
.
Unlock
()
}
}
}
}
// Returns a list of all available backends, split into "good ones"
// (no errors seen since last successful connection) and "bad ones".
func
(
b
*
balancer
)
getBackends
()
([]
string
,
[]
string
)
{
b
.
mx
.
Lock
()
defer
b
.
mx
.
Unlock
()
var
good
,
bad
[]
string
for
_
,
addr
:=
range
b
.
addrs
{
if
ok
:=
b
.
ok
[
addr
];
ok
{
good
=
append
(
good
,
addr
)
}
else
{
bad
=
append
(
bad
,
addr
)
}
}
return
good
,
bad
}
func
(
b
*
balancer
)
notify
(
addr
string
,
ok
bool
)
{
b
.
mx
.
Lock
()
b
.
ok
[
addr
]
=
ok
b
.
mx
.
Unlock
()
}
func
netDialContext
(
ctx
context
.
Context
,
network
,
addr
string
)
(
net
.
Conn
,
error
)
{
timeout
:=
30
*
time
.
Second
// Go < 1.9 does not have net.DialContext, reimplement it in
// terms of net.DialTimeout.
if
deadline
,
ok
:=
ctx
.
Deadline
();
ok
{
timeout
=
time
.
Until
(
deadline
)
}
return
net
.
DialTimeout
(
network
,
addr
,
timeout
)
}
func
(
b
*
balancer
)
dial
(
ctx
context
.
Context
,
network
,
addr
string
)
(
net
.
Conn
,
error
)
{
// Start by attempting a connection on 'good' targets.
good
,
bad
:=
b
.
getBackends
()
for
_
,
addr
:=
range
good
{
// Go < 1.9 does not have DialContext, deal with it
conn
,
err
:=
netDialContext
(
ctx
,
network
,
addr
)
if
err
==
nil
{
return
conn
,
nil
}
else
if
err
==
context
.
Canceled
{
// A timeout might be bad, set the error bit
// on the connection.
b
.
notify
(
addr
,
false
)
return
nil
,
err
}
b
.
notify
(
addr
,
false
)
}
for
_
,
addr
:=
range
bad
{
conn
,
err
:=
netDialContext
(
ctx
,
network
,
addr
)
if
err
==
nil
{
b
.
notify
(
addr
,
true
)
return
conn
,
nil
}
else
if
err
==
context
.
Canceled
{
return
nil
,
err
}
}
return
nil
,
errAllBackendsFailed
}
// NewTransport returns a suitably configured http.RoundTripper that
// talks to a specific backend service. It performs discovery of
// available backends via DNS (using A or AAAA record lookups), tries
// to route traffic away from faulty backends.
//
// It will periodically attempt to rediscover new backends.
func
NewTransport
(
backends
[]
string
,
tlsConf
*
tls
.
Config
,
resolver
resolver
)
http
.
RoundTripper
{
if
resolver
==
nil
{
resolver
=
defaultResolver
}
addrs
:=
resolver
.
ResolveIPs
(
backends
)
b
:=
&
balancer
{
hosts
:
backends
,
resolver
:
resolver
,
addrs
:
addrs
,
ok
:
make
(
map
[
string
]
bool
),
}
go
b
.
updateProc
()
return
&
http
.
Transport
{
DialContext
:
b
.
dial
,
TLSClientConfig
:
tlsConf
,
}
}
vendor/git.autistici.org/ai3/go-common/misc.go
0 → 100644
View file @
bcd5150a
package
common
import
(
"crypto/x509"
"io/ioutil"
)
// LoadCA loads a file containing CA certificates into a x509.CertPool.
func
LoadCA
(
path
string
)
(
*
x509
.
CertPool
,
error
)
{
data
,
err
:=
ioutil
.
ReadFile
(
path
)
if
err
!=
nil
{
return
nil
,
err
}
cas
:=
x509
.
NewCertPool
()
cas
.
AppendCertsFromPEM
(
data
)
return
cas
,
nil
}
vendor/git.autistici.org/ai3/go-common/serverutil/http.go
0 → 100644
View file @
bcd5150a
package
serverutil
import
(
"context"
"crypto/tls"
"io"
"log"
"net"
"net/http"
"net/http/pprof"
"os"
"os/signal"
"syscall"
"time"
"github.com/coreos/go-systemd/daemon"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
var
gracefulShutdownTimeout
=
3
*
time
.
Second
// ServerConfig stores common HTTP/HTTPS server configuration parameters.
type
ServerConfig
struct
{
TLS
*
TLSServerConfig
`yaml:"tls"`
MaxInflightRequests
int
`yaml:"max_inflight_requests"`
TrustedForwarders
[]
string
`yaml:"trusted_forwarders"`
}