health_check 0.2.4 → 1.0.1

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.
data/test/testurl ADDED
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ def open(url)
6
+ Net::HTTP.get(URI.parse(url))
7
+ end
8
+
9
+ page_content = open(ARGV[0]) rescue nil
10
+ unless page_content
11
+ i=1
12
+ print "waiting.."
13
+ while i < 30 and not page_content
14
+ print "."
15
+ STDOUT.flush
16
+ i += 1
17
+ sleep(1)
18
+ page_content = open(ARGV[0]) rescue nil
19
+ end
20
+ puts " done"
21
+ end
22
+
23
+ puts page_content
24
+ if ARGV[1]
25
+ if page_content.to_s.include? ARGV[1]
26
+ puts "PASS (found #{ARGV[1]})"
27
+ exit 0
28
+ else
29
+ puts "FAIL (could not find #{ARGV[1]})"
30
+ exit 2
31
+ end
32
+ end
33
+ exit(page_content.nil? ? 1 : 0)
@@ -1,9 +1,9 @@
1
- require 'helper'
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class HealthCheckControllerTest < ActionController::TestCase
4
4
  #context "HealthCheck plugin" do
5
- # should_route :get, "/health_check", :controller => :health_check, :action => :index
6
- # should_route :get, "/health_check/two_checks", :controller => :health_check, :action => :index, :checks => 'two_checks'
5
+ # should route :get, "/health_check", :controller => :health_check, :action => :index
6
+ # should route :get, "/health_check/two_checks", :controller => :health_check, :action => :index, :checks => 'two_checks'
7
7
  #end
8
8
 
9
9
  context "GET standard on empty db" do
@@ -18,10 +18,10 @@ class HealthCheckControllerTest < ActionController::TestCase
18
18
  teardown_db
19
19
  end
20
20
 
21
- should_respond_with :success
22
- should_not_set_the_flash
23
- should_respond_with_content_type 'text/plain'
24
- should_render_without_layout
21
+ should respond_with :success
22
+ should_not set_the_flash
23
+ should respond_with_content_type 'text/plain'
24
+ should_not render_with_layout
25
25
  should "return 'success' text" do
26
26
  assert_equal HealthCheck.success, @response.body
27
27
  end
@@ -39,10 +39,10 @@ class HealthCheckControllerTest < ActionController::TestCase
39
39
  teardown_db
40
40
  end
41
41
 
42
- should_respond_with :success
43
- should_not_set_the_flash
44
- should_respond_with_content_type 'text/plain'
45
- should_render_without_layout
42
+ should respond_with :success
43
+ should_not set_the_flash
44
+ should respond_with_content_type 'text/plain'
45
+ should_not render_with_layout
46
46
  should "return 'success' text" do
47
47
  assert_equal HealthCheck.success, @response.body
48
48
  end
@@ -60,10 +60,10 @@ class HealthCheckControllerTest < ActionController::TestCase
60
60
  teardown_db
61
61
  end
62
62
 
63
- should_respond_with 500
64
- should_not_set_the_flash
65
- should_respond_with_content_type 'text/plain'
66
- should_render_without_layout
63
+ should respond_with 500
64
+ should_not set_the_flash
65
+ should respond_with_content_type 'text/plain'
66
+ should_not render_with_layout
67
67
  should "not return 'success' text" do
68
68
  assert_not_equal HealthCheck.success, @response.body
69
69
  end
@@ -75,10 +75,10 @@ class HealthCheckControllerTest < ActionController::TestCase
75
75
  get :check, :checks => 'email'
76
76
  end
77
77
 
78
- should_respond_with :success
79
- should_not_set_the_flash
80
- should_respond_with_content_type 'text/plain'
81
- should_render_without_layout
78
+ should respond_with :success
79
+ should_not set_the_flash
80
+ should respond_with_content_type 'text/plain'
81
+ should_not render_with_layout
82
82
  should "return 'success' text" do
83
83
  assert_equal HealthCheck.success, @response.body
84
84
  end
@@ -102,10 +102,10 @@ class HealthCheckControllerTest < ActionController::TestCase
102
102
  teardown_db
103
103
  end
104
104
 
105
- should_respond_with 500
106
- should_not_set_the_flash
107
- should_respond_with_content_type 'text/plain'
108
- should_render_without_layout
105
+ should respond_with 500
106
+ should_not set_the_flash
107
+ should respond_with_content_type 'text/plain'
108
+ should_not render_with_layout
109
109
  should "not return 'success' text" do
110
110
  assert_not_equal HealthCheck.success, @response.body
111
111
  end
@@ -123,8 +123,8 @@ class HealthCheckControllerTest < ActionController::TestCase
123
123
  get :check, :checks => 'email'
124
124
  end
125
125
 
126
- should_respond_with :success
127
- should_respond_with_content_type 'text/plain'
126
+ should respond_with :success
127
+ should respond_with_content_type 'text/plain'
128
128
  should "return 'success' text" do
129
129
  assert_equal HealthCheck.success, @response.body
130
130
  end
@@ -144,10 +144,10 @@ class HealthCheckControllerTest < ActionController::TestCase
144
144
  teardown_db
145
145
  end
146
146
 
147
- should_respond_with 500
148
- should_not_set_the_flash
149
- should_respond_with_content_type 'text/plain'
150
- should_render_without_layout
147
+ should respond_with 500
148
+ should_not set_the_flash
149
+ should respond_with_content_type 'text/plain'
150
+ should_not render_with_layout
151
151
  should "not return 'success' text" do
152
152
  assert_not_equal HealthCheck.success, @response.body
153
153
  end
@@ -166,8 +166,8 @@ class HealthCheckControllerTest < ActionController::TestCase
166
166
  teardown_db
167
167
  end
168
168
 
169
- should_respond_with :success
170
- should_respond_with_content_type 'text/plain'
169
+ should respond_with :success
170
+ should respond_with_content_type 'text/plain'
171
171
  should "return 'success' text" do
172
172
  assert_equal HealthCheck.success, @response.body
173
173
  end
@@ -1,4 +1,4 @@
1
- require 'helper'
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class RoutingTest < Test::Unit::TestCase
4
4
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: health_check
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ian Heggie
@@ -15,54 +15,105 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-11-16 00:00:00 Z
18
+ date: 2013-01-23 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: shoulda
22
- prerelease: false
23
21
  requirement: &id001 !ruby/object:Gem::Requirement
24
22
  none: false
25
23
  requirements:
26
24
  - - ">="
27
25
  - !ruby/object:Gem::Version
28
- hash: 3
26
+ hash: 57
29
27
  segments:
30
28
  - 0
31
- version: "0"
32
- type: :development
29
+ - 8
30
+ - 3
31
+ version: 0.8.3
33
32
  version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: sqlite3-ruby
33
+ name: rake
36
34
  prerelease: false
35
+ type: :development
36
+ - !ruby/object:Gem::Dependency
37
37
  requirement: &id002 !ruby/object:Gem::Requirement
38
38
  none: false
39
39
  requirements:
40
- - - ">="
40
+ - - ~>
41
41
  - !ruby/object:Gem::Version
42
- hash: 3
42
+ hash: 63
43
43
  segments:
44
+ - 1
45
+ - 8
46
+ - 4
47
+ version: 1.8.4
48
+ version_requirements: *id002
49
+ name: jeweler
50
+ prerelease: false
51
+ type: :development
52
+ - !ruby/object:Gem::Dependency
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ hash: 35
59
+ segments:
60
+ - 2
61
+ - 11
44
62
  - 0
45
- version: "0"
63
+ version: 2.11.0
64
+ version_requirements: *id003
65
+ name: shoulda
66
+ prerelease: false
46
67
  type: :development
47
- version_requirements: *id002
48
68
  - !ruby/object:Gem::Dependency
49
- name: activerecord
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 21
75
+ segments:
76
+ - 1
77
+ - 3
78
+ - 7
79
+ version: 1.3.7
80
+ version_requirements: *id004
81
+ name: sqlite3
50
82
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
83
+ type: :development
84
+ - !ruby/object:Gem::Dependency
85
+ requirement: &id005 !ruby/object:Gem::Requirement
52
86
  none: false
53
87
  requirements:
54
88
  - - ">="
55
89
  - !ruby/object:Gem::Version
56
- hash: 15571
90
+ hash: 3
91
+ segments:
92
+ - 2
93
+ - 3
94
+ - 0
95
+ version: 2.3.0
96
+ version_requirements: *id005
97
+ name: activerecord
98
+ prerelease: false
99
+ type: :development
100
+ - !ruby/object:Gem::Dependency
101
+ requirement: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ~>
105
+ - !ruby/object:Gem::Version
106
+ hash: 31
57
107
  segments:
58
108
  - 1
59
- - 15
60
- - 4
61
- - 7794
62
- version: 1.15.4.7794
109
+ - 2
110
+ - 0
111
+ version: 1.2.0
112
+ version_requirements: *id006
113
+ name: bundler
114
+ prerelease: false
63
115
  type: :development
64
- version_requirements: *id003
65
- description: Simple health check of Rails app for use with uptime monitoring sites
116
+ description: Simple health check of Rails app for use with Pingdom, NewRelic, EngineYard or uptime.openacs.org etc.
66
117
  email: ian@heggie.biz
67
118
  executables: []
68
119
 
@@ -72,31 +123,34 @@ extra_rdoc_files:
72
123
  - README.rdoc
73
124
  files:
74
125
  - .document
75
- - .gitignore
126
+ - Gemfile
127
+ - Gemfile.lock
76
128
  - MIT-LICENSE
77
129
  - README.rdoc
78
130
  - Rakefile
79
131
  - VERSION
132
+ - config/routes.rb
80
133
  - health_check.gemspec
81
134
  - init.rb
82
- - config/routes.rb
83
135
  - lib/health_check.rb
84
136
  - lib/health_check/add_23_routes.rb
85
- - lib/health_check/add_3x_routes.rb
86
- - lib/health_check/health_check_class.rb
87
137
  - lib/health_check/health_check_controller.rb
88
- - test/helper.rb
138
+ - lib/health_check/utils.rb
89
139
  - test/migrate/empty/do_not_remove.txt
140
+ - test/migrate/nine/9_create_countries.rb
90
141
  - test/migrate/twelve/012_create_users.rb
91
142
  - test/migrate/twelve/9_create_countries.rb
92
- - test/test_health_check_controller.rb
93
- - test/test_routes.rb
143
+ - test/test_helper.rb
144
+ - test/test_with_railsapp
145
+ - test/testurl
146
+ - test/unit/health_check_controller_test.rb
147
+ - test/unit/routes_test.rb
94
148
  homepage: http://github.com/ianheggie/health_check
95
149
  licenses: []
96
150
 
97
151
  post_install_message:
98
- rdoc_options:
99
- - --charset=UTF-8
152
+ rdoc_options: []
153
+
100
154
  require_paths:
101
155
  - lib
102
156
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -120,13 +174,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
174
  requirements: []
121
175
 
122
176
  rubyforge_project:
123
- rubygems_version: 1.8.11
177
+ rubygems_version: 1.8.24
124
178
  signing_key:
125
179
  specification_version: 3
126
- summary: Simple health check of Rails app for use with uptime monitoring sites
127
- test_files:
128
- - test/helper.rb
129
- - test/migrate/twelve/012_create_users.rb
130
- - test/migrate/twelve/9_create_countries.rb
131
- - test/test_health_check_controller.rb
132
- - test/test_routes.rb
180
+ summary: Simple health check of Rails app for uptime monitoring
181
+ test_files: []
182
+
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
@@ -1,13 +0,0 @@
1
- if defined?(Rails) and Rails.respond_to?(:version) && Rails.version =~ /^3/
2
- if defined? Rails31
3
- Rails31::Application.routes.draw do
4
- match 'health_check', :to => 'health_check#index'
5
- match 'health_check/:checks', :to => 'health_check#check'
6
- end
7
- else
8
- Rails.application.routes.draw do |map|
9
- match 'health_check', :to => 'health_check#index'
10
- match 'health_check/:checks', :to => 'health_check#check'
11
- end
12
- end
13
- end
@@ -1,99 +0,0 @@
1
- class HealthCheck
2
-
3
- @@success = "success"
4
-
5
- cattr_accessor :success
6
-
7
- @@smtp_timeout = 30.0
8
-
9
- cattr_accessor :smtp_timeout
10
-
11
- @@default_smtp_settings =
12
- {
13
- :address => "localhost",
14
- :port => 25,
15
- :domain => 'localhost.localdomain',
16
- :user_name => nil,
17
- :password => nil,
18
- :authentication => nil,
19
- :enable_starttls_auto => true,
20
- }
21
-
22
- cattr_accessor :default_smtp_settings
23
-
24
- def self.db_migrate_path
25
- # Lazy initialisation so Rails.root will be defined
26
- @@db_migrate_path ||= File.join(Rails.root, 'db', 'migrate')
27
- end
28
-
29
- def self.db_migrate_path=(value)
30
- @@db_migrate_path = value
31
- end
32
-
33
- def self.default_action_mailer_configuration?
34
- ActionMailer::Base.delivery_method == :smtp && HealthCheck.default_smtp_settings == ActionMailer::Base.smtp_settings
35
- end
36
-
37
- def self.get_database_version
38
- ActiveRecord::Migrator.current_version
39
- end
40
-
41
- def self.get_migration_version(dir = self.db_migrate_path)
42
- latest_migration = nil
43
- Dir[File.join(dir, "[0-9]*_*.rb")].each do |f|
44
- l = f.scan(/0*([0-9]+)_[_a-zA-Z0-9]*.rb/).first.first
45
- latest_migration = l if !latest_migration || l.to_i > latest_migration.to_i
46
- end
47
- latest_migration
48
- end
49
-
50
- def self.check_email
51
- case ActionMailer::Base.delivery_method
52
- when :smtp
53
- HealthCheck.check_smtp(ActionMailer::Base.smtp_settings, HealthCheck.smtp_timeout)
54
- when :sendmail
55
- HealthCheck.check_sendmail(ActionMailer::Base.sendmail_settings)
56
- else
57
- ''
58
- end
59
- end
60
-
61
-
62
- def self.check_sendmail(settings)
63
- File.executable?(settings[:location]) ? '' : 'no sendmail executable found. '
64
- end
65
-
66
- def self.check_smtp(settings, timeout)
67
- status = ''
68
- begin
69
- if @skip_external_checks
70
- status = '221'
71
- else
72
- Timeout::timeout(timeout) do |timeout_length|
73
- t = TCPSocket.new(settings[:address], settings[:port])
74
- begin
75
- status = t.gets
76
- while status != nil && status !~ /^2/
77
- status = t.gets
78
- end
79
- t.puts "HELO #{settings[:domain]}"
80
- while status != nil && status !~ /^250/
81
- status = t.gets
82
- end
83
- t.puts "QUIT"
84
- status = t.gets
85
- ensure
86
- t.close
87
- end
88
- end
89
- end
90
- rescue Errno::EBADF => ex
91
- status = "Unable to connect to service"
92
- rescue Exception => ex
93
- status = ex.to_s
94
- end
95
- (status =~ /^221/) ? '' : "SMTP: #{status || 'unexpected EOF on socket'}. "
96
- end
97
-
98
-
99
- end