Method: Oxidized::Nodes#load

Defined in:
lib/oxidized/nodes.rb

#load(node_want = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/oxidized/nodes.rb', line 9

def load(node_want = nil)
  with_lock do
    new = []
    @source = Oxidized.config.source.default
    Oxidized.mgr.add_source(@source) || raise(MethodNotFound, "cannot load node source '#{@source}', not found")
    Oxidized.logger.info "lib/oxidized/nodes.rb: Loading nodes"
    nodes = Oxidized.mgr.source[@source].new.load node_want
    nodes.each do |node|
      # we want to load specific node(s), not all of them
      next unless node_want? node_want, node

      begin
        node_obj = Node.new node
        new.push node_obj
      rescue ModelNotFound => err
        Oxidized.logger.error "node %s raised %s with message '%s'" % [node, err.class, err.message]
      rescue Resolv::ResolvError => err
        Oxidized.logger.error "node %s is not resolvable, raised %s with message '%s'" % [node, err.class, err.message]
      end
    end
    size.zero? ? replace(new) : update_nodes(new)
    Oxidized.logger.info "lib/oxidized/nodes.rb: Loaded #{size} nodes"
  end
end