class Check

Public Instance Methods

async_jobs() click to toggle source
   # File lib/cloudstack-nagios/commands/check.rb
78 def async_jobs
79    jobs = client.list_async_jobs(listall: true)
80    outstanding_jobs = jobs.select {|job| job['jobstatus'] == 0 }
81    if outstanding_jobs.size < options[:warning]
82      code = 0
83    elsif outstanding_jobs.size < options[:critical]
84      code = 1
85    else
86      code = 2
87    end
88    puts "async_jobs #{RETURN_CODES[code]} - jobs = #{outstanding_jobs.size} | jobs=#{outstanding_jobs.size}"
89    exit code
90 end
snapshots() click to toggle source
    # File lib/cloudstack-nagios/commands/check.rb
103 def snapshots
104   snapshots = client.list_snapshots(listall: true)
105   client.list_projects(listall: true).each do |p|
106     snapshots = snapshots.concat(client.list_snapshots(listall: true, project_id: p['id']))
107   end
108 
109   not_backed_up = snapshots.select{|s| s['state'] != 'BackedUp' }
110   warnings = []
111   critical = []
112 
113   not_backed_up.each do |s|
114     age = (Time.now - Time.parse(s['created'])) / 3600
115     warnings << s if age > options[:warning]
116     critical << s if age > options[:critical]
117   end
118 
119   code = if critical.size > options[:critical]
120     2
121   elsif warnings.size > options[:warning]
122     1
123   else
124     0
125   end
126   puts "snapshots #{RETURN_CODES[code]} - warnings = #{warnings.size}, critical = #{critical.size} | warnings=#{warnings.size} critical=#{critical.size}"
127   exit code
128 end
storage_pool() click to toggle source
   # File lib/cloudstack-nagios/commands/check.rb
48 def storage_pool
49    pool = client.list_storage_pools(name: options[:pool_name], zone: options[:zone]).first
50    # calculate overprovisioning only for network file systems
51    total_size = case pool['type']
52    when 'NetworkFilesystem'
53       pool['disksizetotal'] * options[:over_provisioning]
54    else
55       pool['disksizetotal']
56    end
57    data = check_data(
58       total_size,
59       pool['disksizeallocated'].to_f,
60       options[:warning],
61       options[:critical]
62    )
63    puts "storage_pool #{options[:pool_name]} #{RETURN_CODES[data[0]]} - usage = #{data[1]}% | usage=#{pool['disksizeused']} usage_perc=#{data[1]}%"
64    exit data[0]
65 end