module Utils::Sensu
Utility methods for interacting with Sensu
Public Instance Methods
calculate_expiration(duration, units)
click to toggle source
# File lib/utils/sensu.rb, line 4 def calculate_expiration(duration, units) if units expiration = case units when 's' duration when 'm' duration * 60 when 'h' duration * 3600 when 'd' duration * 3600 * 24 end human_duration = "#{duration}#{units}" else expiration = 3600 human_duration = '1h' end [expiration, human_duration] end
check_alias(client, check)
click to toggle source
# File lib/utils/sensu.rb, line 24 def check_alias(client, check) "#{client}:#{check && !check.empty? ? check : '*'}" end
silence_post_data(user, expiration, client, check)
click to toggle source
# File lib/utils/sensu.rb, line 40 def silence_post_data(user, expiration, client, check) data = { creator: user.name, expire: expiration, reason: 'Because Lita says so!', subscription: "client:#{client}" } data[:check] = check if !check.nil? && check != '' MultiJson.dump(data) end
sorted_by(body, attribute)
click to toggle source
# File lib/utils/sensu.rb, line 28 def sorted_by(body, attribute) MultiJson.load(body, symbolize_keys: true).sort do |a, b| a[attribute.to_sym] <=> b[attribute.to_sym] end end
sorted_events(body)
click to toggle source
# File lib/utils/sensu.rb, line 34 def sorted_events(body) MultiJson.load(body, symbolize_keys: true).sort do |a, b| a[:client][:name] <=> b[:client][:name] end end
Private Instance Methods
add_domain(client)
click to toggle source
# File lib/utils/sensu.rb, line 53 def add_domain(client) if config.domain && !client.include?(config.domain) if config.domain[0, 1] == '.' client + config.domain else client + '.' + config.domain end else client end end