Skip to content
This repository has been archived by the owner on Jan 1, 2020. It is now read-only.

Commit

Permalink
Merge pull request #685 from portertech/severities
Browse files Browse the repository at this point in the history
fixed handler severity filtering w/ resolve action
  • Loading branch information
portertech committed Jan 17, 2014
2 parents e703266 + fda9ec0 commit e2bfb5e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
18 changes: 15 additions & 3 deletions lib/sensu/server.rb
Expand Up @@ -197,7 +197,6 @@ def derive_handlers(handler_list)
def event_handlers(event)
handler_list = Array((event[:check][:handlers] || event[:check][:handler]) || 'default')
handlers = derive_handlers(handler_list)
event_severity = SEVERITIES[event[:check][:status]] || 'unknown'
handlers.select do |handler|
if event[:action] == :flapping && !handler[:handle_flapping]
@logger.info('handler does not handle flapping events', {
Expand All @@ -213,8 +212,21 @@ def event_handlers(event)
})
next
end
if handler.has_key?(:severities) && !handler[:severities].include?(event_severity)
unless event[:action] == :resolve
if handler.has_key?(:severities)
handle = case event[:action]
when :resolve
event[:check][:history].reverse[1..-1].any? do |status|
if status == 0
break
end
severity = SEVERITIES[status] || 'unknown'
handler[:severities].include?(severity)
end
else
severity = SEVERITIES[event[:check][:status]] || 'unknown'
handler[:severities].include?(severity)
end
unless handle
@logger.debug('handler does not handle event severity', {
:event => event,
:handler => handler
Expand Down
9 changes: 9 additions & 0 deletions spec/server_spec.rb
Expand Up @@ -190,12 +190,21 @@
]
}
@server.event_handlers(event).should eq(expected)
event[:check][:status] = 42
@server.event_handlers(event).should eq(expected)
event[:check][:status] = 0
event[:check][:history] = [2, 0]
event[:action] = :resolve
@server.event_handlers(event).should eq(expected)
event[:check][:history] = [0, 2, 1, 0]
@server.event_handlers(event).should eq(expected)
event[:action] = :flapping
@server.event_handlers(event).should be_empty
event[:check].delete(:handlers)
event[:check][:handler] = 'severities'
event[:check][:history] = [1, 0]
event[:action] = :resolve
@server.event_handlers(event).should be_empty
event[:check][:handler] = 'flapping'
expected = [
{
Expand Down

0 comments on commit e2bfb5e

Please sign in to comment.