is_it_working-cbeer 1.0.11 → 1.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/is_it_working.gemspec +1 -0
- data/lib/is_it_working/checks/rsolr_check.rb +53 -0
- data/lib/is_it_working/checks/rubydora_check.rb +48 -0
- data/lib/is_it_working.rb +3 -1
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.12
|
data/is_it_working.gemspec
CHANGED
@@ -10,6 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.files = `git ls-files`.split("\n")
|
11
11
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
12
12
|
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
13
|
+
gem.require_paths = ["lib"]
|
13
14
|
gem.has_rdoc = true
|
14
15
|
gem.rdoc_options << '--line-numbers' << '--inline-source' << '--main' << 'README.rdoc'
|
15
16
|
gem.extra_rdoc_files = ["README.rdoc"]
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module IsItWorking
|
2
|
+
class RsolrCheck
|
3
|
+
def initialize(options={})
|
4
|
+
@client = options[:client]
|
5
|
+
raise ArgumentError.new(":client not specified") unless @client
|
6
|
+
@host = @client.uri
|
7
|
+
@alias = options[:alias] || @host
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(status)
|
11
|
+
if ping
|
12
|
+
status.ok("service active")
|
13
|
+
status.info("numDocs: #{luke['numDocs']}")
|
14
|
+
status.info("lastModified: #{luke['lastModified']}")
|
15
|
+
registry.each do |name, text|
|
16
|
+
status.info("#{name} - #{text}")
|
17
|
+
end
|
18
|
+
else
|
19
|
+
status.fail("service down")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def luke
|
24
|
+
@luke ||= begin
|
25
|
+
@client.luke(:show => 'schema', :numTerms => 0)['index']
|
26
|
+
rescue
|
27
|
+
{}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def registry
|
32
|
+
@registry ||= begin
|
33
|
+
resp = Blacklight.solr.get 'admin/registry.jsp', :params => { :wt => 'xml' }
|
34
|
+
doc = Nokogiri::XML resp
|
35
|
+
h = {}
|
36
|
+
doc.xpath('/solr/*').each do |node|
|
37
|
+
next if node.name == "solr-info"
|
38
|
+
h[node.name] = node.text
|
39
|
+
end
|
40
|
+
h
|
41
|
+
rescue
|
42
|
+
{}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def ping
|
47
|
+
@client.head("admin/ping").response[:status] == 200
|
48
|
+
rescue
|
49
|
+
false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module IsItWorking
|
2
|
+
class RubydoraCheck
|
3
|
+
def initialize(options={})
|
4
|
+
@client = options[:client]
|
5
|
+
raise ArgumentError.new(":client not specified") unless @client
|
6
|
+
@host = @client.client.url
|
7
|
+
@timeout = options[:timeout] || 2
|
8
|
+
@alias = options[:alias] || @host
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(status)
|
12
|
+
begin
|
13
|
+
ping
|
14
|
+
status.ok("service active")
|
15
|
+
["repositoryName", "repositoryBaseURL", "repositoryVersion"].each do |key|
|
16
|
+
status.info("#{key} - #{profile[key]}")
|
17
|
+
end
|
18
|
+
rescue Errno::ECONNREFUSED
|
19
|
+
status.fail("#{@alias} is not accepting connections on port #{@port.inspect}")
|
20
|
+
rescue SocketError => e
|
21
|
+
status.fail("connection to #{@alias} on port #{@port.inspect} failed with '#{e.message}'")
|
22
|
+
rescue Timeout::Error
|
23
|
+
status.fail("#{@alias} did not respond on port #{@port.inspect} within #{@timeout} seconds")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def profile
|
28
|
+
@luke ||= begin
|
29
|
+
ActiveFedora::Base.connection_for_pid(0).profile
|
30
|
+
rescue
|
31
|
+
{}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def ping
|
36
|
+
timeout(@timeout) do
|
37
|
+
s = TCPSocket.new(uri.host, uri.port)
|
38
|
+
s.close
|
39
|
+
end
|
40
|
+
true
|
41
|
+
end
|
42
|
+
|
43
|
+
def uri
|
44
|
+
URI(@host)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
data/lib/is_it_working.rb
CHANGED
@@ -10,9 +10,11 @@ module IsItWorking
|
|
10
10
|
# Predefined checks
|
11
11
|
autoload :ActionMailerCheck, File.expand_path("../is_it_working/checks/action_mailer_check.rb", __FILE__)
|
12
12
|
autoload :ActiveRecordCheck, File.expand_path("../is_it_working/checks/active_record_check.rb", __FILE__)
|
13
|
+
autoload :RubydoraCheck, File.expand_path("../is_it_working/checks/rubydora_check.rb", __FILE__)
|
13
14
|
autoload :DalliCheck, File.expand_path("../is_it_working/checks/dalli_check.rb", __FILE__)
|
14
15
|
autoload :DirectoryCheck, File.expand_path("../is_it_working/checks/directory_check.rb", __FILE__)
|
15
16
|
autoload :MemcacheCheck, File.expand_path("../is_it_working/checks/memcache_check.rb", __FILE__)
|
16
17
|
autoload :PingCheck, File.expand_path("../is_it_working/checks/ping_check.rb", __FILE__)
|
18
|
+
autoload :RsolrCheck, File.expand_path("../is_it_working/checks/rsolr_check.rb", __FILE__)
|
17
19
|
autoload :UrlCheck, File.expand_path("../is_it_working/checks/url_check.rb", __FILE__)
|
18
|
-
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: is_it_working-cbeer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -117,6 +117,8 @@ files:
|
|
117
117
|
- lib/is_it_working/checks/directory_check.rb
|
118
118
|
- lib/is_it_working/checks/memcache_check.rb
|
119
119
|
- lib/is_it_working/checks/ping_check.rb
|
120
|
+
- lib/is_it_working/checks/rsolr_check.rb
|
121
|
+
- lib/is_it_working/checks/rubydora_check.rb
|
120
122
|
- lib/is_it_working/checks/url_check.rb
|
121
123
|
- lib/is_it_working/filter.rb
|
122
124
|
- lib/is_it_working/handler.rb
|
@@ -150,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
152
|
version: '0'
|
151
153
|
segments:
|
152
154
|
- 0
|
153
|
-
hash: -
|
155
|
+
hash: -807806617677205946
|
154
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
157
|
none: false
|
156
158
|
requirements:
|
@@ -159,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
161
|
version: '0'
|
160
162
|
segments:
|
161
163
|
- 0
|
162
|
-
hash: -
|
164
|
+
hash: -807806617677205946
|
163
165
|
requirements: []
|
164
166
|
rubyforge_project:
|
165
167
|
rubygems_version: 1.8.24
|