class Naminori::Serf
Public Class Methods
alive?(member)
click to toggle source
# File lib/naminori/serf.rb, line 44 def alive?(member) member[:status] == "alive" end
event_message()
click to toggle source
# File lib/naminori/serf.rb, line 13 def event_message puts "event:#{ENV['SERF_EVENT']} value:#{gets}" if gets end
failed?()
click to toggle source
# File lib/naminori/serf.rb, line 25 def failed? ENV['SERF_EVENT'] == 'member-failed' end
get_alive_member_by_role(role)
click to toggle source
# File lib/naminori/serf.rb, line 33 def get_alive_member_by_role(role) members.map do |line| member = parse_member(line) target_role?(member, role) && alive?(member) ? member : nil end.compact if members end
gets()
click to toggle source
# File lib/naminori/serf.rb, line 7 def gets @@event ||= STDIN.gets.chomp.match(/(?<node>.+?)\t(?<ip>.+?)\t(?<role>.+?)\t/) rescue @@event end
join?()
click to toggle source
# File lib/naminori/serf.rb, line 17 def join? ENV['SERF_EVENT'] == 'member-join' end
leave?()
click to toggle source
# File lib/naminori/serf.rb, line 21 def leave? ENV['SERF_EVENT'] == 'member-leave' end
members()
click to toggle source
# File lib/naminori/serf.rb, line 48 def members `serf members`.split("\n") end
parse_member(member)
click to toggle source
# File lib/naminori/serf.rb, line 52 def parse_member(member) member.match(/(?<node>.+?)\s+(?<ip>.+?):[0-9]+\s+(?<status>\w+)+\s+role=(?<role>\w+)/) end
role?(role)
click to toggle source
# File lib/naminori/serf.rb, line 29 def role?(role) gets && gets[:role] == role end
target_role?(member, role)
click to toggle source
# File lib/naminori/serf.rb, line 40 def target_role?(member, role) member[:role] == role end