class OpennebulaOnedProbe
OpennebulaOnedProbe
- XML-RPC ONED client query service implementation.
Constants
- FAILED_CONNECTIVITY
- FAILED_RESOURCE
Public Class Methods
new(opts)
click to toggle source
Calls superclass method
OpennebulaProbe::new
# File lib/probe/opennebula_oned_probe.rb, line 27 def initialize(opts) super(opts) # OpenNebula credentials @credentials = "#{@opts.username}:#{@opts.password}" @client = Client.new(@credentials, @endpoint) end
Public Instance Methods
check_crit()
click to toggle source
# File lib/probe/opennebula_oned_probe.rb, line 40 def check_crit @logger.info "Checking for basic connectivity at #{@endpoint}" pool_class_array = [VirtualNetworkPool, ImagePool, VirtualMachinePool] pool_class_array.each do |pool_class| pool = pool_class.new(@client, -1) check_pool(pool, FAILED_CONNECTIVITY) end false rescue StandardError => e @logger.error "Failed to check basic connectivity: #{e.message}" @logger.debug "#{e.backtrace.join("\n")}" return true end
check_pool(pool, msg)
click to toggle source
# File lib/probe/opennebula_oned_probe.rb, line 35 def check_pool(pool, msg) rc = pool.info fail "#{msg} #{rc.message}" if OpenNebula.is_error?(rc) end
check_resources(resources)
click to toggle source
# File lib/probe/opennebula_oned_probe.rb, line 57 def check_resources(resources) if resources.map { |x| x[:resource] }.reduce(true) { |product, resource| product && resource.nil? } @logger.info 'There are no resources to check, for details on how to specify resources see --help' return false end resources.each do |resource_hash| resource = resource_hash[:resource] next unless resource @logger.info "Looking for #{resource_hash[:resource_string]}s: #{resource.inspect}" pool = resource_hash[:resource_pool].new(@client, -1) check_pool(pool, FAILED_RESOURCE) resource.each do |resource_to_look_for| found = false pool.each do |res| check_pool(res, FAILED_RESOURCE) found = true if res.id.to_s == resource_to_look_for end fail "#{resource_hash[:resource_string].capitalize} #{resource_to_look_for} not found" unless found end end false end
check_warn()
click to toggle source
# File lib/probe/opennebula_oned_probe.rb, line 86 def check_warn @logger.info "Checking for resource availability at #{@endpoint}" resources = [] resources << { resource: @opts.storage, resource_string: 'image', resource_pool: ImagePool } resources << { resource: @opts.compute, resource_string: 'compute instance', resource_pool: VirtualMachinePool } resources << { resource: @opts.network, resource_string: 'network', resource_pool: VirtualNetworkPool } check_resources(resources) rescue StandardError => e @logger.error "Failed to check resource availability: #{e.message}" @logger.debug "#{e.backtrace.join("\n")}" return true end