store_request_id 0.2.0 → 0.3.0
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/.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.
|