Class: Pwrake::HostInfo
- Inherits:
-
Object
- Object
- Pwrake::HostInfo
- Defined in:
- lib/pwrake/option/host_map.rb
Constant Summary collapse
- @@local_ip =
nil
Instance Attribute Summary collapse
-
#group ⇒ Object
readonly
Returns the value of attribute group.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#idle_cores ⇒ Object
Returns the value of attribute idle_cores.
-
#ipaddr ⇒ Object
readonly
Returns the value of attribute ipaddr.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#ncore ⇒ Object
readonly
Returns the value of attribute ncore.
-
#steal_flag ⇒ Object
readonly
Returns the value of attribute steal_flag.
-
#weight ⇒ Object
readonly
Returns the value of attribute weight.
Class Method Summary collapse
Instance Method Summary collapse
- #accept_core(task_name, use_cores) ⇒ Object
- #busy(n) ⇒ Object
- #decrease(n) ⇒ Object
- #idle(n) ⇒ Object
-
#initialize(name, id, ncore, weight, group = nil) ⇒ HostInfo
constructor
A new instance of HostInfo.
- #local? ⇒ Boolean
- #retire(n) ⇒ Object
- #set_ip(ipa) ⇒ Object
- #set_ncore(n) ⇒ Object
- #steal_phase ⇒ Object
- #task_result(result) ⇒ Object
Constructor Details
#initialize(name, id, ncore, weight, group = nil) ⇒ HostInfo
Returns a new instance of HostInfo.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/pwrake/option/host_map.rb', line 14 def initialize(name,id,ncore,weight,group=nil) @name = name @ncore = ncore @weight = weight || 1.0 @group = group || 0 @id = id @continuous_fail = 0 @total_fail = 0 @count_task = 0 @ipaddr = [] end |
Instance Attribute Details
#group ⇒ Object (readonly)
Returns the value of attribute group.
26 27 28 |
# File 'lib/pwrake/option/host_map.rb', line 26 def group @group end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
26 27 28 |
# File 'lib/pwrake/option/host_map.rb', line 26 def id @id end |
#idle_cores ⇒ Object
Returns the value of attribute idle_cores.
28 29 30 |
# File 'lib/pwrake/option/host_map.rb', line 28 def idle_cores @idle_cores end |
#ipaddr ⇒ Object (readonly)
Returns the value of attribute ipaddr.
27 28 29 |
# File 'lib/pwrake/option/host_map.rb', line 27 def ipaddr @ipaddr end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
26 27 28 |
# File 'lib/pwrake/option/host_map.rb', line 26 def name @name end |
#ncore ⇒ Object (readonly)
Returns the value of attribute ncore.
26 27 28 |
# File 'lib/pwrake/option/host_map.rb', line 26 def ncore @ncore end |
#steal_flag ⇒ Object (readonly)
Returns the value of attribute steal_flag.
26 27 28 |
# File 'lib/pwrake/option/host_map.rb', line 26 def steal_flag @steal_flag end |
#weight ⇒ Object (readonly)
Returns the value of attribute weight.
26 27 28 |
# File 'lib/pwrake/option/host_map.rb', line 26 def weight @weight end |
Class Method Details
.local_ip ⇒ Object
9 10 11 12 |
# 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 |
Instance Method Details
#accept_core(task_name, use_cores) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/pwrake/option/host_map.rb', line 90 def accept_core(task_name, use_cores) if @reserved_task if @reserved_task == task_name if use_cores <= @idle_cores Log.info "use reserved: #{@name} for #{task_name} (#{use_cores} cores)" @reserved_task = nil return :ok end end else if use_cores <= @idle_cores return :ok elsif use_cores > 1 @reserved_task = task_name Log.info "reserve host: #{@name} for #{task_name} (#{use_cores} cores)" return :reserve end end :busy end |
#busy(n) ⇒ Object
53 54 55 56 57 |
# File 'lib/pwrake/option/host_map.rb', line 53 def busy(n) @busy_cores += n @idle_cores -= n @idle_cores + @busy_cores < 1 # all retired end |
#decrease(n) ⇒ Object
59 60 61 62 |
# File 'lib/pwrake/option/host_map.rb', line 59 def decrease(n) @idle_cores -= n @idle_cores + @busy_cores < 1 # all retired end |
#idle(n) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/pwrake/option/host_map.rb', line 45 def idle(n) @busy_cores -= n @idle_cores += n @idle_cores -= @retire @retire = 0 @idle_cores + @busy_cores < 1 # all retired end |
#local? ⇒ Boolean
30 31 32 33 |
# File 'lib/pwrake/option/host_map.rb', line 30 def local? ipa = IPSocket.getaddress(@name) HostInfo.local_ip.include?(ipa) end |
#retire(n) ⇒ Object
71 72 73 74 |
# File 'lib/pwrake/option/host_map.rb', line 71 def retire(n) @retire += n Log.debug "retire n=#{n}, host=#{@name}" end |
#set_ip(ipa) ⇒ Object
41 42 43 |
# File 'lib/pwrake/option/host_map.rb', line 41 def set_ip(ipa) @ipaddr.push(ipa) end |
#set_ncore(n) ⇒ Object
35 36 37 38 39 |
# File 'lib/pwrake/option/host_map.rb', line 35 def set_ncore(n) @retire = 0 @busy_cores = 0 @ncore = @idle_cores = n end |
#steal_phase ⇒ Object
64 65 66 67 68 69 |
# File 'lib/pwrake/option/host_map.rb', line 64 def steal_phase @steal_flag = true t = yield(self) @steal_flag = false t end |
#task_result(result) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/pwrake/option/host_map.rb', line 76 def task_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 |