class Nagios::Promoo::Opennebula::Probes::VirtualMachineFailsProbe

Probe for checking ONe for FAILED virtual machines.

@author Boris Parak <parak@cesnet.cz>

Constants

FAIL_KEYWORD

Public Class Methods

declaration() click to toggle source
# File lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb, line 21
def declaration
  'virtual_machine_fails'
end
description() click to toggle source
# File lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb, line 13
def description
  ['virtual-machine-fails', 'Run a probe checking for FAILED virtual machines']
end
options() click to toggle source
# File lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb, line 17
def options
  []
end
runnable?() click to toggle source
# File lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb, line 25
def runnable?
  true
end

Public Instance Methods

run(_args = []) click to toggle source
# File lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb, line 32
def run(_args = [])
  Timeout.timeout(options[:timeout]) do
    fails = virtual_machine_pool.select { |vm| failed?(vm) }
    fails.map!(&:id)
    raise "Virtual machines #{fails.inspect} are in a FAILED state" if fails.count > 0
  end

  puts 'VMFAILS OK - Everything is hunky-dory'
rescue => ex
  puts "VMFAILS CRITICAL - #{ex.message}"
  puts ex.backtrace if options[:debug]
  exit 2
end

Private Instance Methods

failed?(vm) click to toggle source
# File lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb, line 56
def failed?(vm)
  vm.lcm_state_str.include?(FAIL_KEYWORD) || vm.state_str.include?(FAIL_KEYWORD)
end
virtual_machine_pool() click to toggle source
# File lib/nagios/promoo/opennebula/probes/virtual_machine_fails_probe.rb, line 48
def virtual_machine_pool
  vm_pool = OpenNebula::VirtualMachinePool.new(client)
  rc = vm_pool.info_all
  raise rc.message if OpenNebula.is_error?(rc)

  vm_pool
end