breakers 1.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +7 -10
- data/lib/breakers/uptime_middleware.rb +6 -3
- data/lib/breakers/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1471486e4b71db051dc6b073a4f5f98cd3a2bb6a10b51a3da6d12d24b1bba5f6
|
4
|
+
data.tar.gz: d7703097ccb4bb819a32c80c28cfabc6563520ffd7552961546873243ab2f125
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b99274dd003feb7f3b362950844eca5f9b194b9a30b0959dfdf8003e4163752dc0400cf69d868069a816089467c6d529788de5b4024186fe1c52f0e70db43ebf
|
7
|
+
data.tar.gz: a112b8f32680017e9c98fbd55b122aa2ab30bc33a1a950e9e2c9236ca4d294df4b96338012dab8e4f23e5e0fb89dba04768b37ee43b9eff0e34a1bebb4e78a4a
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -142,17 +142,14 @@ It's ok for your plugin to implement only part of this interface.
|
|
142
142
|
|
143
143
|
### Forcing an Outage
|
144
144
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
145
|
+
You can test an outage by faking or forcing an outage using:
|
146
|
+
```
|
147
|
+
Breakers::Outage#begin_forced_outage!
|
148
|
+
```
|
149
|
+
Once an forced outage is started, you must manually stop it using:
|
150
|
+
```
|
151
|
+
Breakers::Outage#end_forced_outage!
|
152
152
|
```
|
153
|
-
|
154
|
-
Unlike with outages detected by the middleware, forced outages are not periodically tested to see if they have completed and must be
|
155
|
-
manually ended with a call to `end_forced_outage!`.
|
156
153
|
|
157
154
|
### Changing the Outage Response
|
158
155
|
|
@@ -26,13 +26,15 @@ module Breakers
|
|
26
26
|
|
27
27
|
latest_outage = service.latest_outage
|
28
28
|
|
29
|
-
if latest_outage && !latest_outage
|
30
|
-
if latest_outage.ready_for_retest?(wait_seconds: service.seconds_before_retry)
|
29
|
+
if !latest_outage.nil? && !latest_outage&.ended?
|
30
|
+
if latest_outage.ready_for_retest?(wait_seconds: service.seconds_before_retry) && !latest_outage.forced?
|
31
|
+
# No outage detected, proceed with the request
|
31
32
|
handle_request(service: service, request_env: request_env, current_outage: latest_outage)
|
32
33
|
else
|
33
34
|
outage_response(outage: latest_outage, service: service)
|
34
35
|
end
|
35
36
|
else
|
37
|
+
# No outage detected, proceed with the request
|
36
38
|
handle_request(service: service, request_env: request_env)
|
37
39
|
end
|
38
40
|
end
|
@@ -45,9 +47,10 @@ module Breakers
|
|
45
47
|
end
|
46
48
|
if Breakers.outage_response[:type] == :status_code
|
47
49
|
Faraday::Response.new.tap do |response|
|
50
|
+
forced = outage.forced? ? '[FORCED] ' : ''
|
48
51
|
response.finish(
|
49
52
|
status: Breakers.outage_response[:status_code],
|
50
|
-
body: "Outage detected on #{service.name} beginning at #{outage.start_time.to_i}",
|
53
|
+
body: "#{forced}Outage detected on #{service.name} beginning at #{outage.start_time.to_i}",
|
51
54
|
response_headers: {}
|
52
55
|
)
|
53
56
|
end
|
data/lib/breakers/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: breakers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aubrey Holland
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: base64
|
@@ -233,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
233
|
- !ruby/object:Gem::Version
|
234
234
|
version: '0'
|
235
235
|
requirements: []
|
236
|
-
rubygems_version: 3.5.
|
236
|
+
rubygems_version: 3.5.11
|
237
237
|
signing_key:
|
238
238
|
specification_version: 4
|
239
239
|
summary: Handle outages to backend systems with a Faraday middleware
|