Class: Monitors::Cloud

Inherits:
BaseMonitor show all
Defined in:
lib/poolparty/monitors/monitors/cloud_monitor.rb

Instance Attribute Summary

Attributes inherited from BaseMonitor

#last_cloud_loaded_time, #log_file_path

Instance Method Summary collapse

Methods inherited from BaseMonitor

#after_close_callbacks, #before_close_callbacks, #env, inherited, #initialize, #log, #my_cloud

Constructor Details

This class inherits a constructor from Monitors::BaseMonitor

Instance Method Details

#get(_unused = nil) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/poolparty/monitors/monitors/cloud_monitor.rb', line 9

def get(_unused=nil)
  {   :name => my_cloud.name, 
      :minimum_instances => my_cloud.minimum_instances, 
      :maximum_instances => my_cloud.maximum_instances,
      :remoter_base => my_cloud.remoter_base,
      :keypair => my_cloud.keypair
  }
end

#nominations(_unused = nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/poolparty/monitors/monitors/cloud_monitor.rb', line 18

def nominations(_unused=nil)
  running_nodes = my_cloud.nodes(:status => "running")
  nominations = []
  running_nodes.each do |node|
    timeout(10) do
      log "Checking with #{node.internal_ip} for nominations: #{open("http://#{node.internal_ip}:8642/stats/get_nominations").read}"
      nominations << begin
        JSON.parse(open("http://#{node.internal_ip}:8642/stats/nominations").read) || "none"
      rescue
        log "Error when connecting to #{node.internal_ip}: #{e.inspect}"
        "none"
      end
    end
  end.histogram
end