class Pwrake::HostInfo
Attributes
continuous_fail[R]
group[R]
id[R]
idle_cores[RW]
ipaddr[R]
name[R]
ncore[R]
steal_flag[R]
weight[R]
Public Class Methods
local_ip()
click to toggle source
# File lib/pwrake/option/host_map.rb, line 9 def self.local_ip @@local_ip ||= Socket.getifaddrs.select{|a| a.addr.ip?}.map{|a| a.addr.ip_address} end
new(name,id,ncore,weight,group=nil)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 14 def initialize(name,id,ncore,weight,group=nil) @name = name @ncore = ncore || 1 @weight = weight || 1.0 @group = group || 0 @id = id @continuous_fail = 0 @total_fail = 0 @count_task = 0 @ipaddr = [] begin @ipaddr << IPSocket.getaddress(@name) rescue end end
Public Instance Methods
accept_core(use_cores)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 99 def accept_core(use_cores) use_cores <= @idle_cores end
add_line(ncore=nil,weight=nil,group=nil)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 35 def add_line(ncore=nil,weight=nil,group=nil) ncore ||= 1 weight ||= 1.0 group ||= 0 if @group != group raise "different group=#{group} for host=#{@name}" end @weight = (@weight*@ncore + weight*ncore)/(@ncore+ncore) @ncore += ncore end
busy(n)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 65 def busy(n) @busy_cores += n @idle_cores -= n end
count_result(result)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 85 def count_result(result) @count_task += 1 case result when "end" @continuous_fail = 0 when "fail" @continuous_fail += 1 @total_fail += 1 else raise "unknown result: #{result}" end @continuous_fail end
idle(n)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 60 def idle(n) @busy_cores -= n @idle_cores += n end
local?()
click to toggle source
# File lib/pwrake/option/host_map.rb, line 46 def local? ipa = IPSocket.getaddress(@name) HostInfo.local_ip.include?(ipa) end
retire(n)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 70 def retire(n) @idle_cores -= n end
retired?()
click to toggle source
# File lib/pwrake/option/host_map.rb, line 74 def retired? @idle_cores + @busy_cores < 1 # all retired end
set_ip(ipa)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 56 def set_ip(ipa) @ipaddr.push(ipa) end
set_ncore(n)
click to toggle source
# File lib/pwrake/option/host_map.rb, line 51 def set_ncore(n) @busy_cores = 0 @ncore = @idle_cores = n end
steal_phase() { |self| ... }
click to toggle source
# File lib/pwrake/option/host_map.rb, line 78 def steal_phase @steal_flag = true t = yield(self) @steal_flag = false t end