pact 1.23.0 → 1.24.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/pact/provider/verification_results/publish.rb +9 -9
- data/lib/pact/retry.rb +35 -0
- data/lib/pact/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 552d608df849af7001c18df8b94463ec9e9da3bf
|
4
|
+
data.tar.gz: 9a3c2bff39b66747e85af6056ce70c14b1d717ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74b503a7555d1a08fd19c179379e4eb2c809dcf4acb0b644c978f25468771d55766c1b2ecdcb285c928690644b905017518d6002798eeb73d91ee2ae51104665
|
7
|
+
data.tar.gz: c5b3f0d850f25e6641dcc84a053b79798f56e79f95dc2ec2825f9f4dc5b847f5acd54aaaa5b2c413b216c08e0e8f292466aac57e1f0cea9b8effa9c0fdd32577
|
data/CHANGELOG.md
CHANGED
@@ -1,17 +1,15 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'pact/errors'
|
3
|
+
require 'pact/retry'
|
3
4
|
|
4
5
|
# TODO move this to the pact broker client
|
5
|
-
# TODO retries
|
6
6
|
|
7
7
|
module Pact
|
8
8
|
module Provider
|
9
9
|
module VerificationResults
|
10
|
-
|
11
10
|
class PublicationError < Pact::Error; end
|
12
11
|
|
13
12
|
class Publish
|
14
|
-
|
15
13
|
def self.call pact_source, verification_result
|
16
14
|
new(pact_source, verification_result).call
|
17
15
|
end
|
@@ -75,8 +73,10 @@ module Pact
|
|
75
73
|
response = nil
|
76
74
|
begin
|
77
75
|
options = {:use_ssl => uri.scheme == 'https'}
|
78
|
-
|
79
|
-
|
76
|
+
Retry.until_true do
|
77
|
+
response = Net::HTTP.start(uri.host, uri.port, options) do |http|
|
78
|
+
http.request request
|
79
|
+
end
|
80
80
|
end
|
81
81
|
rescue StandardError => e
|
82
82
|
error_message = "Failed to tag provider version due to: #{e.class} #{e.message}"
|
@@ -95,16 +95,16 @@ module Pact
|
|
95
95
|
response = nil
|
96
96
|
begin
|
97
97
|
options = {:use_ssl => uri.scheme == 'https'}
|
98
|
-
|
99
|
-
|
98
|
+
Retry.until_true do
|
99
|
+
response = Net::HTTP.start(uri.host, uri.port, options) do |http|
|
100
|
+
http.request request
|
101
|
+
end
|
100
102
|
end
|
101
103
|
rescue StandardError => e
|
102
104
|
error_message = "Failed to publish verification results due to: #{e.class} #{e.message}"
|
103
105
|
raise PublicationError.new(error_message)
|
104
106
|
end
|
105
107
|
|
106
|
-
|
107
|
-
|
108
108
|
if response.code.start_with?("2")
|
109
109
|
new_resource_url = JSON.parse(response.body)['_links']['self']['href']
|
110
110
|
Pact.configuration.output_stream.puts "INFO: Verification results published to #{new_resource_url}"
|
data/lib/pact/retry.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
module Pact
|
2
|
+
class Retry
|
3
|
+
class RescuableError
|
4
|
+
UNRESCUEABLE = [Pact::Error]
|
5
|
+
|
6
|
+
def self.===(e)
|
7
|
+
case e
|
8
|
+
when *UNRESCUEABLE then
|
9
|
+
false
|
10
|
+
else
|
11
|
+
true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.until_true options = {}
|
17
|
+
max_tries = options.fetch(:times, 3)
|
18
|
+
tries = 0
|
19
|
+
while true
|
20
|
+
begin
|
21
|
+
return yield
|
22
|
+
rescue RescuableError => e
|
23
|
+
tries += 1
|
24
|
+
$stderr.puts "Error making request - #{e.class} #{e.message} #{e.backtrace.find {|l| l.include?('pact_provider')}}, attempt #{tries} of #{max_tries}"
|
25
|
+
raise e if max_tries == tries
|
26
|
+
sleep options
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.sleep options
|
32
|
+
Kernel.sleep options.fetch(:sleep, 5)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/pact/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Fraser
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2018-04-
|
15
|
+
date: 2018-04-19 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: randexp
|
@@ -374,6 +374,7 @@ files:
|
|
374
374
|
- lib/pact/provider/verification_results/publish_all.rb
|
375
375
|
- lib/pact/provider/verification_results/verification_result.rb
|
376
376
|
- lib/pact/provider/world.rb
|
377
|
+
- lib/pact/retry.rb
|
377
378
|
- lib/pact/tasks.rb
|
378
379
|
- lib/pact/tasks/task_helper.rb
|
379
380
|
- lib/pact/tasks/verification_task.rb
|