class Nucleon::Action::Agent::Manager
Public Class Methods
describe()
click to toggle source
Calls superclass method
# File lib/nucleon/action/agent/manager.rb 10 def self.describe 11 super(nil, :manager, 1100) 12 end
Public Instance Methods
arguments()
click to toggle source
# File lib/nucleon/action/agent/manager.rb 29 def arguments 30 [ :sleep_interval ] 31 end
configure()
click to toggle source
Calls superclass method
# File lib/nucleon/action/agent/manager.rb 17 def configure 18 super do 19 codes :network_failure 20 21 register_int :sleep_interval, 15 22 register_int :network_retries, 3 23 register_int :agent_restart_retries, 2 24 end 25 end
execute()
click to toggle source
Calls superclass method
# File lib/nucleon/action/agent/manager.rb 36 def execute 37 super do |node| 38 ensure_node(node) do 39 network_retry = 0 40 agent_restart_retry = {} 41 42 while status == code.success 43 if network.load({ :remote => settings[:net_remote], :pull => true }) 44 network_retry = 0 45 46 node.agents.each do |provider, agent_options| 47 agent_restart_retry[provider] = 0 unless agent_restart_retry.has_key?(provider) 48 49 unless provider == :agent_manager || node.agent_running(provider) 50 if agent_restart_retry[provider] < settings[:agent_restart_retries] 51 command = "corl #{agent_options[:args]} --log_level=warn" 52 result = node.exec({ :commands => [ command ] }).first 53 54 if result.status == code.success 55 agent_restart_retry[provider] = 0 56 else 57 agent_restart_retry[provider] += 1 58 end 59 end 60 end 61 end 62 elsif network_retry < settings[:network_retries] 63 network_retry += 1 64 else 65 myself.status = code.network_failure 66 end 67 sleep settings[:sleep_interval] 68 end 69 end 70 end 71 end