themis-checker-server 2.0.0 → 3.0.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/lib/themis/checker/server.rb +109 -15
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b96b3d7afa6728eea8f2b6fbb0d52847acea3e53
|
4
|
+
data.tar.gz: 6da238ae6f0e1b926c6977a9137e3203e488ad57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03bfdccf9df22ce7320484b091dcd5d74b70ee9f0c923efe96e1ae2abf38855d50f3298c64cf7ae4efacea088d6dd19be647057d90b8fc2782d505c10272bcac
|
7
|
+
data.tar.gz: 2f78ed8d1f099a28bbcc05fdfbd5d4b1766287ba0a5b803b24cd229da487e9ccbc8fda9c64af94a4d5f945fcd7ffbcd17e0815acba0dd40ec79a41346cf5d807
|
@@ -5,6 +5,7 @@ require 'themis/checker/result'
|
|
5
5
|
require 'base64'
|
6
6
|
require 'date'
|
7
7
|
require 'time_difference'
|
8
|
+
require 'raven/base'
|
8
9
|
|
9
10
|
|
10
11
|
module Themis
|
@@ -13,6 +14,21 @@ module Themis
|
|
13
14
|
def initialize
|
14
15
|
@logger = self.get_logger
|
15
16
|
@beanstalk = nil
|
17
|
+
|
18
|
+
if self.raven_enabled?
|
19
|
+
Raven.configure do |config|
|
20
|
+
config.dsn = ENV['SENTRY_DSN']
|
21
|
+
config.ssl_verification = false
|
22
|
+
config.logger = @logger
|
23
|
+
config.async = lambda { |event|
|
24
|
+
Thread.new { Raven.send_event(event) }
|
25
|
+
}
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def raven_enabled?
|
31
|
+
not ENV['SENTRY_DSN'].nil?
|
16
32
|
end
|
17
33
|
|
18
34
|
def run
|
@@ -45,7 +61,10 @@ module Themis
|
|
45
61
|
adjunct: Base64.encode64(updated_adjunct)
|
46
62
|
}
|
47
63
|
|
48
|
-
|
64
|
+
delivery_time = TimeDifference.between(timestamp_created, timestamp_delivered).in_seconds
|
65
|
+
processing_time = TimeDifference.between(timestamp_delivered, timestamp_processed).in_seconds
|
66
|
+
|
67
|
+
log_message = 'PUSH flag `%s` /%d to `%s`@`%s` (%s) - status %s, adjunct `%s` [delivery %.2fs, processing %.2fs]' % [
|
49
68
|
job_data['flag'],
|
50
69
|
metadata['round'],
|
51
70
|
metadata['service_name'],
|
@@ -53,9 +72,38 @@ module Themis
|
|
53
72
|
job_data['endpoint'],
|
54
73
|
Themis::Checker::Result.key(status),
|
55
74
|
job_result[:adjunct],
|
56
|
-
|
57
|
-
|
58
|
-
]
|
75
|
+
delivery_time,
|
76
|
+
processing_time
|
77
|
+
]
|
78
|
+
|
79
|
+
if self.raven_enabled?
|
80
|
+
short_log_message = 'PUSH `%s...` /%d to `%s` - status %s' % [
|
81
|
+
job_data['flag'][0..7],
|
82
|
+
metadata['round'],
|
83
|
+
metadata['team_name'],
|
84
|
+
Themis::Checker::Result.key(status)
|
85
|
+
]
|
86
|
+
|
87
|
+
Raven.capture_message short_log_message, {
|
88
|
+
level: 'info',
|
89
|
+
tags: {
|
90
|
+
tf_operation: 'push',
|
91
|
+
tf_status: Themis::Checker::Result.key(status).to_s,
|
92
|
+
tf_team: metadata['team_name'],
|
93
|
+
tf_service: metadata['service_name'],
|
94
|
+
tf_round: metadata['round']
|
95
|
+
},
|
96
|
+
extra: {
|
97
|
+
endpoint: job_data['endpoint'],
|
98
|
+
flag: job_data['flag'],
|
99
|
+
adjunct: job_result[:adjunct],
|
100
|
+
delivery_time: delivery_time,
|
101
|
+
processing_time: processing_time
|
102
|
+
}
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
@logger.info log_message
|
59
107
|
when 'pull'
|
60
108
|
metadata = job_data['metadata']
|
61
109
|
timestamp_created = DateTime.iso8601 metadata['timestamp']
|
@@ -76,17 +124,57 @@ module Themis
|
|
76
124
|
status: status
|
77
125
|
}
|
78
126
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
127
|
+
delivery_time = TimeDifference.between(timestamp_created, timestamp_delivered).in_seconds
|
128
|
+
processing_time = TimeDifference.between(timestamp_delivered, timestamp_processed).in_seconds
|
129
|
+
|
130
|
+
begin
|
131
|
+
log_message = 'PULL flag `%s` /%d from `%s`@`%s` (%s) with adjunct `%s` - status %s [delivery %.2fs, processing %.2fs]' % [
|
132
|
+
job_data['flag'],
|
133
|
+
metadata['round'],
|
134
|
+
metadata['service_name'],
|
135
|
+
metadata['team_name'],
|
136
|
+
job_data['endpoint'],
|
137
|
+
job_data['adjunct'],
|
138
|
+
Themis::Checker::Result.key(status),
|
139
|
+
delivery_time,
|
140
|
+
processing_time
|
141
|
+
]
|
142
|
+
|
143
|
+
if self.raven_enabled?
|
144
|
+
short_log_message = 'PULL `%s...` /%d from `%s` - status %s' % [
|
145
|
+
job_data['flag'][0..7],
|
146
|
+
metadata['round'],
|
147
|
+
metadata['team_name'],
|
148
|
+
Themis::Checker::Result.key(status)
|
149
|
+
]
|
150
|
+
|
151
|
+
Raven.capture_message short_log_message, {
|
152
|
+
level: 'info',
|
153
|
+
tags: {
|
154
|
+
tf_operation: 'pull',
|
155
|
+
tf_status: Themis::Checker::Result.key(status).to_s,
|
156
|
+
tf_team: metadata['team_name'],
|
157
|
+
tf_service: metadata['service_name'],
|
158
|
+
tf_round: metadata['round']
|
159
|
+
},
|
160
|
+
extra: {
|
161
|
+
endpoint: job_data['endpoint'],
|
162
|
+
flag: job_data['flag'],
|
163
|
+
adjunct: job_data['adjunct'],
|
164
|
+
delivery_time: delivery_time,
|
165
|
+
processing_time: processing_time
|
166
|
+
}
|
167
|
+
}
|
168
|
+
end
|
169
|
+
rescue Exception => e
|
170
|
+
if self.raven_enabled?
|
171
|
+
Raven.capture_exception e
|
172
|
+
end
|
173
|
+
@logger.error e.message
|
174
|
+
e.backtrace.each { |line| @logger.error line }
|
175
|
+
end
|
176
|
+
|
177
|
+
@logger.info log_message
|
90
178
|
else
|
91
179
|
@logger.warn 'Unknown job!'
|
92
180
|
end
|
@@ -153,6 +241,9 @@ module Themis
|
|
153
241
|
rescue Interrupt
|
154
242
|
raise
|
155
243
|
rescue Exception => e
|
244
|
+
if self.raven_enabled?
|
245
|
+
Raven.capture_exception e
|
246
|
+
end
|
156
247
|
@logger.error e.message
|
157
248
|
e.backtrace.each { |line| @logger.error line }
|
158
249
|
end
|
@@ -167,6 +258,9 @@ module Themis
|
|
167
258
|
rescue Interrupt
|
168
259
|
raise
|
169
260
|
rescue Exception => e
|
261
|
+
if self.raven_enabled?
|
262
|
+
Raven.capture_exception e
|
263
|
+
end
|
170
264
|
@logger.error e.message
|
171
265
|
e.backtrace.each { |line| @logger.error line }
|
172
266
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: themis-checker-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Pyatkin
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.4.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sentry-raven
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.0.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.0.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: bundler
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|