rails_health_check 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 +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
|