Sha256: 2f34a3ab55ddfd18f4eac18bf5098285099e7d3fab746286ba0d4200bdfc06ae

Contents?: true

Size: 1.32 KB

Versions: 39

Compression:

Stored size: 1.32 KB

Contents

class Capacity < CloudstackNagios::Base

  CAPACITY_TYPES = {
    0 => {name: "Memory", method_name: "memory"},
    1 => {name: "CPU", method_name: "cpu"},
    2 => {name: "Storage", method_name: "storage"},
    3 => {name: "Primary Storage", method_name: "primary_storage"},
    4 => {name: "Public IP addresses", method_name: "public_ips"},
    5 => {name: "Private IP addresses", method_name: "private_ips"},
    6 => {name: "Secondary Storage", method_name: "secondary_storage"},
    7 => {name: "VLANs", method_name: "vlans"},
    8 => {name: "Direct Attached Public IP addresses", method_name: "direct_attached_public_ips"},
    9 => {name: "Local Storage", method_name: "local_storage"}
  }

  CAPACITY_TYPES.each do |type, value|
    desc value[:method_name], "check #{value[:name].downcase} on host"
    option :zone, required: true
    define_method(value[:method_name]) { 
      capacity_check(options[:zone], type)
    }
  end

  no_commands do
    def capacity_check(zone, type)
      cap = client.list_capacity(type: type, zone: zone).first
      data = check_data(cap['capacitytotal'].to_f, cap['capacityused'].to_f, options[:warning], options[:critical])
      puts "#{CAPACITY_TYPES[type][:name]} #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{cap['capacityused']} usage_perc=#{data[1]}%"
      exit data[0]
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
cloudstack-nagios-0.18.4 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.18.3 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.18.2 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.18.1 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.18.0 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.7 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.6 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.5 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.4 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.3 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.2 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.1 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.17.0 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.16.3 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.16.2 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.16.1 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.16.0 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.15.2 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.15.1 lib/cloudstack-nagios/commands/capacity.rb
cloudstack-nagios-0.15.0 lib/cloudstack-nagios/commands/capacity.rb