process_handler 2.0.0 → 2.1.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98fd113311c50811df459fd962cd08d07a1370ba
|
4
|
+
data.tar.gz: f1dc5496c0752acccb0edf3860cd4bfe0492b7f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b063ea89548353200881c51d71f65eccb5255e5e325f9d03f7920b2a7ae842f6963c40b26c7d0fcd6e6dce598f81514ba3dbab5fc6a9ca047cde23ab219993d
|
7
|
+
data.tar.gz: 25dd37e89cd5656b7dc6988d519c8f933ecd6a3add4389da80051eb8aa7790cb32de6b0ac0681231ddee6e1ed8cf7b06bb86348c4a0c623ec1b758a7dd2fef8a
|
@@ -33,6 +33,7 @@ module Salemove
|
|
33
33
|
notifier_factory: NotifierFactory,
|
34
34
|
process_monitor: ProcessMonitor.new,
|
35
35
|
process_name: 'Unknown process',
|
36
|
+
log_error_as_string: false,
|
36
37
|
execution_time_key: DEFAULT_EXECUTION_TIME_KEY,
|
37
38
|
exit_enforcer: nil)
|
38
39
|
@freddy = freddy
|
@@ -46,6 +47,7 @@ module Salemove
|
|
46
47
|
@exception_notifier = notifier_factory.get_notifier(process_name, notifier)
|
47
48
|
# Needed for forcing exit from jruby with exit(0)
|
48
49
|
@exit_enforcer = exit_enforcer || Proc.new {}
|
50
|
+
@log_error_as_string = log_error_as_string
|
49
51
|
end
|
50
52
|
|
51
53
|
def spawn(service, blocking: true)
|
@@ -63,7 +65,8 @@ module Salemove
|
|
63
65
|
freddy: @freddy,
|
64
66
|
logger: @logger,
|
65
67
|
benchmarker: @benchmarker,
|
66
|
-
exception_notifier: @exception_notifier
|
68
|
+
exception_notifier: @exception_notifier,
|
69
|
+
log_error_as_string: @log_error_as_string
|
67
70
|
).spawn
|
68
71
|
]
|
69
72
|
else
|
@@ -131,12 +134,13 @@ module Salemove
|
|
131
134
|
class ServiceSpawner
|
132
135
|
PROCESSED_REQUEST_LOG_KEYS = [:error, :success]
|
133
136
|
|
134
|
-
def initialize(service, freddy:, logger:, benchmarker:, exception_notifier:)
|
137
|
+
def initialize(service, freddy:, logger:, benchmarker:, exception_notifier:, log_error_as_string:)
|
135
138
|
@service = service
|
136
139
|
@freddy = freddy
|
137
140
|
@logger = logger
|
138
141
|
@benchmarker = benchmarker
|
139
142
|
@exception_notifier = exception_notifier
|
143
|
+
@log_error_as_string = log_error_as_string
|
140
144
|
end
|
141
145
|
|
142
146
|
def spawn
|
@@ -200,6 +204,9 @@ module Salemove
|
|
200
204
|
.merge(type: input[:type])
|
201
205
|
.merge(PivotProcess.trace_information)
|
202
206
|
|
207
|
+
if @log_error_as_string
|
208
|
+
attributes[:error] = attributes[:error].to_s if attributes.has_key?(:error)
|
209
|
+
end
|
203
210
|
@logger.info 'Processed request', attributes
|
204
211
|
end
|
205
212
|
|
@@ -12,6 +12,7 @@ describe ProcessHandler::PivotProcess do
|
|
12
12
|
let(:responder) { double(shutdown: true) }
|
13
13
|
let(:logger) { Logasm.build('test-app', []) }
|
14
14
|
let(:application) { 'my-app' }
|
15
|
+
let(:log_error_as_string) { false }
|
15
16
|
|
16
17
|
let(:process) do
|
17
18
|
ProcessHandler::PivotProcess.new(
|
@@ -20,7 +21,8 @@ describe ProcessHandler::PivotProcess do
|
|
20
21
|
statsd: statsd,
|
21
22
|
process_monitor: monitor,
|
22
23
|
process_name: application,
|
23
|
-
notifier_factory: notifier_factory
|
24
|
+
notifier_factory: notifier_factory,
|
25
|
+
log_error_as_string: log_error_as_string
|
24
26
|
)
|
25
27
|
end
|
26
28
|
|
@@ -96,6 +98,38 @@ describe ProcessHandler::PivotProcess do
|
|
96
98
|
end
|
97
99
|
end
|
98
100
|
|
101
|
+
describe 'when service responds with an error object' do
|
102
|
+
let(:result) { { success: false, error: {error: 'hey', message: 'message' } } }
|
103
|
+
|
104
|
+
before do
|
105
|
+
expect(service).to receive(:call).with(input) { result }
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'logs the message as an object' do
|
109
|
+
expect(logger).to receive(:info).with("Received request", {})
|
110
|
+
expect(logger).to receive(:info)
|
111
|
+
.with(
|
112
|
+
"Processed request",
|
113
|
+
{ success: false, error: {error: 'hey', message: 'message'}, type: nil }
|
114
|
+
)
|
115
|
+
subject()
|
116
|
+
end
|
117
|
+
|
118
|
+
describe 'when log_error_as_string' do
|
119
|
+
let(:log_error_as_string) { true }
|
120
|
+
|
121
|
+
it 'logs the message as string' do
|
122
|
+
expect(logger).to receive(:info).with("Received request", {})
|
123
|
+
expect(logger).to receive(:info)
|
124
|
+
.with(
|
125
|
+
"Processed request",
|
126
|
+
{ success: false, error: "{:error=>\"hey\", :message=>\"message\"}", type: nil }
|
127
|
+
)
|
128
|
+
subject()
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
99
133
|
shared_examples 'an error_handler' do
|
100
134
|
|
101
135
|
it 'logs error' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: process_handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SaleMove TechMovers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: airbrake
|