store_request_id 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -5
- data/CHANGELOG.md +9 -0
- data/README.md +1 -1
- data/lib/store_request_id/blue_green.rb +24 -0
- data/lib/store_request_id/blue_green_middleware.rb +38 -0
- data/lib/store_request_id/rails.rb +2 -0
- data/lib/store_request_id/version.rb +1 -1
- data/lib/store_request_id.rb +2 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e935d4e5000af1c0a53aa51de4ec67a34594635
|
4
|
+
data.tar.gz: 1c9b8d8531dcfc2cb11cec9233c7eb917448a4e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63e142fc05d8cf92704624d0b9b5e7ef6f71a10ea23b55145725226f9ff2956f6acc09aff6197ebce771071d02f4268cfa52543492c5b1092681de5eb5ff6f0f
|
7
|
+
data.tar.gz: 36ff475ed9442b92f040414bcc2e96fdc1c53983cbf65e20fe8e9237a6735fdb31c43e3089368e152cf92cb8aece4bc6beb51360f519330536c0b94c35d63a26
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [0.3.0](https://github.com/SparkHub/gs-store-request-id/tree/v0.3.0) (2019-02-08)
|
4
|
+
[Full Changelog](https://github.com/SparkHub/gs-store-request-id/compare/v0.1.0...v0.2.0)
|
5
|
+
|
6
|
+
**Implementing Blue/Green feature**
|
7
|
+
- New Middleware to manage the Blue/Green feature:
|
8
|
+
+ Injects new header `X-GS-BGEnv` if doesn't exist: values `blue` (default) or `green`
|
9
|
+
+ Stores the value of the new header in `StoreRequestId.blue_green`
|
10
|
+
- Droping support for Ruby < 2.3 and adding support for ruby >= 2.5
|
11
|
+
|
3
12
|
## [0.2.0](https://github.com/SparkHub/gs-store-request-id/tree/v0.2.0) (2017-08-14)
|
4
13
|
[Full Changelog](https://github.com/SparkHub/gs-store-request-id/compare/v0.1.0...v0.2.0)
|
5
14
|
|
data/README.md
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module StoreRequestId
|
4
|
+
# Blue/Green accessors
|
5
|
+
module BlueGreen
|
6
|
+
HEADER = 'X-GS-BGEnv'.freeze
|
7
|
+
|
8
|
+
def blue_green
|
9
|
+
storage[HEADER]
|
10
|
+
end
|
11
|
+
|
12
|
+
def blue_green=(value)
|
13
|
+
storage[HEADER] = value
|
14
|
+
end
|
15
|
+
|
16
|
+
private_constant :HEADER
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def storage
|
21
|
+
configuration.storage
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module StoreRequestId
|
4
|
+
# Inject BG Header and store also on StoreRequestId accessor
|
5
|
+
class BlueGreenMiddleware
|
6
|
+
def call(env)
|
7
|
+
Process.new(env).call(@app)
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(app)
|
11
|
+
@app = app
|
12
|
+
end
|
13
|
+
|
14
|
+
# Process Environment
|
15
|
+
class Process < SimpleDelegator
|
16
|
+
HEADER = 'X-GS-BGEnv'.freeze
|
17
|
+
VALUES = { 'blue' => 'blue',
|
18
|
+
'green' => 'green' }.freeze
|
19
|
+
|
20
|
+
def call(app)
|
21
|
+
StoreRequestId.blue_green = bg
|
22
|
+
app.call(processed)
|
23
|
+
end
|
24
|
+
|
25
|
+
private_constant :VALUES, :HEADER
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def bg
|
30
|
+
@bg ||= VALUES.fetch(self[HEADER], 'blue')
|
31
|
+
end
|
32
|
+
|
33
|
+
def processed
|
34
|
+
dup.merge(HEADER => bg)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -7,6 +7,8 @@ module StoreRequestId
|
|
7
7
|
initializer 'store_request_id.configure_rails_initialization' do
|
8
8
|
Rails.application.middleware.insert_after ActionDispatch::RequestId,
|
9
9
|
StoreRequestId::Middleware
|
10
|
+
Rails.application.middleware.insert_after StoreRequestId::Middleware,
|
11
|
+
StoreRequestId::BlueGreenMiddleware
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
data/lib/store_request_id.rb
CHANGED
@@ -4,10 +4,12 @@ require 'store_request_id/version'
|
|
4
4
|
require 'store_request_id/setup'
|
5
5
|
require 'store_request_id/store'
|
6
6
|
require 'store_request_id/request_id'
|
7
|
+
require 'store_request_id/blue_green'
|
7
8
|
|
8
9
|
module StoreRequestId
|
9
10
|
extend Setup
|
10
11
|
extend RequestId
|
12
|
+
extend BlueGreen
|
11
13
|
end
|
12
14
|
|
13
15
|
require 'store_request_id/rails' if defined?(Rails::Railtie)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: store_request_id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guidespark
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -104,6 +104,8 @@ files:
|
|
104
104
|
- bin/console
|
105
105
|
- bin/setup
|
106
106
|
- lib/store_request_id.rb
|
107
|
+
- lib/store_request_id/blue_green.rb
|
108
|
+
- lib/store_request_id/blue_green_middleware.rb
|
107
109
|
- lib/store_request_id/configuration.rb
|
108
110
|
- lib/store_request_id/defaults/storage.rb
|
109
111
|
- lib/store_request_id/middleware.rb
|
@@ -133,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
135
|
version: '0'
|
134
136
|
requirements: []
|
135
137
|
rubyforge_project:
|
136
|
-
rubygems_version: 2.6.
|
138
|
+
rubygems_version: 2.6.14
|
137
139
|
signing_key:
|
138
140
|
specification_version: 4
|
139
141
|
summary: Store the unique request id within a global state.
|