genesis_retryingfetcher 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +0 -0
  3. data/lib/retryingfetcher.rb +25 -0
  4. metadata +62 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8b08fe952dad4b8d91f25d375adbd1f3c5584222
4
+ data.tar.gz: 54ec8032b697440897c3fc62f41eddc8a03c73fc
5
+ SHA512:
6
+ metadata.gz: 86d8c6590a52fc548879898af40fc2e53ba38ec49d0be3e77a4029b5192a127fb883bcbbbcf064465bb1bdf4d0d713969ecb127e21c1ab73f3132ab3e7c30667
7
+ data.tar.gz: 4eeccac776f87b0cdcbbd64045f14f73c3664798d8c1e4cfa1b7f03a61890c4493f565f3d4e74cbefaded1ddc64756a140c61cfaa868c3d642f7c04e3af72a33
File without changes
@@ -0,0 +1,25 @@
1
+ require "httparty"
2
+
3
+ module Genesis
4
+ module RetryingFetcher
5
+ FETCH_RETRY_INTERVALS = [0,1,5,30,60,90,180,300,300,300,300,300,1800,3600]
6
+
7
+ def self.get what, base_url = '', fetch_intervals = FETCH_RETRY_INTERVALS
8
+ what = File.join(base_url, what) unless base_url.empty?
9
+ fetch_intervals.each_with_index do |sleep_interval, index|
10
+ Kernel.sleep(sleep_interval)
11
+ puts "Fetching '%s' (Attempt #%d)..." % [what, index+1]
12
+
13
+ begin
14
+ response = HTTParty.get(what)
15
+ next unless response.code == 200
16
+ yield response.body if block_given?
17
+ return response.body
18
+ rescue => e
19
+ puts "RetyingFetcher.get error: %s" % e.message
20
+ end
21
+ end
22
+ nil
23
+ end
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: genesis_retryingfetcher
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Johnstone
8
+ - Roy Marantz
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-12-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ description: Genesis is used to manage provisioning of hardware. The retryingfetcher
29
+ is what fetches resources from remote locations with a specified number of retries
30
+ and backoff between each.
31
+ email: opensourcesoftware@tumblr.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - lib/retryingfetcher.rb
37
+ - README.md
38
+ homepage: https://github.ewr01.tumblr.net/Tumblr/genesis
39
+ licenses:
40
+ - Apache License, 2.0
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubyforge_project:
58
+ rubygems_version: 2.0.14
59
+ signing_key:
60
+ specification_version: 4
61
+ summary: Genesis remote resource fetcher
62
+ test_files: []