monittr 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -108,10 +108,12 @@ $(function() {
108
108
  $(this).removeClass('expanded').find('.content').hide('fast', function() { });
109
109
  });
110
110
 
111
- $('#monittr .server h2').toggle(
112
- function() { $(this).parent().trigger('expand') },
113
- function() { $(this).parent().trigger('collapse') }
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() {
@@ -1,3 +1,3 @@
1
1
  module Monittr
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
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
- monit_url = url
49
- monit_url += '/' unless url =~ /\/$/
50
- monit_url += '_status?format=xml' unless url =~ /_status\?format=xml$/
51
- self.new url, RestClient.get(monit_url)
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
- prerelease: false
4
+ hash: 19
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 0
8
- - 5
9
- version: 0.0.5
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: 2010-12-01 00:00:00 +01:00
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.3.6
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