Rework HTTP downloader retry logic

Apply retries as global, config-level option `downloadRetries` so that
it can be applied to any aptly command which downloads objects.

Unwrap `errors.Wrap` which is used in downloader.

Unwrap `*url.Error` which should be the actual error returned from the
HTTP client, catch more cases, be more specific around failures.
This commit is contained in:
Andrey Smirnov
2019-08-06 00:41:14 +03:00
committed by Andrey Smirnov
parent 2e7f624b34
commit f0a370db24
22 changed files with 123 additions and 63 deletions
+8 -6
View File
@@ -1,10 +1,12 @@
all: prepare generate
RUBYBINPATH=$(shell ruby -r rubygems -e 'puts Gem.user_dir')/bin
prepare:
gem install specific_install
gem specific_install -l smira/ronn
all: $(RUBYBINPATH)/ronn generate
$(RUBYBINPATH)/ronn:
gem install --user-install specific_install
gem specific_install --user-install -l smira/ronn
generate:
go run ../_man/gen.go
PATH=$(RUBYBINPATH):$(PATH) go run ../_man/gen.go
.PHONY: prepare generate
.PHONY: generate
+13 -2
View File
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "APTLY" "1" "September 2018" "" ""
.TH "APTLY" "1" "August 2019" "" ""
.
.SH "NAME"
\fBaptly\fR \- Debian repository management tool
@@ -38,6 +38,7 @@ Configuration file is stored in JSON format (default values shown below):
"rootDir": "$HOME/\.aptly",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"downloadRetries": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
@@ -114,7 +115,11 @@ is a number of parallel download threads to use when downloading packages
.
.TP
\fBdownloadSpeedLimit\fR
limit in kbytes/sec on download speed while mirroring remote repositieis
limit in kbytes/sec on download speed while mirroring remote repositories
.
.TP
\fBdownloadRetries\fR
number of retries for download attempts
.
.TP
\fBarchitectures\fR
@@ -2050,5 +2055,11 @@ Strajan Sebastian (https://github\.com/strajansebastian)
.IP "\[ci]" 4
Artem Smirnov (https://github\.com/urpylka)
.
.IP "\[ci]" 4
William Manley (https://github\.com/wmanley)
.
.IP "\[ci]" 4
Shengjing Zhu (https://github\.com/zhsj)
.
.IP "" 0
+5 -1
View File
@@ -30,6 +30,7 @@ Configuration file is stored in JSON format (default values shown below):
"rootDir": "$HOME/.aptly",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"downloadRetries": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
@@ -99,7 +100,10 @@ Options:
is a number of parallel download threads to use when downloading packages
* `downloadSpeedLimit`:
limit in kbytes/sec on download speed while mirroring remote repositieis
limit in kbytes/sec on download speed while mirroring remote repositories
* `downloadRetries`:
number of retries for download attempts
* `architectures`:
is a list of architectures to process; if left empty defaults to all available architectures; could be