health_check 2.2.1 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +12 -4
- data/CHANGELOG +24 -0
- data/Gemfile +1 -1
- data/README.rdoc +10 -2
- data/config/routes.rb +3 -6
- data/lib/health_check.rb +7 -2
- data/lib/health_check/health_check_controller.rb +1 -1
- data/lib/health_check/health_check_routes.rb +10 -8
- data/lib/health_check/middleware_health_check.rb +44 -0
- data/lib/health_check/version.rb +1 -1
- data/test/rails_4.0.gemfile +1 -1
- data/test/rails_4.1.gemfile +1 -1
- data/test/rails_4.2.gemfile +1 -1
- data/test/setup_railsapp +13 -4
- data/test/test_with_railsapp +51 -55
- metadata +3 -2
data/.travis.yml
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
sudo: false
|
2
|
+
addons:
|
3
|
+
apt:
|
4
|
+
packages:
|
5
|
+
- net-tools
|
6
|
+
|
2
7
|
cache: bundler
|
3
8
|
language: ruby
|
4
9
|
notifications:
|
@@ -9,7 +14,7 @@ notifications:
|
|
9
14
|
before_install:
|
10
15
|
- gem update --system $RUBYGEMS_VERSION
|
11
16
|
- gem --version
|
12
|
-
- gem install bundler
|
17
|
+
- gem install bundler ${BUNDLER_VERSION:+-v} ${BUNDLER_VERSION}
|
13
18
|
- bundle --version
|
14
19
|
- mkdir -p tmp/bundle
|
15
20
|
|
@@ -76,9 +81,12 @@ matrix:
|
|
76
81
|
gemfile: test/rails_4.2.gemfile
|
77
82
|
env: RAILS_SERVER=unicorn RAILS_VERSION=4.2
|
78
83
|
|
79
|
-
|
80
|
-
|
81
|
-
|
84
|
+
# Disabled because it takes way too long (40+ mins)
|
85
|
+
# Temporary version lock until Bundler >= 1.13.2
|
86
|
+
# https://github.com/bundler/bundler/issues/4975
|
87
|
+
#- rvm: jruby-19mode
|
88
|
+
# gemfile: test/rails_4.2.gemfile
|
89
|
+
# env: BUNDLER_VERSION=1.12.5 RAILS_VERSION=4.2
|
82
90
|
|
83
91
|
# rails 4.1 April 8, 2014
|
84
92
|
|
data/CHANGELOG
CHANGED
@@ -1,5 +1,29 @@
|
|
1
1
|
= Change Log =
|
2
2
|
|
3
|
+
* 2.3.0
|
4
|
+
* Fix route reload issue
|
5
|
+
* Various fixes to get tests working with bundle/jruby and other gem issues
|
6
|
+
* Document additional branches
|
7
|
+
* Fix route reload issue (auto routing previosuly conflicted with devise)
|
8
|
+
* Removed ref to rails 2.3, 3.*
|
9
|
+
|
10
|
+
* 2.2.1
|
11
|
+
* Adjust private/public cache-control based on max_age set
|
12
|
+
* 2.2.0
|
13
|
+
* Add max_age so we can control the caching of responses, don't run tests if Last-modified still matches
|
14
|
+
* Added basic auth - Thanks omadahealth
|
15
|
+
* A few macinations due to gem changes and avoidning triggering deprecation notices
|
16
|
+
* Add single quote to README to make the configuration file valid - Thanks Ryan Selk <ryanselk@gmail.com>
|
17
|
+
* Fixed README formatting
|
18
|
+
* 2.1.0
|
19
|
+
* Updated contributed tests so there is both the forced check and a *-if-present check which tests if the gem's class is loaded
|
20
|
+
* Added resque-redis check - Thanks filiphaftek <filip.haftek@airhelp.com>
|
21
|
+
* In addition to adding a test file to S3, we will also try to delete it to confirm that delete operations are possible - Thanks Anton Dimitrov <dimitrov.anton@gmail.com>
|
22
|
+
* Added redis, sidekiq-redis and s3 health-checks - Thanks Filip <filip.haftek@airhelp.com>
|
23
|
+
* Fix render options - Thanks Yuji Hanamura <yuji.developer@gmail.com>
|
24
|
+
* Fix to always return a 200 status code on success rather than 304 (adds Last-Modified) - Thanks macgregordennis <macgregordennis@gmail.com>
|
25
|
+
* Added Rails 5.0 tests
|
26
|
+
|
3
27
|
* 2.0.0 - Removed silence - recommend to use a log filtering gem instead
|
4
28
|
* 1.4.1 - Rails 4 and route changes
|
5
29
|
* Now handles routes being generated multiple times by some gem / rails / ruby combinations - Previously multiple calls to health_check_routes where ignored, now explicit calls to health_check_route always adds the route but flags that it doesn't have to be added again on the end of the list
|
data/Gemfile
CHANGED
@@ -15,6 +15,6 @@ group :development, :test do
|
|
15
15
|
gem 'travis-lint'
|
16
16
|
# mime-types 2.0 requires Ruby version >= 1.9.2
|
17
17
|
# mime-types 3.0 requires Ruby version >= 2.0
|
18
|
-
gem 'mime-types',
|
18
|
+
gem 'mime-types', defined?(JRUBY_VERSION) || RUBY_VERSION < '2.0' ? '< 3' : '>= 3.0'
|
19
19
|
|
20
20
|
end
|
data/README.rdoc
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
|
3
3
|
Simple health check of Rails 4.x+ apps for use with Pingdom, NewRelic, EngineYard or uptime.openacs.org etc.
|
4
4
|
|
5
|
-
Use
|
6
|
-
|
5
|
+
Use
|
6
|
+
* {master}[https://github.com/ianheggie/health_check/tree/master] branch or gem versions ~> 2.0 for Rails 4.x and 5.x;
|
7
|
+
* {pre_rails4}[https://github.com/ianheggie/health_check/tree/pre_rails4] branch or gem versions ~> 1.7 for Rails 3.x;
|
8
|
+
* {rails2.3}[https://github.com/ianheggie/health_check/tree/rails2.3] branch or gem versions ~> 1.6.1 for Rails 2.3;
|
7
9
|
|
8
10
|
The basic goal is to quickly check that rails is up and running and that it has access to correctly configured resources (database, email gateway)
|
9
11
|
|
@@ -127,6 +129,12 @@ If you have a catchall route then add the following line above the catch all rou
|
|
127
129
|
To change the url prefix (eg to /ping), add the following line in `config/routes.rb`:
|
128
130
|
health_check_routes('ping')
|
129
131
|
|
132
|
+
=== Installing As Middleware
|
133
|
+
|
134
|
+
To use health_check as middleware add the following line to the config/application.rb:
|
135
|
+
`config.middleware.insert_after "Rails::Rack::Logger", HealthCheck::MiddlewareHealthcheck`
|
136
|
+
In config/initializers/health_check.rb config.uri can be changed to other than default 'health_check'
|
137
|
+
|
130
138
|
== Uptime Monitoring
|
131
139
|
|
132
140
|
Use a website monitoring service to check the url regularly for the word "success" (without the quotes) rather than just a 200 http status so
|
data/config/routes.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
Rails.application.routes.draw do
|
5
|
-
health_check_routes()
|
6
|
-
end
|
1
|
+
unless HealthCheck::Engine.routes_explicitly_defined
|
2
|
+
Rails.application.routes.draw do
|
3
|
+
add_health_check_routes()
|
7
4
|
end
|
8
5
|
end
|
data/lib/health_check.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
module HealthCheck
|
5
5
|
|
6
6
|
class Engine < Rails::Engine
|
7
|
-
cattr_accessor :
|
7
|
+
cattr_accessor :routes_explicitly_defined
|
8
8
|
end
|
9
9
|
|
10
10
|
# Text output upon success
|
@@ -24,7 +24,7 @@ module HealthCheck
|
|
24
24
|
self.http_status_for_error_object = 500
|
25
25
|
|
26
26
|
# max-age of response in seconds
|
27
|
-
# cache-control is public when max_age > 1 and basic authentication is used
|
27
|
+
# cache-control is public when max_age > 1 and basic authentication is used
|
28
28
|
mattr_accessor :max_age
|
29
29
|
self.max_age = 1
|
30
30
|
|
@@ -32,6 +32,10 @@ module HealthCheck
|
|
32
32
|
mattr_accessor :buckets
|
33
33
|
self.buckets = {}
|
34
34
|
|
35
|
+
# health check uri path for middleware check
|
36
|
+
mattr_accessor :uri
|
37
|
+
self.uri = 'health_check'
|
38
|
+
|
35
39
|
# Basic Authentication
|
36
40
|
mattr_accessor :basic_auth_username, :basic_auth_password
|
37
41
|
self.basic_auth_username = nil
|
@@ -64,5 +68,6 @@ require 'health_check/sidekiq_health_check'
|
|
64
68
|
require 'health_check/utils'
|
65
69
|
require 'health_check/health_check_controller'
|
66
70
|
require 'health_check/health_check_routes'
|
71
|
+
require 'health_check/middleware_health_check'
|
67
72
|
|
68
73
|
# vi: sw=2 sm ai:
|
@@ -1,12 +1,14 @@
|
|
1
|
-
|
1
|
+
module ActionDispatch::Routing
|
2
|
+
class Mapper
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
def health_check_routes(prefix = nil)
|
5
|
+
HealthCheck::Engine.routes_explicitly_defined = true
|
6
|
+
add_health_check_routes(prefix)
|
7
|
+
end
|
8
|
+
|
9
|
+
def add_health_check_routes(prefix = nil)
|
10
|
+
get "#{prefix || 'health_check'}(/:checks)(.:format)", :to => 'health_check/health_check#index'
|
9
11
|
end
|
10
|
-
end
|
11
12
|
|
13
|
+
end
|
12
14
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module HealthCheck
|
2
|
+
class MiddlewareHealthcheck
|
3
|
+
|
4
|
+
def initialize(app)
|
5
|
+
@app = app
|
6
|
+
end
|
7
|
+
|
8
|
+
def call(env)
|
9
|
+
uri = env['PATH_INFO']
|
10
|
+
if uri.include? HealthCheck.uri
|
11
|
+
response_type = uri[/\.(json|xml)/,1] || 'plain'
|
12
|
+
response_method = 'response_' + response_type
|
13
|
+
checks = env['QUERY_STRING'][/checks=([a-z0-9\-_]*)/,1] || 'standard'
|
14
|
+
begin
|
15
|
+
errors = HealthCheck::Utils.process_checks(checks)
|
16
|
+
rescue => e
|
17
|
+
errors = e.message.blank? ? e.class.to_s : e.message.to_s
|
18
|
+
end
|
19
|
+
if errors.blank?
|
20
|
+
send(response_method, 200, HealthCheck.success, true)
|
21
|
+
else
|
22
|
+
msg = "health_check failed: #{errors}"
|
23
|
+
send(response_method, 500, msg, false)
|
24
|
+
end
|
25
|
+
else
|
26
|
+
@app.call(env)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def response_json code, msg, healthy
|
31
|
+
obj = { healthy: healthy, message: msg }
|
32
|
+
[ code, { 'Content-Type' => 'application/json' }, [obj.to_json] ]
|
33
|
+
end
|
34
|
+
|
35
|
+
def response_xml code, msg, healthy
|
36
|
+
obj = { healthy: healthy, message: msg }
|
37
|
+
[ code, { 'Content-Type' => 'text/xml' }, [obj.to_xml] ]
|
38
|
+
end
|
39
|
+
|
40
|
+
def response_plain code, msg, healthy
|
41
|
+
[ code, { 'Content-Type' => 'text/plain' }, [msg] ]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/health_check/version.rb
CHANGED
data/test/rails_4.0.gemfile
CHANGED
@@ -30,4 +30,4 @@ gem 'therubyrhino', :platform => :jruby # REQUIRED
|
|
30
30
|
gem 'therubyracer', :platform => :ruby # REQUIRED
|
31
31
|
# mime-types 2.0 requires Ruby version >= 1.9.2
|
32
32
|
# mime-types 3.0 requires Ruby version >= 2.0
|
33
|
-
gem 'mime-types',
|
33
|
+
gem 'mime-types', defined?(JRUBY_VERSION) || RUBY_VERSION < '2.0' ? '< 3' : '>= 3.0' # REQUIRED
|
data/test/rails_4.1.gemfile
CHANGED
@@ -30,4 +30,4 @@ gem 'therubyrhino', :platform => :jruby # REQUIRED
|
|
30
30
|
gem 'therubyracer', :platform => :ruby # REQUIRED
|
31
31
|
# mime-types 2.0 requires Ruby version >= 1.9.2
|
32
32
|
# mime-types 3.0 requires Ruby version >= 2.0
|
33
|
-
gem 'mime-types',
|
33
|
+
gem 'mime-types', defined?(JRUBY_VERSION) || RUBY_VERSION < '2.0' ? '< 3' : '>= 3.0' # REQUIRED
|
data/test/rails_4.2.gemfile
CHANGED
@@ -27,4 +27,4 @@ end
|
|
27
27
|
|
28
28
|
# mime-types 2.0 requires Ruby version >= 1.9.2
|
29
29
|
# mime-types 3.0 requires Ruby version >= 2.0
|
30
|
-
gem 'mime-types',
|
30
|
+
gem 'mime-types', defined?(JRUBY_VERSION) || RUBY_VERSION < '2.0' ? '< 3' : '>= 3.0' # REQUIRED
|
data/test/setup_railsapp
CHANGED
@@ -52,7 +52,7 @@ else
|
|
52
52
|
fi
|
53
53
|
|
54
54
|
echo "Running bundle with BUNDLE_GEMFILE=$BUNDLE_GEMFILE ..."
|
55
|
-
if ! bundle ; then
|
55
|
+
if ! bundle install ; then
|
56
56
|
echo "Test aborted (missing required gems)"
|
57
57
|
exit 2
|
58
58
|
fi
|
@@ -82,12 +82,21 @@ actual_rails_version=`$rails -v`
|
|
82
82
|
|
83
83
|
[ -d lib/health_check ] || exec echo setup_railsapp MUST be executed in the base of the health_check gem/clone of git repository
|
84
84
|
|
85
|
-
echo Installing health_check as a gem into tmp/gems
|
86
|
-
env GEM_HOME=$tmp_dir/gems rake install
|
87
|
-
|
88
85
|
export GEM_PATH="$tmp_dir/gems:`gem environment gempath`"
|
89
86
|
echo Set GEM_PATH=$GEM_PATH
|
90
87
|
|
88
|
+
echo Installing health_check as a gem into $tmp_dir/gems
|
89
|
+
rm -f pkg/health_check-*.gem
|
90
|
+
if env GEM_HOME=$tmp_dir/gems $rake install
|
91
|
+
then
|
92
|
+
echo rake install passed
|
93
|
+
else
|
94
|
+
echo rake install failed! running gem install pkg/health_check-*.gem manually to see error message:
|
95
|
+
env GEM_HOME=$tmp_dir/gems gem install pkg/health_check-*.gem
|
96
|
+
echo gem install worked, but flagging it as a FAIL anyway since rake install failed!
|
97
|
+
exit 2
|
98
|
+
fi
|
99
|
+
|
91
100
|
echo Gems in tmp/gems:
|
92
101
|
ls tmp/gems
|
93
102
|
|
data/test/test_with_railsapp
CHANGED
@@ -192,9 +192,9 @@ common_tests()
|
|
192
192
|
echo "${test_no}: CHECKING routes exist..."
|
193
193
|
$rake routes | tee /tmp/t$$
|
194
194
|
echo
|
195
|
-
case `egrep
|
195
|
+
case `egrep ${route_prefix} /tmp/t$$ || true` in
|
196
196
|
'')
|
197
|
-
echo WARNING - routes for
|
197
|
+
echo WARNING - routes for ${route_prefix} not listed!
|
198
198
|
;;
|
199
199
|
esac
|
200
200
|
echo
|
@@ -231,185 +231,179 @@ common_tests()
|
|
231
231
|
|
232
232
|
test_no=`expr 1 + $test_no`
|
233
233
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
234
|
-
echo "${test_no}: TESTING
|
234
|
+
echo "${test_no}: TESTING ${route_prefix}/migration should pass with no database migrations ..."
|
235
235
|
ls db/migrate
|
236
|
-
$testurl ${host}/
|
236
|
+
$testurl ${host}/${route_prefix}/migration 200 text/plain $success
|
237
237
|
echo
|
238
238
|
fi
|
239
239
|
|
240
240
|
test_no=`expr 1 + $test_no`
|
241
241
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
242
|
-
echo "${test_no}: TESTING
|
242
|
+
echo "${test_no}: TESTING ${route_prefix}/migration should fail without initial database migration ..."
|
243
243
|
cp $base_dir/test/migrate/nine/* db/migrate
|
244
244
|
ls db/migrate
|
245
|
-
$testurl ${host}/
|
245
|
+
$testurl ${host}/${route_prefix}/migration 550 text/plain failed
|
246
246
|
echo
|
247
247
|
fi
|
248
248
|
|
249
249
|
test_no=`expr 1 + $test_no`
|
250
250
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
251
|
-
echo "${test_no}: TESTING
|
252
|
-
$testurl ${host}/
|
251
|
+
echo "${test_no}: TESTING ${route_prefix}/database should pass without initial database migration (since it ignores the difference) ..."
|
252
|
+
$testurl ${host}/${route_prefix}/database 200 text/plain $success
|
253
253
|
echo
|
254
254
|
fi
|
255
255
|
|
256
256
|
test_no=`expr 1 + $test_no`
|
257
257
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
258
|
-
echo "${test_no}: TESTING
|
259
|
-
$testurl ${host}/
|
258
|
+
echo "${test_no}: TESTING ${route_prefix}/site should pass ..."
|
259
|
+
$testurl ${host}/${route_prefix}/site 200 text/plain $success
|
260
260
|
echo
|
261
261
|
fi
|
262
262
|
|
263
263
|
test_no=`expr 1 + $test_no`
|
264
264
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
265
|
-
echo "${test_no}: TESTING
|
265
|
+
echo "${test_no}: TESTING ${route_prefix}/migration should pass after initial database migration ..."
|
266
266
|
$rake db:migrate
|
267
|
-
$testurl ${host}/
|
267
|
+
$testurl ${host}/${route_prefix}/migration 200 text/plain $success
|
268
268
|
echo
|
269
269
|
fi
|
270
270
|
|
271
271
|
test_no=`expr 1 + $test_no`
|
272
272
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
273
|
-
echo "${test_no}: TESTING
|
273
|
+
echo "${test_no}: TESTING ${route_prefix}/migration should fail without all migrations ..."
|
274
274
|
cp $base_dir/test/migrate/twelve/* db/migrate
|
275
275
|
|
276
|
-
case "$actual_rails_version" in
|
277
|
-
*' '[12].*|*' '3.[01]*)
|
278
|
-
echo removing db/migrate/*.*.rb "($actual_rails_version does not support extra dots in migration names)"
|
279
|
-
rm -f db/migrate/*.*.rb
|
280
|
-
;;
|
281
|
-
esac
|
282
276
|
ls db/migrate
|
283
|
-
$testurl ${host}/
|
277
|
+
$testurl ${host}/${route_prefix}/migration 550 text/plain failed
|
284
278
|
echo
|
285
279
|
fi
|
286
280
|
|
287
281
|
test_no=`expr 1 + $test_no`
|
288
282
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
289
|
-
echo "${test_no}: TESTING
|
283
|
+
echo "${test_no}: TESTING ${route_prefix}/migration should pass after both database migrations ..."
|
290
284
|
$rake db:migrate
|
291
|
-
$testurl ${host}/
|
285
|
+
$testurl ${host}/${route_prefix}/migration 200 text/plain $success
|
292
286
|
echo
|
293
287
|
fi
|
294
288
|
|
295
289
|
test_no=`expr 1 + $test_no`
|
296
290
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
297
|
-
echo "${test_no}: TESTING
|
291
|
+
echo "${test_no}: TESTING ${route_prefix}/migration should pass after both database migrations ..."
|
298
292
|
$rake db:migrate
|
299
|
-
$testurl ${host}/
|
293
|
+
$testurl ${host}/${route_prefix}/migration 200 text/plain $success
|
300
294
|
echo
|
301
295
|
fi
|
302
296
|
|
303
297
|
test_no=`expr 1 + $test_no`
|
304
298
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
305
|
-
echo "${test_no}: TESTING
|
306
|
-
$testurl ${host}/
|
299
|
+
echo "${test_no}: TESTING ${route_prefix}/email should fail without smtp available ..."
|
300
|
+
$testurl ${host}/${route_prefix}/email 550 text/plain failed
|
307
301
|
echo
|
308
302
|
fi
|
309
303
|
|
310
304
|
test_no=`expr 1 + $test_no`
|
311
305
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
312
|
-
echo "${test_no}: TESTING
|
306
|
+
echo "${test_no}: TESTING ${route_prefix}/email should pass with smtp available ..."
|
313
307
|
$fake_smtp_server &
|
314
308
|
fake_smtp_pid=$!
|
315
309
|
sleep 5
|
316
|
-
$testurl ${host}/
|
310
|
+
$testurl ${host}/${route_prefix}/email 200 text/plain $success
|
317
311
|
echo
|
318
312
|
fi
|
319
313
|
|
320
314
|
test_no=`expr 1 + $test_no`
|
321
315
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
322
|
-
echo "${test_no}: TESTING
|
323
|
-
$testurl ${host}
|
316
|
+
echo "${test_no}: TESTING ${route_prefix} (all) should fail without smtp available ..."
|
317
|
+
$testurl ${host}/${route_prefix} 550 text/plain failed
|
324
318
|
echo
|
325
319
|
fi
|
326
320
|
|
327
321
|
test_no=`expr 1 + $test_no`
|
328
322
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
329
|
-
echo "${test_no}: TESTING
|
330
|
-
$testurl ${host}
|
323
|
+
echo "${test_no}: TESTING ${route_prefix}/all should fail without smtp available ..."
|
324
|
+
$testurl ${host}/${route_prefix} 550 text/plain failed
|
331
325
|
echo
|
332
326
|
fi
|
333
327
|
|
334
328
|
kill -9 $fake_smtp_pid || echo fake_smtp_server had finished as expected
|
335
329
|
test_no=`expr 1 + $test_no`
|
336
330
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
337
|
-
echo "${test_no}: TESTING
|
331
|
+
echo "${test_no}: TESTING ${route_prefix} (all) should pass with smtp available ..."
|
338
332
|
$fake_smtp_server &
|
339
333
|
fake_smtp_pid=$!
|
340
334
|
sleep 5
|
341
|
-
$testurl ${host}
|
335
|
+
$testurl ${host}/${route_prefix} 200 text/plain $success
|
342
336
|
echo
|
343
337
|
fi
|
344
338
|
|
345
339
|
kill -9 $fake_smtp_pid || echo fake_smtp_server had finished as expected
|
346
340
|
test_no=`expr 1 + $test_no`
|
347
341
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
348
|
-
echo "${test_no}: TESTING
|
342
|
+
echo "${test_no}: TESTING ${route_prefix}/all should pass with smtp available ..."
|
349
343
|
$fake_smtp_server &
|
350
344
|
fake_smtp_pid=$!
|
351
345
|
sleep 5
|
352
|
-
$testurl ${host}/
|
346
|
+
$testurl ${host}/${route_prefix}/all 200 text/plain $success
|
353
347
|
echo
|
354
348
|
fi
|
355
349
|
|
356
350
|
test_no=`expr 1 + $test_no`
|
357
351
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
358
|
-
echo "${test_no}: TESTING
|
359
|
-
$testurl ${host}/
|
352
|
+
echo "${test_no}: TESTING ${route_prefix}/custom should pass ..."
|
353
|
+
$testurl ${host}/${route_prefix}/custom 200 text/plain $success
|
360
354
|
echo
|
361
355
|
fi
|
362
356
|
|
363
357
|
test_no=`expr 1 + $test_no`
|
364
358
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
365
|
-
echo "${test_no}: TESTING
|
366
|
-
$testurl ${host}/
|
359
|
+
echo "${test_no}: TESTING ${route_prefix}/custom.html should pass (returning plain text) ..."
|
360
|
+
$testurl ${host}/${route_prefix}/custom.html 200 text/plain $success
|
367
361
|
echo
|
368
362
|
fi
|
369
363
|
|
370
364
|
test_no=`expr 1 + $test_no`
|
371
365
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
372
|
-
echo "${test_no}: TESTING
|
373
|
-
$testurl ${host}/
|
374
|
-
$testurl ${host}/
|
366
|
+
echo "${test_no}: TESTING ${route_prefix}/custom.json should pass ..."
|
367
|
+
$testurl ${host}/${route_prefix}/custom.json 200 application/json '"healthy":true'
|
368
|
+
$testurl ${host}/${route_prefix}/custom.json 200 application/json "\"message\":\"$success\""
|
375
369
|
echo
|
376
370
|
fi
|
377
371
|
|
378
372
|
test_no=`expr 1 + $test_no`
|
379
373
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
380
|
-
echo "${test_no}: TESTING
|
381
|
-
$testurl ${host}/
|
382
|
-
$testurl ${host}/
|
374
|
+
echo "${test_no}: TESTING ${route_prefix}/custom.xml should pass ..."
|
375
|
+
$testurl ${host}/${route_prefix}/custom.xml 200 application/xml '<healthy type="boolean">true</healthy>'
|
376
|
+
$testurl ${host}/${route_prefix}/custom.xml 200 application/xml "<message>$success</message>"
|
383
377
|
echo
|
384
378
|
fi
|
385
379
|
|
386
380
|
test_no=`expr 1 + $test_no`
|
387
381
|
rm -f $custom_file
|
388
382
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
389
|
-
echo "${test_no}: TESTING
|
390
|
-
$testurl ${host}/
|
383
|
+
echo "${test_no}: TESTING ${route_prefix}/custom should fail when custom returns string ..."
|
384
|
+
$testurl ${host}/${route_prefix}/custom 550 text/plain failed
|
391
385
|
echo
|
392
386
|
fi
|
393
387
|
|
394
388
|
test_no=`expr 1 + $test_no`
|
395
389
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
396
|
-
echo "${test_no}: TESTING
|
397
|
-
$testurl ${host}
|
390
|
+
echo "${test_no}: TESTING ${route_prefix} (all) should fail when custom check fails ..."
|
391
|
+
$testurl ${host}/${route_prefix} 550 text/plain "$custom_file is missing!"
|
398
392
|
echo
|
399
393
|
fi
|
400
394
|
|
401
395
|
test_no=`expr 1 + $test_no`
|
402
396
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
403
|
-
echo "${test_no}: TESTING
|
404
|
-
$testurl ${host}
|
405
|
-
$testurl ${host}
|
397
|
+
echo "${test_no}: TESTING ${route_prefix}.json (all) should fail when custom check fails ..."
|
398
|
+
$testurl ${host}/${route_prefix}.json 555 application/json '"healthy":false'
|
399
|
+
$testurl ${host}/${route_prefix}.json 555 application/json "$custom_file is missing!"
|
406
400
|
echo
|
407
401
|
fi
|
408
402
|
|
409
403
|
test_no=`expr 1 + $test_no`
|
410
404
|
if [ -z "$run_test" ] || [ $test_no == "$run_test" ]; then
|
411
|
-
echo "${test_no}: TESTING
|
412
|
-
$testurl ${host}
|
405
|
+
echo "${test_no}: TESTING ${route_prefix}.xml (all) should fail when custom check fails ..."
|
406
|
+
$testurl ${host}/${route_prefix}.xml 555 application/xml '<healthy type="boolean">false</healthy>'
|
413
407
|
echo
|
414
408
|
fi
|
415
409
|
|
@@ -446,6 +440,8 @@ case "$run_test" in
|
|
446
440
|
|
447
441
|
# get a static file
|
448
442
|
|
443
|
+
route_prefix=health_check
|
444
|
+
|
449
445
|
echo
|
450
446
|
echo 'TESTING no catchall route active ...'
|
451
447
|
expected_status=404,500,502
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: health_check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-10-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- lib/health_check/base_health_check.rb
|
100
100
|
- lib/health_check/health_check_controller.rb
|
101
101
|
- lib/health_check/health_check_routes.rb
|
102
|
+
- lib/health_check/middleware_health_check.rb
|
102
103
|
- lib/health_check/redis_health_check.rb
|
103
104
|
- lib/health_check/resque_health_check.rb
|
104
105
|
- lib/health_check/s3_health_check.rb
|