rails_health_check 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +49 -0
- data/.travis.yml +50 -0
- data/CHANGELOG +64 -0
- data/Gemfile +20 -0
- data/MIT-LICENSE +22 -0
- data/README.rdoc +337 -0
- data/Rakefile +29 -0
- data/Vagrantfile +20 -0
- data/config/routes.rb +5 -0
- data/health_check.gemspec +32 -0
- data/init.rb +2 -0
- data/lib/health_check/base_health_check.rb +5 -0
- data/lib/health_check/health_check_controller.rb +75 -0
- data/lib/health_check/health_check_routes.rb +15 -0
- data/lib/health_check/middleware_health_check.rb +102 -0
- data/lib/health_check/redis_health_check.rb +23 -0
- data/lib/health_check/resque_health_check.rb +15 -0
- data/lib/health_check/s3_health_check.rb +65 -0
- data/lib/health_check/sidekiq_health_check.rb +17 -0
- data/lib/health_check/utils.rb +171 -0
- data/lib/health_check/version.rb +3 -0
- data/lib/health_check.rb +101 -0
- data/test/fake_smtp_server +38 -0
- data/test/init_variables +61 -0
- data/test/migrate/empty/do_not_remove.txt +1 -0
- data/test/migrate/nine/9_create_countries.rb +11 -0
- data/test/migrate/twelve/011_create_roles.roles.rb +11 -0
- data/test/migrate/twelve/012_create_users.rb +11 -0
- data/test/migrate/twelve/9_create_countries.rb +11 -0
- data/test/provision_vagrant +61 -0
- data/test/rails_5.1.gemfile +26 -0
- data/test/rails_edge.gemfile +32 -0
- data/test/setup_railsapp +440 -0
- data/test/test_with_railsapp +679 -0
- data/test/testurl +65 -0
- metadata +180 -0
@@ -0,0 +1 @@
|
|
1
|
+
Don't remove
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
case `id` in
|
4
|
+
*root*)
|
5
|
+
;;
|
6
|
+
*)
|
7
|
+
exec echo Must be run as root
|
8
|
+
;;
|
9
|
+
esac
|
10
|
+
set -xe
|
11
|
+
id
|
12
|
+
pwd
|
13
|
+
export DEBIAN_FRONTEND=noninteractive
|
14
|
+
find /tmp/got-apt-update -mtime -1 || ( apt-get update && touch /tmp/got-apt-update )
|
15
|
+
apt install --yes --force-yes -q build-essential ruby ruby-dev sqlite3 libsqlite3-dev nodejs
|
16
|
+
|
17
|
+
(
|
18
|
+
echo Install chruby
|
19
|
+
[ -s chruby-0.3.9.tar.gz ] || wget -q -O chruby-0.3.9.tar.gz https://github.com/postmodern/chruby/archive/v0.3.9.tar.gz
|
20
|
+
[ chruby-0.3.9 ] || tar -xzf chruby-0.3.9.tar.gz
|
21
|
+
cd chruby-0.3.9/
|
22
|
+
./scripts/setup.sh
|
23
|
+
cat > /etc/profile.d/chruby.sh <<'EOF'
|
24
|
+
if [ -n "$BASH_VERSION" ] || [ -n "$ZSH_VERSION" ]; then
|
25
|
+
source /usr/local/share/chruby/chruby.sh
|
26
|
+
fi
|
27
|
+
EOF
|
28
|
+
chmod a+r /etc/profile.d/chruby.sh
|
29
|
+
)
|
30
|
+
|
31
|
+
(
|
32
|
+
[ -d ruby-build ] || git clone https://github.com/rbenv/ruby-build.git
|
33
|
+
which ruby-build || PREFIX=/usr/local ./ruby-build/install.sh
|
34
|
+
|
35
|
+
mkdir -p /opt/rubies
|
36
|
+
[ -x /opt/rubies/1.9.3-p551/bin/bundle ] || ( ruby-build 1.9.3-p551 /opt/rubies/1.9.3-p551 && /opt/rubies/1.9.3-p551/bin/gem install bundler )
|
37
|
+
|
38
|
+
for v in 2.2.0
|
39
|
+
do
|
40
|
+
[ -x /opt/rubies/$v/bin/bundle ] || ( ruby-build $v /opt/rubies/$v && /opt/rubies/$v/bin/gem install bundler )
|
41
|
+
done
|
42
|
+
)
|
43
|
+
|
44
|
+
echo Setup system ruby
|
45
|
+
which bundle || gem install bundler
|
46
|
+
bundle --version
|
47
|
+
set +x
|
48
|
+
cat <<EOF
|
49
|
+
|
50
|
+
Now test by running the following commands:
|
51
|
+
|
52
|
+
chruby RUBY_VERSION
|
53
|
+
or
|
54
|
+
chruby system # for system version 2.3.1
|
55
|
+
|
56
|
+
vagrant ssh
|
57
|
+
cd /vagrant
|
58
|
+
./test/test_with_railsapp
|
59
|
+
|
60
|
+
EOF
|
61
|
+
exit
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Gemfile for health_test testing
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
ruby RUBY_VERSION < '2.2.2' ? '2.2.2' : RUBY_VERSION
|
6
|
+
|
7
|
+
gem 'rails', '~> 5.1.0'
|
8
|
+
gem 'rake', '>= 0.8.7'
|
9
|
+
|
10
|
+
group :development, :test do
|
11
|
+
if defined?(JRUBY_VERSION)
|
12
|
+
gem 'jruby-openssl'
|
13
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
14
|
+
else
|
15
|
+
gem 'sqlite3', "~> 1.3.7"
|
16
|
+
end
|
17
|
+
gem 'shoulda'
|
18
|
+
|
19
|
+
# redis based checks
|
20
|
+
gem 'sidekiq', :require => !ENV['SIDEKIQ'].nil?
|
21
|
+
gem 'redis', :require => !ENV['REDIS_URL'].nil?
|
22
|
+
gem 'resque', :require => !ENV['RESQUE'].nil?
|
23
|
+
# s3 check
|
24
|
+
gem 'aws-sdk', :require => !ENV['AWS_ACCESS_KEY_ID'].nil?
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Gemfile for health_test testing
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
# Bundle edge Rails instead:
|
6
|
+
|
7
|
+
ruby RUBY_VERSION < '2.2.2' ? '2.2.2' : RUBY_VERSION
|
8
|
+
|
9
|
+
gem 'rails'
|
10
|
+
gem 'rake'
|
11
|
+
gem 'rack'
|
12
|
+
|
13
|
+
group :development, :test do
|
14
|
+
if defined?(JRUBY_VERSION)
|
15
|
+
gem 'jruby-openssl'
|
16
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
17
|
+
else
|
18
|
+
gem 'sqlite3'
|
19
|
+
end
|
20
|
+
gem 'shoulda'
|
21
|
+
|
22
|
+
# redis based checks
|
23
|
+
gem 'sidekiq', :require => !ENV['SIDEKIQ'].nil?
|
24
|
+
gem 'redis', :require => !ENV['REDIS_URL'].nil?
|
25
|
+
gem 'resque', :require => !ENV['RESQUE'].nil?
|
26
|
+
# s3 check
|
27
|
+
gem 'aws-sdk', :require => !ENV['AWS_ACCESS_KEY_ID'].nil?
|
28
|
+
end
|
29
|
+
|
30
|
+
# Initial Gemfile has therubyracer commented out
|
31
|
+
gem 'therubyrhino', :platform => :jruby # REQUIRED
|
32
|
+
gem 'therubyracer', :platform => :ruby # REQUIRED
|
data/test/setup_railsapp
ADDED
@@ -0,0 +1,440 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
route_prefix=medical_check
|
4
|
+
|
5
|
+
err_report() {
|
6
|
+
echo "$0: Error on line $1 - aborted"
|
7
|
+
exit 1
|
8
|
+
}
|
9
|
+
|
10
|
+
trap 'err_report $LINENO' ERR
|
11
|
+
|
12
|
+
# Any failure causes exit
|
13
|
+
set -e
|
14
|
+
|
15
|
+
case "$1" in
|
16
|
+
[0-9]*)
|
17
|
+
export BUNDLE_GEMFILE=$PWD/test/rails_$1.gemfile
|
18
|
+
;;
|
19
|
+
esac
|
20
|
+
while :
|
21
|
+
do
|
22
|
+
case "$BUNDLE_GEMFILE" in
|
23
|
+
*/test/rails_[Qq].gemfile)
|
24
|
+
echo "Aborting..."
|
25
|
+
exit 2
|
26
|
+
;;
|
27
|
+
*/test/rails_edge.gemfile|*/test/rails_[0-9].[0-9]*.gemfile)
|
28
|
+
if [ -f "$BUNDLE_GEMFILE" ]; then
|
29
|
+
break
|
30
|
+
fi
|
31
|
+
;;
|
32
|
+
esac
|
33
|
+
echo "== SELECT GEMFILE =="
|
34
|
+
echo
|
35
|
+
echo "Please select the gemfile for the required rails series:"
|
36
|
+
(cd test ; ls rails*gemfile | ruby -p -e '$_.sub!(/rails_(.*).gemfile/, " \\1")' )
|
37
|
+
echo
|
38
|
+
echo -n "Enter choice (or q to quit): "
|
39
|
+
read x
|
40
|
+
export BUNDLE_GEMFILE=$PWD/test/rails_$x.gemfile
|
41
|
+
done
|
42
|
+
|
43
|
+
if [ -z "$MIDDLEWARE" ]; then
|
44
|
+
echo -n "Add as middleware [N/y] : "
|
45
|
+
read MIDDLEWARE
|
46
|
+
export MIDDLEWARE
|
47
|
+
fi
|
48
|
+
rm -rf tmp/Gemfile* tmp/railsapp tmp/bin tmp/gems test/bin test/rails*.gemfile.lock
|
49
|
+
|
50
|
+
mkdir -p tmp/gems
|
51
|
+
|
52
|
+
. test/init_variables
|
53
|
+
|
54
|
+
if $rbenv_which bundle ; then
|
55
|
+
echo Bundler is installed
|
56
|
+
else
|
57
|
+
gem install bundler
|
58
|
+
$rehash
|
59
|
+
fi
|
60
|
+
|
61
|
+
echo "Running bundle with BUNDLE_GEMFILE=$BUNDLE_GEMFILE ..."
|
62
|
+
if ! smarter_bundle ; then
|
63
|
+
echo "Test aborted (missing required gems)"
|
64
|
+
exit 2
|
65
|
+
fi
|
66
|
+
$rehash
|
67
|
+
|
68
|
+
rails="$base_dir/test/bin/rails"
|
69
|
+
rake="$base_dir/test/bin/rake"
|
70
|
+
|
71
|
+
echo Checking $rails is present ...
|
72
|
+
[ -f $rails -a -f $rake ] || bundle exec rake rails:update:bin || echo '(ignored rake rails:update:bin exit status)'
|
73
|
+
[ -f $rails ] || bundle binstubs railties || echo '(ignored bundle exit status)'
|
74
|
+
[ -f $rails ] || bundle binstubs rails || echo '(ignored bundle exit status)'
|
75
|
+
if [ ! -f $rails ]; then
|
76
|
+
echo "Test aborted (unable to create $rails)"
|
77
|
+
exit 2
|
78
|
+
fi
|
79
|
+
|
80
|
+
if [ ! -f $rake ]; then
|
81
|
+
echo "Running bundle binstubs rake ..."
|
82
|
+
if ! bundle binstubs rake || [ ! -f $rake ]; then
|
83
|
+
echo "Test aborted (unable to create $rake)"
|
84
|
+
exit 2
|
85
|
+
fi
|
86
|
+
fi
|
87
|
+
|
88
|
+
actual_rails_version=`$rails -v`
|
89
|
+
|
90
|
+
[ -d lib/health_check ] || exec echo setup_railsapp MUST be executed in the base of the health_check gem/clone of git repository
|
91
|
+
|
92
|
+
export GEM_PATH="$tmp_dir/gems:`gem environment gempath`"
|
93
|
+
echo Set GEM_PATH=$GEM_PATH
|
94
|
+
|
95
|
+
echo Installing health_check as a gem into $tmp_dir/gems
|
96
|
+
rm -f pkg/health_check-*.gem
|
97
|
+
if env GEM_HOME=$tmp_dir/gems $rake install
|
98
|
+
then
|
99
|
+
echo rake install passed
|
100
|
+
else
|
101
|
+
echo rake install failed! running gem install pkg/health_check-*.gem manually to see error message:
|
102
|
+
env GEM_HOME=$tmp_dir/gems gem install pkg/health_check-*.gem
|
103
|
+
echo gem install worked, but flagging it as a FAIL anyway since rake install failed!
|
104
|
+
exit 2
|
105
|
+
fi
|
106
|
+
|
107
|
+
echo Gems in tmp/gems:
|
108
|
+
ls tmp/gems
|
109
|
+
|
110
|
+
echo Environment:
|
111
|
+
env | egrep 'TRAVIS|RAILS|RUBY|_ENV|GEM|BUNDLE' || echo "No relevant variables set"
|
112
|
+
|
113
|
+
cd $tmp_dir
|
114
|
+
|
115
|
+
case `ruby -e 'puts JRUBY_VERSION' 2> /dev/null` in
|
116
|
+
[0-9]*)
|
117
|
+
db=jdbcsqlite3
|
118
|
+
# Appears to need a bit extra time
|
119
|
+
;;
|
120
|
+
*)
|
121
|
+
db=sqlite3
|
122
|
+
;;
|
123
|
+
esac
|
124
|
+
|
125
|
+
echo "Creating $actual_rails_version app in $tmp_dir/railsapp using adapter $db"
|
126
|
+
case "$actual_rails_version" in
|
127
|
+
*' '[12].*)
|
128
|
+
$rails railsapp -d $db
|
129
|
+
;;
|
130
|
+
*' '[345].*)
|
131
|
+
case "$BUNDLE_GEMFILE" in
|
132
|
+
*rails_edge.gemfile)
|
133
|
+
$rails new railsapp --skip-bundle -d $db --edge
|
134
|
+
;;
|
135
|
+
*)
|
136
|
+
$rails new railsapp --skip-bundle -d $db
|
137
|
+
;;
|
138
|
+
esac
|
139
|
+
;;
|
140
|
+
*)
|
141
|
+
echo "Unknown rails version"
|
142
|
+
;;
|
143
|
+
esac
|
144
|
+
|
145
|
+
cd $railsapp
|
146
|
+
|
147
|
+
[ -z "$rehash" ] || rbenv local `rbenv version-name`
|
148
|
+
|
149
|
+
echo "Changed current directory to railsapp root: $railsapp"
|
150
|
+
|
151
|
+
echo "Fixing rdoc require in Rakefile if needed"
|
152
|
+
ruby -p -i.bak -e '$_.gsub!(/rake.rdoctask/, "rdoc/task")' Rakefile
|
153
|
+
|
154
|
+
echo "Configuring mailer to point to fake_smtp_server port 3555"
|
155
|
+
cat >> config/environment.rb <<'!EOF!'
|
156
|
+
|
157
|
+
ActionMailer::Base.delivery_method = :smtp
|
158
|
+
ActionMailer::Base.smtp_settings = { :address => "localhost", :port => 3555 }
|
159
|
+
|
160
|
+
!EOF!
|
161
|
+
|
162
|
+
echo Adding an initializer for health_check gem ...
|
163
|
+
mkdir -p config/initializers
|
164
|
+
tee config/initializers/health_check.rb <<!
|
165
|
+
HealthCheck.setup do |config|
|
166
|
+
config.success = "$success"
|
167
|
+
config.smtp_timeout = 60.0
|
168
|
+
config.http_status_for_error_text = 550
|
169
|
+
config.http_status_for_error_object = 555
|
170
|
+
config.uri = '$route_prefix'
|
171
|
+
config.origin_ip_whitelist = ENV['IP_WHITELIST'].split(',') unless ENV['IP_WHITELIST'].blank?
|
172
|
+
config.basic_auth_username = ENV['AUTH_USER'] unless ENV['AUTH_USER'].blank?
|
173
|
+
config.basic_auth_password = ENV['AUTH_PASSWORD'] unless ENV['AUTH_PASSWORD'].blank?
|
174
|
+
|
175
|
+
config.add_custom_check do
|
176
|
+
File.exists?("$custom_file") ? '' : '$custom_file is missing!'
|
177
|
+
end
|
178
|
+
|
179
|
+
config.add_custom_check('pass') do
|
180
|
+
''
|
181
|
+
end
|
182
|
+
|
183
|
+
config.include_error_in_response_body = false if ENV['HIDE_ERROR_RESPONSE'].present?
|
184
|
+
end
|
185
|
+
!
|
186
|
+
|
187
|
+
echo Setting INITIAL_BUNDLE_GEMFILE=$BUNDLE_GEMFILE
|
188
|
+
INITIAL_BUNDLE_GEMFILE="$BUNDLE_GEMFILE"
|
189
|
+
echo Unsetting BUNDLE_GEMFILE '(so Gemfile for rails application will be used)'
|
190
|
+
unset BUNDLE_GEMFILE
|
191
|
+
|
192
|
+
if [ ! -s Gemfile ]
|
193
|
+
then
|
194
|
+
echo Missing Gemfile!
|
195
|
+
exit 2
|
196
|
+
fi
|
197
|
+
echo Adding health_check as gem to Gemfile...
|
198
|
+
echo "gem 'health_check', :path => '$base_dir'" >> Gemfile
|
199
|
+
|
200
|
+
case "$RAILS_SERVER" in
|
201
|
+
webrick|'')
|
202
|
+
echo "Using default webrick server"
|
203
|
+
;;
|
204
|
+
*)
|
205
|
+
echo "Adding $RAILS_SERVER gem to Gemfile (for use as server)"
|
206
|
+
echo "gem '$RAILS_SERVER'" >> Gemfile
|
207
|
+
;;
|
208
|
+
esac
|
209
|
+
egrep REQUIRED < ${INITIAL_BUNDLE_GEMFILE} >> Gemfile || echo No required gems found...
|
210
|
+
echo
|
211
|
+
echo ================= Gemfile ===================
|
212
|
+
cat Gemfile
|
213
|
+
echo
|
214
|
+
echo running bundle install
|
215
|
+
smarter_bundle ${BUNDLER_VERSION:+_${BUNDLER_VERSION}_} install
|
216
|
+
$rehash
|
217
|
+
echo "Using binstubs in $railsapp/bin for rails and rake commands"
|
218
|
+
rails="$railsapp/bin/rails"
|
219
|
+
rake="$railsapp/bin/rake"
|
220
|
+
|
221
|
+
echo Checking $rails is present ...
|
222
|
+
[ -f $rails -a -f $rake ] || bundle exec rake rails:update:bin || echo '(ignored rake rails:update:bin exit status)'
|
223
|
+
[ -f $rails ] || bundle binstubs railties || echo '(ignored bundle exit status)'
|
224
|
+
[ -f $rails ] || bundle binstubs rails || echo '(ignored bundle exit status)'
|
225
|
+
if [ ! -f $rails ]; then
|
226
|
+
echo "Test aborted (unable to create $rails)"
|
227
|
+
exit 2
|
228
|
+
fi
|
229
|
+
|
230
|
+
echo Checking $rake is present ...
|
231
|
+
[ -f $rake ] || bundle binstubs rake || echo '(ignored bundle exit status)'
|
232
|
+
if [ ! -f $rake ]; then
|
233
|
+
echo "Test aborted (unable to create $rake)"
|
234
|
+
exit 2
|
235
|
+
fi
|
236
|
+
|
237
|
+
$rehash
|
238
|
+
# Fix for rvm, otherwise bundle run from rails create fails
|
239
|
+
export PATH="`pwd`/bin:$PATH"
|
240
|
+
echo ================= Gemfile.lock ===================
|
241
|
+
cat Gemfile.lock
|
242
|
+
echo
|
243
|
+
|
244
|
+
for e in test ${RAILS_ENV2:-production}
|
245
|
+
do
|
246
|
+
if [ -f config/environments/$e.rb ]; then
|
247
|
+
echo ======== config/environments/$e.rb ================
|
248
|
+
sed -i.bak -e 's/config.serve_static_assets = false/config.serve_static_assets = true # NOTE: health_check test: changed to true/' \
|
249
|
+
-e 's/config.active_record.migration_error = :page_load/# & # NOTE: health_check test: commented out/' \
|
250
|
+
config/environments/$e.rb
|
251
|
+
cat config/environments/$e.rb || true
|
252
|
+
echo
|
253
|
+
fi
|
254
|
+
done
|
255
|
+
echo "============== config/environment.rb ============="
|
256
|
+
cat config/environment.rb
|
257
|
+
echo
|
258
|
+
|
259
|
+
echo ========================
|
260
|
+
case $db in
|
261
|
+
jdbcsqlite3)
|
262
|
+
for e in test ${RAILS_ENV2:-production}
|
263
|
+
do
|
264
|
+
echo
|
265
|
+
export RAILS_ENV=$e RACK_ENV=$e
|
266
|
+
echo "Jruby requires the database to be created before the server is started: running RAILS_ENV=$e rake db:migrate"
|
267
|
+
$rake db:migrate
|
268
|
+
echo
|
269
|
+
done
|
270
|
+
;;
|
271
|
+
esac
|
272
|
+
|
273
|
+
echo STATIC-FILE > public/static.txt
|
274
|
+
|
275
|
+
cat > public/ajax_example.html <<'EOF'
|
276
|
+
<html>
|
277
|
+
<head>
|
278
|
+
<title>Example static and dynamic calls to health_check</title>
|
279
|
+
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
280
|
+
<script>
|
281
|
+
function parse_result(result, callback) {
|
282
|
+
$("#html_status_"+callback).text(result.status);
|
283
|
+
$("#html_body_"+callback).text(result.responseText);
|
284
|
+
alert(callback + " callback called");
|
285
|
+
};
|
286
|
+
|
287
|
+
function dynamic_call(dataType, url) {
|
288
|
+
$.ajax({
|
289
|
+
dataType: dataType,
|
290
|
+
url: url,
|
291
|
+
success: function(data, textStatus, result) {
|
292
|
+
$("#data_success").text(data);
|
293
|
+
parse_result(result, "success");
|
294
|
+
},
|
295
|
+
error: function(result, textStatus) {
|
296
|
+
parse_result(result, "error");
|
297
|
+
},
|
298
|
+
complete: function(result, textStatus) {
|
299
|
+
parse_result(result, "complete");
|
300
|
+
}
|
301
|
+
});
|
302
|
+
};
|
303
|
+
</script>
|
304
|
+
</head>
|
305
|
+
<body>
|
306
|
+
<h1>Static calls</h1>
|
307
|
+
<ul>
|
308
|
+
<li><a href="http://localhost:3000/health_check/site" target="_blank">Minimal health check should always work</a>
|
309
|
+
(<a href="http://localhost:3000/health_check/site.json" target="_blank">json</a>,
|
310
|
+
<a href="http://localhost:3000/health_check/site.xml" target="_blank">xml</a>,
|
311
|
+
<a href="http://localhost:3000/health_check/site.html" target="_blank">html</a>)
|
312
|
+
<li><a href="http://localhost:3000/health_check/fail" target="_blank">Force health check to fail!</a>
|
313
|
+
(<a href="http://localhost:3000/health_check/fail.json" target="_blank">json</a>,
|
314
|
+
<a href="http://localhost:3000/health_check/fail.xml" target="_blank">xml</a>,
|
315
|
+
<a href="http://localhost:3000/health_check/fail.html" target="_blank">html</a>)
|
316
|
+
</ul>
|
317
|
+
<h1>Dynamic calls</h1>
|
318
|
+
<ul>
|
319
|
+
<li><a href="#" onclick="dynamic_call('text', 'http://localhost:3000/health_check/site');">Minimal health check should always work</a>
|
320
|
+
(<a href="#" onclick="dynamic_call('json', 'http://localhost:3000/health_check/site.json');">json</a>,
|
321
|
+
<a href="#" onclick="dynamic_call('xml', 'http://localhost:3000/health_check/site.xml');">xml</a>,
|
322
|
+
<a href="#" onclick="dynamic_call('text', 'http://localhost:3000/health_check/site.html');">html</a>)
|
323
|
+
|
324
|
+
<li><a href="#" onclick="dynamic_call('text', 'http://localhost:3000/health_check/fail');">Force health check to fail!</a>
|
325
|
+
(<a href="#" onclick="dynamic_call('json', 'http://localhost:3000/health_check/fail.json');">json</a>,
|
326
|
+
<a href="#" onclick="dynamic_call('xml', 'http://localhost:3000/health_check/fail.xml');">xml</a>,
|
327
|
+
<a href="#" onclick="dynamic_call('text', 'http://localhost:3000/health_check/fail.html');">html</a>)
|
328
|
+
<li>Last results sent to success:<ul>
|
329
|
+
<li><b>Data:</b><span id=data_success></span>
|
330
|
+
<li><b>result.status:</b><span id=html_status_success></span>
|
331
|
+
<li><b>result.responseText:</b><span id=html_body_success></span>
|
332
|
+
</ul>
|
333
|
+
<li>Last results sent to error:<ul>
|
334
|
+
<li><b>result.status:</b><span id=html_status_error></span>
|
335
|
+
<li><b>result.responseText:</b><span id=html_body_error></span>
|
336
|
+
</ul>
|
337
|
+
<li>Last results sent to complete:<ul>
|
338
|
+
<li><b>result.status:</b><span id=html_status_complete></span>
|
339
|
+
<li><b>result.responseText:</b><span id=html_body_complete></span>
|
340
|
+
</ul>
|
341
|
+
</ul>
|
342
|
+
</body>
|
343
|
+
</html>
|
344
|
+
EOF
|
345
|
+
|
346
|
+
cat > app/controllers/example_controller.rb <<'EOF'
|
347
|
+
class ExampleController < ApplicationController
|
348
|
+
|
349
|
+
def index
|
350
|
+
render :plain => 'example page'
|
351
|
+
end
|
352
|
+
|
353
|
+
def catchall
|
354
|
+
render :plain => 'catch all route'
|
355
|
+
end
|
356
|
+
|
357
|
+
end
|
358
|
+
|
359
|
+
EOF
|
360
|
+
|
361
|
+
echo =======================================
|
362
|
+
|
363
|
+
case "$MIDDLEWARE" in
|
364
|
+
[Yy]*)
|
365
|
+
if [ -s config/application.rb ]; then
|
366
|
+
mv -f config/application.rb config/application.rb-old
|
367
|
+
(
|
368
|
+
ruby -n -e 'print if not /^ *end/..9999' config/application.rb-old | tee /tmp/t$$
|
369
|
+
if [ ! -s /tmp/t$$ ]; then
|
370
|
+
echo "WARNING: ruby -n -e failed silently - using sed instead!! (rbx-19mode has that problem)" >&3
|
371
|
+
sed -e '/^ *end/,$d' config/application.rb-old
|
372
|
+
fi
|
373
|
+
|
374
|
+
echo " # -----------------------------------------"
|
375
|
+
echo " # START OF SECTION FOR TESTING HEALTH_CHECK"
|
376
|
+
echo " config.middleware.insert_after Rails::Rack::Logger, HealthCheck::MiddlewareHealthcheck"
|
377
|
+
echo " # END OF SECTION FOR TESTING HEALTH_CHECK"
|
378
|
+
echo " # ---------------------------------------"
|
379
|
+
ruby -n -e 'print if /^ *end/..9999' config/application.rb-old | tee /tmp/t$$
|
380
|
+
if [ ! -s /tmp/t$$ ]; then
|
381
|
+
echo "WARNING: ruby -n -e failed silently - using sed instead!! (rbx-19mode has that problem)" >&3
|
382
|
+
sed -n -e '/^ *end/,$p' config/application.rb-old
|
383
|
+
fi
|
384
|
+
) 3>&1 > config/application.rb
|
385
|
+
|
386
|
+
#echo =============== config/application.rb-old ========================
|
387
|
+
#cat config/application.rb-old
|
388
|
+
echo =============== config/application.rb ========================
|
389
|
+
cat config/application.rb
|
390
|
+
else
|
391
|
+
echo FAILED: NO config/application.rb file!!
|
392
|
+
exit 2
|
393
|
+
fi
|
394
|
+
|
395
|
+
echo =======================================
|
396
|
+
|
397
|
+
;;
|
398
|
+
esac
|
399
|
+
|
400
|
+
if [ -s config/routes.rb ]; then
|
401
|
+
mv -f config/routes.rb config/routes.rb-old
|
402
|
+
(
|
403
|
+
ruby -n -e 'print if not /^end/..9999' config/routes.rb-old | tee /tmp/t$$
|
404
|
+
if [ ! -s /tmp/t$$ ]; then
|
405
|
+
echo "WARNING: ruby -n -e failed silently - using sed instead!! (rbx-19mode has that problem)" >&3
|
406
|
+
sed -e '/^end/,$d' config/routes.rb-old
|
407
|
+
fi
|
408
|
+
|
409
|
+
# rails 3.0+
|
410
|
+
echo " # -----------------------------------------"
|
411
|
+
echo " # START OF SECTION FOR TESTING HEALTH_CHECK"
|
412
|
+
echo " get 'example(/:action(/:id))(.:format)' => 'example'"
|
413
|
+
echo " if File.exists?('$catchall_file')"
|
414
|
+
echo " health_check_routes"
|
415
|
+
echo " # CATCH ALL ROUTE"
|
416
|
+
echo " get '*path', :to => 'example#catchall'"
|
417
|
+
echo " end"
|
418
|
+
echo " # END OF SECTION FOR TESTING HEALTH_CHECK"
|
419
|
+
echo " # ---------------------------------------"
|
420
|
+
ruby -n -e 'print if /^end/..9999' config/routes.rb-old | tee /tmp/t$$
|
421
|
+
if [ ! -s /tmp/t$$ ]; then
|
422
|
+
echo "WARNING: ruby -n -e failed silently - using sed instead!! (rbx-19mode has that problem)" >&3
|
423
|
+
sed -n -e '/^end/,$p' config/routes.rb-old
|
424
|
+
fi
|
425
|
+
) 3>&1 > config/routes.rb
|
426
|
+
|
427
|
+
#echo =============== config/routes.rb-old ========================
|
428
|
+
#cat config/routes.rb-old
|
429
|
+
echo =============== config/routes.rb ========================
|
430
|
+
cat config/routes.rb
|
431
|
+
else
|
432
|
+
echo FAILED: NO config/routes.rb file!!
|
433
|
+
exit 2
|
434
|
+
fi
|
435
|
+
echo =======================================
|
436
|
+
|
437
|
+
echo
|
438
|
+
echo "Created $actual_rails_version app in $railsapp using adapter $db"
|
439
|
+
echo -n "Using "
|
440
|
+
ruby --version
|