nagiosharder 0.4.0.rc1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -2
- data/Gemfile.lock +12 -14
- data/README.rdoc +11 -26
- data/bin/nagiosharder +0 -1
- data/lib/nagiosharder.rb +60 -87
- data/lib/nagiosharder/cli.rb +16 -96
- data/nagiosharder.gemspec +5 -5
- metadata +138 -129
- data/lib/nagiosharder/filters.rb +0 -140
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -3,8 +3,8 @@ PATH
|
|
3
3
|
specs:
|
4
4
|
nagiosharder (0.4.0)
|
5
5
|
activesupport
|
6
|
-
hashie (~> 1.
|
7
|
-
httparty (~> 0.
|
6
|
+
hashie (~> 1.0.0)
|
7
|
+
httparty (~> 0.6.1)
|
8
8
|
i18n
|
9
9
|
nokogiri
|
10
10
|
rest-client (~> 1.6.1)
|
@@ -13,19 +13,17 @@ PATH
|
|
13
13
|
GEM
|
14
14
|
remote: http://rubygems.org/
|
15
15
|
specs:
|
16
|
-
activesupport (3.
|
17
|
-
i18n (~> 0.6)
|
16
|
+
activesupport (3.1.3)
|
18
17
|
multi_json (~> 1.0)
|
18
|
+
crack (0.1.8)
|
19
19
|
diff-lcs (1.1.3)
|
20
|
-
hashie (1.
|
21
|
-
httparty (0.
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
multi_xml (0.5.1)
|
28
|
-
nokogiri (1.5.5)
|
20
|
+
hashie (1.0.0)
|
21
|
+
httparty (0.6.1)
|
22
|
+
crack (= 0.1.8)
|
23
|
+
i18n (0.6.0)
|
24
|
+
mime-types (1.17.2)
|
25
|
+
multi_json (1.0.4)
|
26
|
+
nokogiri (1.5.0)
|
29
27
|
rest-client (1.6.7)
|
30
28
|
mime-types (>= 1.16)
|
31
29
|
rspec (2.7.0)
|
@@ -36,7 +34,7 @@ GEM
|
|
36
34
|
rspec-expectations (2.7.0)
|
37
35
|
diff-lcs (~> 1.1.2)
|
38
36
|
rspec-mocks (2.7.0)
|
39
|
-
terminal-table (1.4.
|
37
|
+
terminal-table (1.4.4)
|
40
38
|
|
41
39
|
PLATFORMS
|
42
40
|
ruby
|
data/README.rdoc
CHANGED
@@ -12,7 +12,7 @@ Here's some examples to get you started with the Ruby API:
|
|
12
12
|
require 'nagiosharder'
|
13
13
|
site = NagiosHarder::Site.new('http://path/to/nagios/cgi/directory', 'user', 'password', 'version')
|
14
14
|
# version defaults to 3
|
15
|
-
|
15
|
+
|
16
16
|
# get details back about a host's services
|
17
17
|
puts site.host_status('myhost')
|
18
18
|
|
@@ -20,28 +20,16 @@ Here's some examples to get you started with the Ruby API:
|
|
20
20
|
site.schedule_host_check('myhost')
|
21
21
|
|
22
22
|
# get details on all services
|
23
|
-
site.service_status
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
]
|
32
|
-
)
|
33
|
-
|
34
|
-
# or just muted services, sorted desc by duration
|
35
|
-
site.service_status(
|
36
|
-
:service_props => [
|
37
|
-
:notifications_disabled,
|
38
|
-
],
|
39
|
-
:sort_type => :descending,
|
40
|
-
:sort_option => :state_duration,
|
41
|
-
)
|
42
|
-
|
23
|
+
site.service_status(:all)
|
24
|
+
# or just services that have problems
|
25
|
+
site.service_status(:all_problems)
|
26
|
+
# (other valid symbols: :ok, :warning, :unknown, :critical, :pending, :all_problems)
|
27
|
+
# or make it sorted by duration, descending
|
28
|
+
site.service_status(:all_problem, :sort_option => :duration, :sort_type => :desc
|
29
|
+
# (other sort_options: :host, :service, :status, :last_check, :duration, :attempts)
|
30
|
+
# (other sort_types: :asc, :desc)
|
43
31
|
# or get the details for a single service group
|
44
|
-
site.service_status(:group => "AWESOME")
|
32
|
+
site.service_status(:all_problem, :group => "AWESOME")
|
45
33
|
|
46
34
|
# schedule a host to have services checks run again right now
|
47
35
|
site.schedule_service_check('myhost', 'myservice')
|
@@ -58,9 +46,6 @@ Here's some examples to get you started with the Ruby API:
|
|
58
46
|
# or unacknowledge
|
59
47
|
site.unacknowledge_service('myhost', 'myservice')
|
60
48
|
|
61
|
-
# acknowledge a down service
|
62
|
-
site.acknowledge_host('myhost', 'something bad happened')
|
63
|
-
|
64
49
|
# disable notifications for a service:
|
65
50
|
site.disable_service_notifications('myhost', 'myservice')
|
66
51
|
|
@@ -88,7 +73,7 @@ This will display all available commands.
|
|
88
73
|
|
89
74
|
|
90
75
|
== Note on Patches/Pull Requests
|
91
|
-
|
76
|
+
|
92
77
|
* Fork the project.
|
93
78
|
* Make your feature addition or bug fix.
|
94
79
|
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
data/bin/nagiosharder
CHANGED
data/lib/nagiosharder.rb
CHANGED
@@ -3,7 +3,6 @@ require 'nokogiri'
|
|
3
3
|
require 'active_support' # fine, we'll just do all of activesupport instead of the parts I want. thank Rails 3 for shuffling requires around.
|
4
4
|
require 'cgi'
|
5
5
|
require 'hashie'
|
6
|
-
require 'nagiosharder/filters'
|
7
6
|
|
8
7
|
# :(
|
9
8
|
require 'active_support/version' # double and triplely ensure ActiveSupport::VERSION is around
|
@@ -25,28 +24,25 @@ class NagiosHarder
|
|
25
24
|
attr_accessor :nagios_url, :user, :password, :default_options, :default_cookies, :version, :nagios_time_format
|
26
25
|
include HTTParty::ClassMethods
|
27
26
|
|
28
|
-
def initialize(nagios_url, user, password, version = 3
|
27
|
+
def initialize(nagios_url, user, password, version = 3)
|
29
28
|
@nagios_url = nagios_url.gsub(/\/$/, '')
|
30
29
|
@user = user
|
31
30
|
@password = password
|
32
31
|
@default_options = {}
|
33
32
|
@default_cookies = {}
|
34
33
|
@version = version
|
35
|
-
debug_output if ENV['DEBUG']
|
36
34
|
basic_auth(@user, @password) if @user && @password
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
"%Y-%m-%d %H:%M:%S"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
self
|
35
|
+
|
36
|
+
@nagios_time_format = if @version.to_i < 3
|
37
|
+
"%m-%d-%Y %H:%M:%S"
|
38
|
+
else
|
39
|
+
"%Y-%m-%d %H:%M:%S"
|
40
|
+
end
|
47
41
|
end
|
48
42
|
|
49
43
|
def acknowledge_service(host, service, comment)
|
44
|
+
# extra options: sticky_arg, send_notification, persistent
|
45
|
+
|
50
46
|
request = {
|
51
47
|
:cmd_typ => 34,
|
52
48
|
:cmd_mod => 2,
|
@@ -63,22 +59,6 @@ class NagiosHarder
|
|
63
59
|
response.code == 200 && response.body =~ /successful/
|
64
60
|
end
|
65
61
|
|
66
|
-
def acknowledge_host(host, comment)
|
67
|
-
request = {
|
68
|
-
:cmd_typ => 33,
|
69
|
-
:cmd_mod => 2,
|
70
|
-
:com_author => @user,
|
71
|
-
:com_data => comment,
|
72
|
-
:host => host,
|
73
|
-
:send_notification => true,
|
74
|
-
:persistent => false,
|
75
|
-
:sticky_ack => true
|
76
|
-
}
|
77
|
-
|
78
|
-
response = post(cmd_url, :body => request)
|
79
|
-
response.code == 200 && response.body =~ /successful/
|
80
|
-
end
|
81
|
-
|
82
62
|
def unacknowledge_service(host, service)
|
83
63
|
request = {
|
84
64
|
:cmd_typ => 52,
|
@@ -190,42 +170,57 @@ class NagiosHarder
|
|
190
170
|
response.code == 200 && response.body =~ /successful/
|
191
171
|
end
|
192
172
|
|
193
|
-
def service_status(options = {})
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
173
|
+
def service_status(type, options = {})
|
174
|
+
service_status_type = case type
|
175
|
+
when :ok then 2
|
176
|
+
when :warning then 4
|
177
|
+
when :unknown then 8
|
178
|
+
when :critical then 16
|
179
|
+
when :pending then 1
|
180
|
+
when :all_problems then 28
|
181
|
+
when :all then nil
|
182
|
+
else
|
183
|
+
raise "Unknown type"
|
184
|
+
end
|
185
|
+
|
186
|
+
sort_type = case options[:sort_type]
|
187
|
+
when :asc then 1
|
188
|
+
when :desc then 2
|
189
|
+
when nil then nil
|
190
|
+
else
|
191
|
+
raise "Invalid options[:sort_type]"
|
192
|
+
end
|
193
|
+
|
194
|
+
sort_option = case options[:sort_option]
|
195
|
+
when :host then 1
|
196
|
+
when :service then 2
|
197
|
+
when :status then 3
|
198
|
+
when :last_check then 4
|
199
|
+
when :duration then 6
|
200
|
+
when :attempts then 5
|
201
|
+
when nil then nil
|
202
|
+
else
|
203
|
+
raise "Invalid options[:sort_option]"
|
204
|
+
end
|
205
|
+
|
206
|
+
service_group = options[:group]
|
207
|
+
|
208
|
+
|
209
|
+
params = {
|
210
|
+
'hoststatustype' => options[:hoststatustype] || 15,
|
211
|
+
'servicestatustypes' => options[:servicestatustypes] || service_status_type,
|
212
|
+
'sorttype' => options[:sorttype] || sort_type,
|
213
|
+
'sortoption' => options[:sortoption] || sort_option,
|
214
|
+
'hoststatustypes' => options[:hoststatustypes],
|
215
|
+
'serviceprops' => options[:serviceprops]
|
216
|
+
}
|
220
217
|
|
221
218
|
if @version == 3
|
222
|
-
params['servicegroup'] =
|
219
|
+
params['servicegroup'] = service_group || 'all'
|
223
220
|
params['style'] = 'detail'
|
224
|
-
params['embedded'] = '1'
|
225
|
-
params['noheader'] = '1'
|
226
221
|
else
|
227
|
-
if
|
228
|
-
params['servicegroup'] =
|
222
|
+
if service_group
|
223
|
+
params['servicegroup'] = service_group
|
229
224
|
params['style'] = 'detail'
|
230
225
|
else
|
231
226
|
params['host'] = 'all'
|
@@ -247,7 +242,7 @@ class NagiosHarder
|
|
247
242
|
end
|
248
243
|
|
249
244
|
def host_status(host)
|
250
|
-
host_status_url = "#{status_url}?host=#{host}
|
245
|
+
host_status_url = "#{status_url}?host=#{host}"
|
251
246
|
response = get(host_status_url)
|
252
247
|
|
253
248
|
raise "wtf #{host_status_url}? #{response.code}" unless response.code == 200
|
@@ -344,7 +339,6 @@ class NagiosHarder
|
|
344
339
|
columns = Nokogiri::HTML(row.inner_html).css('body > td').to_a
|
345
340
|
if columns.any?
|
346
341
|
|
347
|
-
# Host column
|
348
342
|
host = columns[0].inner_text.gsub(/\n/, '')
|
349
343
|
|
350
344
|
# for a given host, the host details are blank after the first row
|
@@ -355,9 +349,7 @@ class NagiosHarder
|
|
355
349
|
# or save it for later
|
356
350
|
host = last_host
|
357
351
|
end
|
358
|
-
debug 'parsed host column'
|
359
352
|
|
360
|
-
# Service Column
|
361
353
|
if columns[1]
|
362
354
|
service_links = columns[1].css('td a')
|
363
355
|
service_link, other_links = service_links[0], service_links[1..-1]
|
@@ -388,21 +380,13 @@ class NagiosHarder
|
|
388
380
|
|
389
381
|
service = service_links[0].inner_html
|
390
382
|
end
|
391
|
-
debug 'parsed service column'
|
392
383
|
|
393
|
-
# Status
|
394
384
|
status = columns[2].inner_html if columns[2]
|
395
|
-
debug 'parsed status column'
|
396
|
-
|
397
|
-
# Last Check
|
398
385
|
last_check = if columns[3] && columns[3].inner_html != 'N/A'
|
399
386
|
last_check_str = columns[3].inner_html
|
400
|
-
|
387
|
+
|
401
388
|
DateTime.strptime(columns[3].inner_html, nagios_time_format).to_s
|
402
389
|
end
|
403
|
-
debug 'parsed last check column'
|
404
|
-
|
405
|
-
# Duration
|
406
390
|
duration = columns[4].inner_html.squeeze(' ').gsub(/^ /, '') if columns[4]
|
407
391
|
started_at = if duration && match_data = duration.match(/^\s*(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s\s*$/)
|
408
392
|
(
|
@@ -412,16 +396,8 @@ class NagiosHarder
|
|
412
396
|
match_data[4].to_i.seconds
|
413
397
|
).ago
|
414
398
|
end
|
415
|
-
debug 'parsed duration column'
|
416
|
-
|
417
|
-
# Attempts
|
418
399
|
attempts = columns[5].inner_html if columns[5]
|
419
|
-
|
420
|
-
|
421
|
-
# Status info
|
422
|
-
status_info = columns[6].inner_html.gsub(' ', '').gsub("\302\240", '') if columns[6]
|
423
|
-
debug 'parsed status info column'
|
424
|
-
|
400
|
+
status_info = columns[6].inner_html.gsub(' ', '') if columns[6]
|
425
401
|
|
426
402
|
if host && service && status && last_check && duration && attempts && started_at && status_info
|
427
403
|
service_extinfo_url = "#{extinfo_url}?type=2&host=#{host}&service=#{CGI.escape(service)}"
|
@@ -451,9 +427,6 @@ class NagiosHarder
|
|
451
427
|
nil
|
452
428
|
end
|
453
429
|
|
454
|
-
def debug(*args)
|
455
|
-
$stderr.puts *args if ENV['DEBUG']
|
456
|
-
end
|
457
|
-
|
458
430
|
end
|
431
|
+
|
459
432
|
end
|
data/lib/nagiosharder/cli.rb
CHANGED
@@ -23,12 +23,8 @@ class NagiosHarder
|
|
23
23
|
end.map { |name, s| s }
|
24
24
|
end
|
25
25
|
true
|
26
|
-
when /^
|
27
|
-
|
28
|
-
client.acknowledge_host(host, the_rest.join(' '))
|
29
|
-
else
|
30
|
-
client.acknowledge_service(host, service, the_rest.join(' '))
|
31
|
-
end
|
26
|
+
when /^ack/
|
27
|
+
client.acknowledge_service(host, service, the_rest.join(' '))
|
32
28
|
when /^unack/
|
33
29
|
client.unacknowledge_service(host, service)
|
34
30
|
when /^(mute|disable_notifications)$/
|
@@ -49,82 +45,23 @@ class NagiosHarder
|
|
49
45
|
end
|
50
46
|
when 'problems'
|
51
47
|
service_table do
|
52
|
-
|
53
|
-
:
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
58
|
-
true
|
59
|
-
when /^(critical|warning|unknown)/
|
60
|
-
service_table do
|
61
|
-
params = {
|
62
|
-
:service_status_types => [
|
63
|
-
$1,
|
64
|
-
],
|
65
|
-
:service_props => [
|
66
|
-
:hard_state,
|
67
|
-
:no_scheduled_downtime,
|
68
|
-
:state_unacknowledged,
|
69
|
-
:notifications_enabled
|
70
|
-
]
|
71
|
-
}
|
72
|
-
params[:group] = param
|
73
|
-
client.service_status(params)
|
48
|
+
if param
|
49
|
+
client.service_status(:all_problems, :group => param)
|
50
|
+
else
|
51
|
+
client.service_status(:all_problems)
|
52
|
+
end
|
74
53
|
end
|
75
54
|
true
|
76
55
|
when /^(triage|unhandled)/
|
77
56
|
service_table do
|
78
|
-
|
79
|
-
:
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
],
|
84
|
-
:host_props => [
|
85
|
-
:no_scheduled_downtime,
|
86
|
-
:state_unacknowledged,
|
87
|
-
:notifications_enabled
|
88
|
-
],
|
89
|
-
:service_props => [
|
90
|
-
:no_scheduled_downtime,
|
91
|
-
:state_unacknowledged,
|
92
|
-
:notifications_enabled
|
93
|
-
]
|
94
|
-
}
|
95
|
-
params[:group] = param
|
96
|
-
client.service_status(params)
|
97
|
-
end
|
98
|
-
true
|
99
|
-
when /^muted/
|
100
|
-
service_table do
|
101
|
-
params = {
|
102
|
-
:service_props => [
|
103
|
-
:notifications_disabled,
|
104
|
-
]
|
105
|
-
}
|
106
|
-
params[:group] = param
|
107
|
-
client.service_status(params)
|
108
|
-
end
|
109
|
-
true
|
110
|
-
when /^(acked|acknowledged)/
|
111
|
-
service_table do
|
112
|
-
params = {
|
113
|
-
:service_status_types => [
|
114
|
-
:critical,
|
115
|
-
:warning,
|
116
|
-
:unknown
|
117
|
-
],
|
118
|
-
:service_props => [
|
119
|
-
:state_acknowledged,
|
120
|
-
]
|
121
|
-
}
|
122
|
-
params[:group] = param
|
123
|
-
client.service_status(params)
|
57
|
+
if param
|
58
|
+
client.service_status(:all_problems, :group => param, :hoststatustypes => 3, :serviceprops => 42, :servicestatustypes => 28)
|
59
|
+
else
|
60
|
+
client.service_status(:all_problems, :hoststatustypes => 3, :serviceprops => 42, :servicestatustypes => 28)
|
61
|
+
end
|
124
62
|
end
|
125
63
|
true
|
126
64
|
else
|
127
|
-
debug "'#{command}'"
|
128
65
|
raise ArgumentError, help
|
129
66
|
end
|
130
67
|
if return_value
|
@@ -138,8 +75,7 @@ class NagiosHarder
|
|
138
75
|
protected
|
139
76
|
|
140
77
|
def client
|
141
|
-
|
142
|
-
@client ||= NagiosHarder::Site.new(options['nagios_url'], options['user'], options['password'], options['version'], options['time'])
|
78
|
+
@client ||= NagiosHarder::Site.new(options['nagios_url'], options['user'], options['password'], options['version'])
|
143
79
|
end
|
144
80
|
|
145
81
|
def parse_connection_options(argv)
|
@@ -170,12 +106,8 @@ class NagiosHarder
|
|
170
106
|
options['nagios_url'] = nagios_url
|
171
107
|
end
|
172
108
|
|
173
|
-
opts.on( '-v', '--version [3]', 'Nagios version (2 or 3, defaults to 3)') do |
|
174
|
-
options['version'] =
|
175
|
-
end
|
176
|
-
|
177
|
-
opts.on( '-t', '--time [us|euro]', 'Nagios time format') do |time|
|
178
|
-
options['time'] = time
|
109
|
+
opts.on( '-v', '--version [3]', 'Nagios version (2 or 3, defaults to 3)') do |nagios_url|
|
110
|
+
options['version'] = nagios_url
|
179
111
|
end
|
180
112
|
|
181
113
|
end
|
@@ -222,10 +154,6 @@ class NagiosHarder
|
|
222
154
|
"\\1\\3\n")
|
223
155
|
end
|
224
156
|
|
225
|
-
def debug(*args)
|
226
|
-
$stderr.puts *args if ENV['DEBUG']
|
227
|
-
end
|
228
|
-
|
229
157
|
def help
|
230
158
|
help = <<-HELP
|
231
159
|
NagiosHarder
|
@@ -242,8 +170,6 @@ COMMANDS:
|
|
242
170
|
nagiosharder status aux1
|
243
171
|
nagiosharder status aux1/http
|
244
172
|
|
245
|
-
nagiosharder acknowledge aux1 [message]
|
246
|
-
|
247
173
|
nagiosharder acknowledge aux1/http [message]
|
248
174
|
nagiosharder ack aux1/http [message]
|
249
175
|
|
@@ -258,7 +184,7 @@ COMMANDS:
|
|
258
184
|
nagiosharder unmute aux1/http
|
259
185
|
nagiosharder enable_notifications aux1/http
|
260
186
|
|
261
|
-
|
187
|
+
nagios check aux1/http
|
262
188
|
|
263
189
|
nagiosharder downtime aux1 15
|
264
190
|
nagiosharder downtime aux1/http 15
|
@@ -266,12 +192,6 @@ COMMANDS:
|
|
266
192
|
nagiosharder problems
|
267
193
|
nagiosharder problems http-services
|
268
194
|
|
269
|
-
nagiosharder acknowledged
|
270
|
-
nagiosharder acked http-services
|
271
|
-
|
272
|
-
nagiosharder muted
|
273
|
-
nagiosharder muted http-services
|
274
|
-
|
275
195
|
nagiosharder triage
|
276
196
|
nagiosharder unhandled
|
277
197
|
nagiosharder unhandled http-services
|
data/nagiosharder.gemspec
CHANGED
@@ -3,10 +3,10 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "nagiosharder"
|
6
|
-
s.version = "0.4.0
|
6
|
+
s.version = "0.4.0"
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
|
-
s.authors = ["Josh Nichols"
|
9
|
-
s.email = ["josh@technicalpickles.com"
|
8
|
+
s.authors = ["Josh Nichols"]
|
9
|
+
s.email = ["josh@technicalpickles.com"]
|
10
10
|
s.homepage = "http://github.com/railsmachine/nagiosharder"
|
11
11
|
s.summary = %q{Nagios access at your ruby fingertips}
|
12
12
|
s.description = %q{Nagios access at your ruby fingertips}
|
@@ -18,8 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.add_dependency 'activesupport'
|
19
19
|
s.add_dependency 'i18n'
|
20
20
|
s.add_dependency 'terminal-table'
|
21
|
-
s.add_dependency 'httparty', '~> 0.
|
22
|
-
s.add_dependency 'hashie', '~> 1.
|
21
|
+
s.add_dependency 'httparty', '~> 0.6.1'
|
22
|
+
s.add_dependency 'hashie', '~> 1.0.0'
|
23
23
|
s.add_development_dependency "rspec", ">= 1.2.9"
|
24
24
|
|
25
25
|
s.files = `git ls-files`.split("\n")
|
metadata
CHANGED
@@ -1,154 +1,153 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagiosharder
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Josh Nichols
|
9
|
-
- Jesse Newland
|
10
14
|
autorequire:
|
11
15
|
bindir: bin
|
12
16
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
17
|
+
|
18
|
+
date: 2012-01-23 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
16
22
|
name: rest-client
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.6.1
|
23
|
-
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
25
|
none: false
|
27
|
-
requirements:
|
26
|
+
requirements:
|
28
27
|
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 13
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 6
|
33
|
+
- 1
|
30
34
|
version: 1.6.1
|
31
|
-
- !ruby/object:Gem::Dependency
|
32
|
-
name: nokogiri
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
|
-
requirements:
|
36
|
-
- - ! '>='
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: '0'
|
39
35
|
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: nokogiri
|
40
39
|
prerelease: false
|
41
|
-
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
55
49
|
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: activesupport
|
56
53
|
prerelease: false
|
57
|
-
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- -
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
none: false
|
67
|
-
requirements:
|
68
|
-
- - ! '>='
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '0'
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
version: "0"
|
71
63
|
type: :runtime
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: i18n
|
72
67
|
prerelease: false
|
73
|
-
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
none: false
|
83
|
-
requirements:
|
84
|
-
- - ! '>='
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: '0'
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
87
77
|
type: :runtime
|
78
|
+
version_requirements: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: terminal-table
|
88
81
|
prerelease: false
|
89
|
-
|
90
|
-
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
none: false
|
99
|
-
requirements:
|
100
|
-
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 0.8.3
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
103
91
|
type: :runtime
|
92
|
+
version_requirements: *id005
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: httparty
|
104
95
|
prerelease: false
|
105
|
-
|
96
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
106
97
|
none: false
|
107
|
-
requirements:
|
98
|
+
requirements:
|
108
99
|
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
- - ~>
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: 1.2.0
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
hash: 5
|
102
|
+
segments:
|
103
|
+
- 0
|
104
|
+
- 6
|
105
|
+
- 1
|
106
|
+
version: 0.6.1
|
119
107
|
type: :runtime
|
108
|
+
version_requirements: *id006
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: hashie
|
120
111
|
prerelease: false
|
121
|
-
|
112
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
122
113
|
none: false
|
123
|
-
requirements:
|
114
|
+
requirements:
|
124
115
|
- - ~>
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
|
127
|
-
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
hash: 23
|
118
|
+
segments:
|
119
|
+
- 1
|
120
|
+
- 0
|
121
|
+
- 0
|
122
|
+
version: 1.0.0
|
123
|
+
type: :runtime
|
124
|
+
version_requirements: *id007
|
125
|
+
- !ruby/object:Gem::Dependency
|
128
126
|
name: rspec
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
|
-
requirements:
|
132
|
-
- - ! '>='
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 1.2.9
|
135
|
-
type: :development
|
136
127
|
prerelease: false
|
137
|
-
|
138
|
-
none: false
|
139
|
-
requirements:
|
140
|
-
- -
|
141
|
-
- !ruby/object:Gem::Version
|
128
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
hash: 13
|
134
|
+
segments:
|
135
|
+
- 1
|
136
|
+
- 2
|
137
|
+
- 9
|
142
138
|
version: 1.2.9
|
139
|
+
type: :development
|
140
|
+
version_requirements: *id008
|
143
141
|
description: Nagios access at your ruby fingertips
|
144
|
-
email:
|
142
|
+
email:
|
145
143
|
- josh@technicalpickles.com
|
146
|
-
|
147
|
-
executables:
|
144
|
+
executables:
|
148
145
|
- nagiosharder
|
149
146
|
extensions: []
|
147
|
+
|
150
148
|
extra_rdoc_files: []
|
151
|
-
|
149
|
+
|
150
|
+
files:
|
152
151
|
- .document
|
153
152
|
- .gitignore
|
154
153
|
- Gemfile
|
@@ -159,30 +158,40 @@ files:
|
|
159
158
|
- bin/nagiosharder
|
160
159
|
- lib/nagiosharder.rb
|
161
160
|
- lib/nagiosharder/cli.rb
|
162
|
-
- lib/nagiosharder/filters.rb
|
163
161
|
- nagiosharder.gemspec
|
162
|
+
has_rdoc: true
|
164
163
|
homepage: http://github.com/railsmachine/nagiosharder
|
165
164
|
licenses: []
|
165
|
+
|
166
166
|
post_install_message:
|
167
167
|
rdoc_options: []
|
168
|
-
|
168
|
+
|
169
|
+
require_paths:
|
169
170
|
- lib
|
170
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
171
172
|
none: false
|
172
|
-
requirements:
|
173
|
-
- -
|
174
|
-
- !ruby/object:Gem::Version
|
175
|
-
|
176
|
-
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
hash: 3
|
177
|
+
segments:
|
178
|
+
- 0
|
179
|
+
version: "0"
|
180
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
181
|
none: false
|
178
|
-
requirements:
|
179
|
-
- -
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
hash: 3
|
186
|
+
segments:
|
187
|
+
- 0
|
188
|
+
version: "0"
|
182
189
|
requirements: []
|
190
|
+
|
183
191
|
rubyforge_project: nagiosharder
|
184
|
-
rubygems_version: 1.
|
192
|
+
rubygems_version: 1.4.2
|
185
193
|
signing_key:
|
186
194
|
specification_version: 3
|
187
195
|
summary: Nagios access at your ruby fingertips
|
188
196
|
test_files: []
|
197
|
+
|
data/lib/nagiosharder/filters.rb
DELETED
@@ -1,140 +0,0 @@
|
|
1
|
-
module Nagiosharder
|
2
|
-
module Filters
|
3
|
-
|
4
|
-
# irb> Nagiosharder::Filters.value(:host)
|
5
|
-
# => 0
|
6
|
-
# irb> Nagiosharder::Filters.value(:host, :state_acknowledged)
|
7
|
-
# => 4
|
8
|
-
# irb> Nagiosharder::Filters.value(:host, :state_acknowledged, :checks_disabled)
|
9
|
-
# => 20
|
10
|
-
def self.value(type, *args)
|
11
|
-
args.each.inject(0) do |i, arg|
|
12
|
-
begin
|
13
|
-
i += const_get("#{type}_#{arg}".upcase)
|
14
|
-
rescue NameError
|
15
|
-
i
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
#/********************* EXTENDED INFO CGI DISPLAY TYPES *********************/
|
21
|
-
|
22
|
-
DISPLAY_PROCESS_INFO=0
|
23
|
-
DISPLAY_HOST_INFO=1
|
24
|
-
DISPLAY_SERVICE_INFO=2
|
25
|
-
DISPLAY_COMMENTS=3
|
26
|
-
DISPLAY_PERFORMANCE=4
|
27
|
-
DISPLAY_HOSTGROUP_INFO=5
|
28
|
-
DISPLAY_DOWNTIME=6
|
29
|
-
DISPLAY_SCHEDULING_QUEUE=7
|
30
|
-
DISPLAY_SERVICEGROUP_INFO=8
|
31
|
-
|
32
|
-
|
33
|
-
#/************************ COMMAND CGI COMMAND MODES *************************/
|
34
|
-
|
35
|
-
CMDMODE_NONE=0
|
36
|
-
CMDMODE_REQUEST=1
|
37
|
-
CMDMODE_COMMIT=2
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
#/******************** HOST AND SERVICE NOTIFICATION TYPES ******************/
|
42
|
-
|
43
|
-
NOTIFICATION_ALL=0 #/* all service and host notifications */
|
44
|
-
NOTIFICATION_SERVICE_ALL=1 #/* all types of service notifications */
|
45
|
-
NOTIFICATION_HOST_ALL=2 #/* all types of host notifications */
|
46
|
-
NOTIFICATION_SERVICE_WARNING=4
|
47
|
-
NOTIFICATION_SERVICE_UNKNOWN=8
|
48
|
-
NOTIFICATION_SERVICE_CRITICAL=16
|
49
|
-
NOTIFICATION_SERVICE_RECOVERY=32
|
50
|
-
NOTIFICATION_HOST_DOWN=64
|
51
|
-
NOTIFICATION_HOST_UNREACHABLE=128
|
52
|
-
NOTIFICATION_HOST_RECOVERY=256
|
53
|
-
NOTIFICATION_SERVICE_ACK=512
|
54
|
-
NOTIFICATION_HOST_ACK=1024
|
55
|
-
NOTIFICATION_SERVICE_FLAP=2048
|
56
|
-
NOTIFICATION_HOST_FLAP=4096
|
57
|
-
NOTIFICATION_SERVICE_CUSTOM=8192
|
58
|
-
NOTIFICATION_HOST_CUSTOM=16384
|
59
|
-
|
60
|
-
|
61
|
-
#/********************** HOST AND SERVICE ALERT TYPES **********************/
|
62
|
-
|
63
|
-
HISTORY_ALL=0 #/* all service and host alert */
|
64
|
-
HISTORY_SERVICE_ALL=1 #/* all types of service alerts */
|
65
|
-
HISTORY_HOST_ALL=2 #/* all types of host alerts */
|
66
|
-
HISTORY_SERVICE_WARNING=4
|
67
|
-
HISTORY_SERVICE_UNKNOWN=8
|
68
|
-
HISTORY_SERVICE_CRITICAL=16
|
69
|
-
HISTORY_SERVICE_RECOVERY=32
|
70
|
-
HISTORY_HOST_DOWN=64
|
71
|
-
HISTORY_HOST_UNREACHABLE=128
|
72
|
-
HISTORY_HOST_RECOVERY=256
|
73
|
-
|
74
|
-
|
75
|
-
#/****************************** SORT TYPES *******************************/
|
76
|
-
|
77
|
-
SORT_NONE=0
|
78
|
-
SORT_ASCENDING=1
|
79
|
-
SORT_DESCENDING=2
|
80
|
-
|
81
|
-
|
82
|
-
#/***************************** SORT OPTIONS ******************************/
|
83
|
-
|
84
|
-
SORT_NOTHING=0
|
85
|
-
SORT_HOSTNAME=1
|
86
|
-
SORT_SERVICENAME=2
|
87
|
-
SORT_SERVICESTATUS=3
|
88
|
-
SORT_LASTCHECKTIME=4
|
89
|
-
SORT_CURRENTATTEMPT=5
|
90
|
-
SORT_STATEDURATION=6
|
91
|
-
SORT_NEXTCHECKTIME=7
|
92
|
-
SORT_HOSTSTATUS=8
|
93
|
-
SORT_HOSTURGENCY=9
|
94
|
-
|
95
|
-
|
96
|
-
#/****************** HOST AND SERVICE FILTER PROPERTIES *******************/
|
97
|
-
|
98
|
-
HOST_SCHEDULED_DOWNTIME=1
|
99
|
-
HOST_NO_SCHEDULED_DOWNTIME=2
|
100
|
-
HOST_STATE_ACKNOWLEDGED=4
|
101
|
-
HOST_STATE_UNACKNOWLEDGED=8
|
102
|
-
HOST_CHECKS_DISABLED=16
|
103
|
-
HOST_CHECKS_ENABLED=32
|
104
|
-
HOST_EVENT_HANDLER_DISABLED=64
|
105
|
-
HOST_EVENT_HANDLER_ENABLED=128
|
106
|
-
HOST_FLAP_DETECTION_DISABLED=256
|
107
|
-
HOST_FLAP_DETECTION_ENABLED=512
|
108
|
-
HOST_IS_FLAPPING=1024
|
109
|
-
HOST_IS_NOT_FLAPPING=2048
|
110
|
-
HOST_NOTIFICATIONS_DISABLED=4096
|
111
|
-
HOST_NOTIFICATIONS_ENABLED=8192
|
112
|
-
HOST_PASSIVE_CHECKS_DISABLED=16384
|
113
|
-
HOST_PASSIVE_CHECKS_ENABLED=32768
|
114
|
-
HOST_PASSIVE_CHECK=65536
|
115
|
-
HOST_ACTIVE_CHECK=131072
|
116
|
-
HOST_HARD_STATE=262144
|
117
|
-
HOST_SOFT_STATE=524288
|
118
|
-
|
119
|
-
SERVICE_SCHEDULED_DOWNTIME=1
|
120
|
-
SERVICE_NO_SCHEDULED_DOWNTIME=2
|
121
|
-
SERVICE_STATE_ACKNOWLEDGED=4
|
122
|
-
SERVICE_STATE_UNACKNOWLEDGED=8
|
123
|
-
SERVICE_CHECKS_DISABLED=16
|
124
|
-
SERVICE_CHECKS_ENABLED=32
|
125
|
-
SERVICE_EVENT_HANDLER_DISABLED=64
|
126
|
-
SERVICE_EVENT_HANDLER_ENABLED=128
|
127
|
-
SERVICE_FLAP_DETECTION_ENABLED=256
|
128
|
-
SERVICE_FLAP_DETECTION_DISABLED=512
|
129
|
-
SERVICE_IS_FLAPPING=1024
|
130
|
-
SERVICE_IS_NOT_FLAPPING=2048
|
131
|
-
SERVICE_NOTIFICATIONS_DISABLED=4096
|
132
|
-
SERVICE_NOTIFICATIONS_ENABLED=8192
|
133
|
-
SERVICE_PASSIVE_CHECKS_DISABLED=16384
|
134
|
-
SERVICE_PASSIVE_CHECKS_ENABLED=32768
|
135
|
-
SERVICE_PASSIVE_CHECK=65536
|
136
|
-
SERVICE_ACTIVE_CHECK=131072
|
137
|
-
SERVICE_HARD_STATE=262144
|
138
|
-
SERVICE_SOFT_STATE=524288
|
139
|
-
end
|
140
|
-
end
|