TerraformDevKit 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d32288f9fba4deacb22f30271ddcff2b5a115992
4
- data.tar.gz: f47b6be1a752293da1e7efb3de395c0812ca88a6
3
+ metadata.gz: 03871ccc5d65b7a7563ab9aef556ea126c8e9c88
4
+ data.tar.gz: 8f7f6ad94c285ff7340d725fc60510bc5d5ac65b
5
5
  SHA512:
6
- metadata.gz: 45718a1746814caf2ed05d43e528a37fc09e4e1a94dc286f1881292b820252d2e2d39789a670eb593b398fd1cdf2bd7c953312bc1470e8c2ba01dd0a9b5593ef
7
- data.tar.gz: 68a923d769b5bb21faf46c68432cf288afc4558f217bb393d266d30a6a3e2261349e872dcd2426b2a34e953c2f704e30f5bb70a36a9f1be5a3e2b5acbb4c9c76
6
+ metadata.gz: bac5b976127e46c5d7c570798d7589caf413f7ce5a73e857e23ecae1b407eff162aa9a49303a4c36ff3192de5b1c30e26459b3867375d68d5b6b6e6e3cc6139f
7
+ data.tar.gz: c6478f25739d5ecfa3ed710208f0f5ec105ea7c2438d3b94b17298f9449253f1af6c2080733be61f88117cb2781d078070129a3bef9f8104acdcf18f8102fa96
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'bundler', '~> 1.14'
25
25
  spec.add_development_dependency 'rake', '~> 10.0'
26
26
  spec.add_development_dependency 'rspec', '~> 3.0'
27
+ spec.add_development_dependency 'webmock', '~> 3.0.1'
27
28
 
28
29
  spec.add_runtime_dependency 'aws-sdk', '~> 2.9.37'
29
30
  spec.add_runtime_dependency 'rubyzip', '~> 1.2.1'
data/exe/wait_for_url CHANGED
@@ -1,32 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'open-uri'
4
- require 'openssl'
3
+ require 'TerraformDevKit'
5
4
 
6
- # Interval between retries (in seconds)
7
- INTERVAL_LENGTH = 5.0
5
+ TDK = TerraformDevKit
8
6
 
9
- # Maximum amount of time to keep retrying (in seconds)
10
- MAX_TIME_TO_RETRY = 300.0
11
-
12
- if ARGV.length != 1
13
- puts 'USAGE: wait_for_url <url>'
7
+ if ARGV.length != 2
8
+ puts 'USAGE: wait_for_url <url> <retries>'
14
9
  exit
15
10
  end
16
11
 
17
12
  url = ARGV[0]
18
- retries = (MAX_TIME_TO_RETRY / INTERVAL_LENGTH).ceil
13
+ retries = ARGV[1].to_i
19
14
 
20
- begin
21
- puts "Fetching #{url}"
22
- open(url, ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE, redirect: false)
23
- rescue OpenURI::HTTPError => error
24
- response = error.io
25
- puts "Response status code: #{response.status[0]}"
26
- unless (retries -= 1).zero? || response.status[0] != '500'
27
- sleep(INTERVAL_LENGTH)
28
- retry
29
- end
30
- rescue OpenURI::HTTPRedirect => error
31
- puts "Redirect to: #{error.uri}"
15
+ TDK.with_retry(retries) do
16
+ TDK::Request.new(url).execute(raise_on_codes: ['500'])
32
17
  end
@@ -4,6 +4,8 @@ require 'TerraformDevKit/command'
4
4
  require 'TerraformDevKit/config'
5
5
  require 'TerraformDevKit/dynamodb'
6
6
  require 'TerraformDevKit/os'
7
+ require 'TerraformDevKit/request'
8
+ require 'TerraformDevKit/retry'
7
9
  require 'TerraformDevKit/terraform_env_manager'
8
10
  require 'TerraformDevKit/terraform_installer'
9
11
  require 'TerraformDevKit/terraform_log_filter'
@@ -21,7 +21,6 @@ module TerraformDevKit
21
21
  thread.join
22
22
  stdout_thread.join
23
23
  input_thread.terminate unless close_stdin
24
-
25
24
  raise "Error running command #{cmd}" unless thread.value.success?
26
25
  end
27
26
 
@@ -0,0 +1,28 @@
1
+ require 'open-uri'
2
+ require 'openssl'
3
+
4
+ module TerraformDevKit
5
+ class Request
6
+ def initialize(url, query_strings: [], headers: {})
7
+ @url = url
8
+ @query_strings = query_strings
9
+ @headers = headers
10
+ end
11
+
12
+ def execute(raise_on_codes: [])
13
+ url = URI.parse(@url)
14
+ url.query = URI.encode_www_form(@query_strings) unless @query_strings.empty?
15
+ puts "Fetching #{url}"
16
+ options = {
17
+ redirect: false,
18
+ ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
19
+ }
20
+ options.merge!(@headers)
21
+ open(url, options)
22
+ rescue OpenURI::HTTPError => error
23
+ response = error.io
24
+ raise if raise_on_codes.include?(response.status[0])
25
+ response
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ module TerraformDevKit
2
+ def self.with_retry(retry_count, sleep_time: 1)
3
+ yield
4
+ rescue
5
+ unless (retry_count -= 1).zero?
6
+ sleep(sleep_time)
7
+ retry
8
+ end
9
+ raise
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module TerraformDevKit
2
- VERSION = '0.1.8'.freeze
2
+ VERSION = '0.1.9'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: TerraformDevKit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Jimenez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-28 00:00:00.000000000 Z
11
+ date: 2017-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.0.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.1
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: aws-sdk
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,8 @@ files:
108
122
  - lib/TerraformDevKit/download.rb
109
123
  - lib/TerraformDevKit/dynamodb.rb
110
124
  - lib/TerraformDevKit/os.rb
125
+ - lib/TerraformDevKit/request.rb
126
+ - lib/TerraformDevKit/retry.rb
111
127
  - lib/TerraformDevKit/terraform_env_manager.rb
112
128
  - lib/TerraformDevKit/terraform_installer.rb
113
129
  - lib/TerraformDevKit/terraform_log_filter.rb