class Snmp2mkr::HostManager
Attributes
persist_file[R]
Public Class Methods
new(persist_file: nil)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 8 def initialize(persist_file: nil) @lock = Mutex.new @host_id_lock = Mutex.new @hosts = {} @vhosts = {} @persist_file = persist_file if @persist_file && File.exist?(@persist_file) @persisted = YAML.load_file(@persist_file) else @persisted = {host_ids: {}} end end
Public Instance Methods
add_host(host)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 24 def add_host(host) @lock.synchronize do @hosts[host.name] = host end end
each_host(&block)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 44 def each_host(&block) @hosts.each_value(&block) end
each_vhost() { |vhost| ... }
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 48 def each_vhost return to_enum(__method__) unless block_given? @vhosts.each_value do |hs| hs.each do |vhost| yield vhost end end end
host(host)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 30 def host(host) @hosts[host.kind_of?(Host) ? host.name : host.to_s] end
mackerel_host_id(vh)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 57 def mackerel_host_id(vh) @persisted[:host_ids][vh.name] end
persist()
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 80 def persist @lock.synchronize do File.write persist_file, "#{@persisted.to_yaml}\n" end end
set_mackerel_host_id(vh, host_id)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 61 def set_mackerel_host_id(vh, host_id) @host_id_lock.synchronize do @persisted[:host_ids][vh.name] = host_id persist end end
set_mackerel_host_id_safe(vh) { |vh| ... }
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 68 def set_mackerel_host_id_safe(vh) @host_id_lock.synchronize do host_id = mackerel_host_id(vh) return host_id if host_id host_id = yield(vh) raise TypeError unless host_id @persisted[:host_ids][vh.name] = host_id.to_s persist return host_id end end
set_vhosts(name, vhosts)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 34 def set_vhosts(name, vhosts) @lock.synchronize do @vhosts[host(name).name] = vhosts end end
vhosts(name)
click to toggle source
# File lib/snmp2mkr/host_manager.rb, line 40 def vhosts(name) @vhosts[host(name).name] end