From: Jan Provaznik <jprovazn(a)redhat.com>
This patch adds retries when an error occurs.
---
.../util/repository_manager/comps_repository.rb | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/app/util/repository_manager/comps_repository.rb
b/src/app/util/repository_manager/comps_repository.rb
index 3e57589..a13f461 100644
--- a/src/app/util/repository_manager/comps_repository.rb
+++ b/src/app/util/repository_manager/comps_repository.rb
@@ -107,14 +107,21 @@ class CompsRepository < AbstractRepository
end
def download_xml(url)
- resp = Typhoeus::Request.get(url, :timeout => 30000, :follow_location => true,
:max_redirects => 3)
- unless resp.code == 200
- raise "failed to fetch #{url}: #{resp.body}"
+ body = nil
+ 5.times do |i|
+ resp = Typhoeus::Request.get(url, :timeout => 60000, :follow_location =>
true, :max_redirects => 10)
+ if resp.code == 200
+ body = resp.body
+ break
+ end
+ sleep 2
end
+ raise "failed to fetch #{url}, aborting" unless body
+
if url =~ /\.gz$/
- return Zlib::GzipReader.new(StringIO.new(resp.body)).read
+ return Zlib::GzipReader.new(StringIO.new(body)).read
else
- return resp.body
+ return body
end
end
--
1.7.4.4