monittr 0.0.5 → 0.0.6
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/lib/monittr/sinatra/template.erb +6 -4
- data/lib/monittr/version.rb +1 -1
- data/lib/monittr.rb +7 -4
- data/test/monittr_test.rb +9 -0
- metadata +38 -7
@@ -108,10 +108,12 @@ $(function() {
|
|
108
108
|
$(this).removeClass('expanded').find('.content').hide('fast', function() { });
|
109
109
|
});
|
110
110
|
|
111
|
-
$('#monittr .server h2').
|
112
|
-
function() {
|
113
|
-
|
114
|
-
|
111
|
+
$('#monittr .server h2').click(
|
112
|
+
function(event) {
|
113
|
+
if ( event.target != this ) return true; // Enable clicking on links
|
114
|
+
$(this).parent().hasClass('expanded') ? $(this).parent().trigger('collapse') : $(this).parent().trigger('expand');
|
115
|
+
});
|
116
|
+
|
115
117
|
|
116
118
|
$('#toggle').toggle(
|
117
119
|
function() {
|
data/lib/monittr/version.rb
CHANGED
data/lib/monittr.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'nokogiri'
|
2
2
|
require 'rest-client'
|
3
3
|
require 'ostruct'
|
4
|
+
require 'timeout'
|
4
5
|
|
5
6
|
module Monittr
|
6
7
|
|
@@ -45,10 +46,12 @@ module Monittr
|
|
45
46
|
# Retrieve Monit status XML from the URL
|
46
47
|
#
|
47
48
|
def self.fetch(url='http://admin:monit@localhost:2812')
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
Timeout::timeout(1) do
|
50
|
+
monit_url = url
|
51
|
+
monit_url += '/' unless url =~ /\/$/
|
52
|
+
monit_url += '_status?format=xml' unless url =~ /_status\?format=xml$/
|
53
|
+
self.new url, RestClient.get(monit_url)
|
54
|
+
end
|
52
55
|
rescue Exception => e
|
53
56
|
self.new url, %Q|<error status="3" name="#{e.class}" message="#{e.message}" />|
|
54
57
|
end
|
data/test/monittr_test.rb
CHANGED
@@ -37,6 +37,15 @@ module Monittr
|
|
37
37
|
assert_equal '500 Internal Server Error', cluster.servers.first.system.message
|
38
38
|
end
|
39
39
|
|
40
|
+
should "timeout properly for non-responding URLs" do
|
41
|
+
RestClient.expects(:get).raises(Timeout::Error)
|
42
|
+
cluster = Monittr::Cluster.new %w[ http://admin:monit@localhost:2812 ]
|
43
|
+
assert_not_nil cluster.servers
|
44
|
+
assert_equal 1, cluster.servers.size
|
45
|
+
assert_equal 3, cluster.servers.first.system.status
|
46
|
+
assert_equal 'Timeout::Error', cluster.servers.first.system.name
|
47
|
+
end
|
48
|
+
|
40
49
|
end
|
41
50
|
|
42
51
|
context "Server" do
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: monittr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 19
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Karel Minarik
|
@@ -14,16 +15,17 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
-
default_executable:
|
18
|
+
date: 2011-06-30 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: bundler
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ~>
|
26
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 23
|
27
29
|
segments:
|
28
30
|
- 1
|
29
31
|
- 0
|
@@ -35,9 +37,11 @@ dependencies:
|
|
35
37
|
name: rest-client
|
36
38
|
prerelease: false
|
37
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
38
41
|
requirements:
|
39
42
|
- - ">="
|
40
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
41
45
|
segments:
|
42
46
|
- 0
|
43
47
|
version: "0"
|
@@ -47,9 +51,11 @@ dependencies:
|
|
47
51
|
name: nokogiri
|
48
52
|
prerelease: false
|
49
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
50
55
|
requirements:
|
51
56
|
- - ">="
|
52
57
|
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
53
59
|
segments:
|
54
60
|
- 0
|
55
61
|
version: "0"
|
@@ -59,9 +65,11 @@ dependencies:
|
|
59
65
|
name: sinatra
|
60
66
|
prerelease: false
|
61
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
62
69
|
requirements:
|
63
70
|
- - ">="
|
64
71
|
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
65
73
|
segments:
|
66
74
|
- 0
|
67
75
|
version: "0"
|
@@ -71,9 +79,11 @@ dependencies:
|
|
71
79
|
name: shoulda
|
72
80
|
prerelease: false
|
73
81
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
74
83
|
requirements:
|
75
84
|
- - ">="
|
76
85
|
- !ruby/object:Gem::Version
|
86
|
+
hash: 3
|
77
87
|
segments:
|
78
88
|
- 0
|
79
89
|
version: "0"
|
@@ -83,9 +93,11 @@ dependencies:
|
|
83
93
|
name: turn
|
84
94
|
prerelease: false
|
85
95
|
requirement: &id006 !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
86
97
|
requirements:
|
87
98
|
- - ">="
|
88
99
|
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
89
101
|
segments:
|
90
102
|
- 0
|
91
103
|
version: "0"
|
@@ -95,14 +107,30 @@ dependencies:
|
|
95
107
|
name: fakeweb
|
96
108
|
prerelease: false
|
97
109
|
requirement: &id007 !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
98
111
|
requirements:
|
99
112
|
- - ">="
|
100
113
|
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
101
115
|
segments:
|
102
116
|
- 0
|
103
117
|
version: "0"
|
104
118
|
type: :development
|
105
119
|
version_requirements: *id007
|
120
|
+
- !ruby/object:Gem::Dependency
|
121
|
+
name: mocha
|
122
|
+
prerelease: false
|
123
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
hash: 3
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
version: "0"
|
132
|
+
type: :development
|
133
|
+
version_requirements: *id008
|
106
134
|
description: " Monittr provides a Ruby interface for loading and displaying statistics\n from multiple Monit instances and helpers for Sinatra web applications.\n"
|
107
135
|
email: karmi@karmi.cz
|
108
136
|
executables: []
|
@@ -128,7 +156,6 @@ files:
|
|
128
156
|
- examples/application.rb
|
129
157
|
- examples/monitrc
|
130
158
|
- examples/template.erb
|
131
|
-
has_rdoc: true
|
132
159
|
homepage: http://github.com/karmi/monittr
|
133
160
|
licenses: []
|
134
161
|
|
@@ -138,16 +165,20 @@ rdoc_options:
|
|
138
165
|
require_paths:
|
139
166
|
- lib
|
140
167
|
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
none: false
|
141
169
|
requirements:
|
142
170
|
- - ">="
|
143
171
|
- !ruby/object:Gem::Version
|
172
|
+
hash: 3
|
144
173
|
segments:
|
145
174
|
- 0
|
146
175
|
version: "0"
|
147
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
148
178
|
requirements:
|
149
179
|
- - ">="
|
150
180
|
- !ruby/object:Gem::Version
|
181
|
+
hash: 23
|
151
182
|
segments:
|
152
183
|
- 1
|
153
184
|
- 3
|
@@ -156,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
187
|
requirements: []
|
157
188
|
|
158
189
|
rubyforge_project:
|
159
|
-
rubygems_version: 1.
|
190
|
+
rubygems_version: 1.8.5
|
160
191
|
signing_key:
|
161
192
|
specification_version: 3
|
162
193
|
summary: A Ruby and web interface for Monit statistics
|