class Edwig::Munin::PartnerOperationalStatus

Public Instance Methods

config() click to toggle source
# File lib/edwig/munin/partner_operational_status.rb, line 18
def config
  config = {
    host_name: server,
    graph_title: "Partners by status",
    graph_order: keys.join(' '),
    graph_info: "Represent Partner count by operational statuses",
    graph_args: "--base 1000 -l 0",
    graph_vlabel: "count"
  }

  keys.each_with_index do |key, index|
    label = key.capitalize
    config["#{key}.label"] = label
    config["#{key}.draw"] = index == 0 ? 'AREA' : 'STACK'
    config["#{key}.info"] = "The number of Partner in #{label} status"
  end

  config
end
keys() click to toggle source
# File lib/edwig/munin/partner_operational_status.rb, line 38
def keys
  @keys ||= %w{up down unknown}
end
values() click to toggle source
# File lib/edwig/munin/partner_operational_status.rb, line 3
def values
  partners = RestClient.get("http://#{server}/#{referential}/partners", {content_type: :json, :Authorization => "Token token=#{token}"})
  partnersTab = JSON.parse(partners)

  counts = {}
  keys.each { |k| counts[k] = 0 }

  partnersTab.each do |partner|
          operationalState = partner['PartnerStatus']['OperationalStatus'] || partner['PartnerStatus']['OperationnalStatus']
    counts[operationalState] += 1
  end

  counts
end