Class: Oxidized::Nodes
- Inherits:
-
Array
- Object
- Array
- Oxidized::Nodes
- Defined in:
- lib/oxidized/nodes.rb
Instance Attribute Summary collapse
-
#source ⇒ Object
Returns the value of attribute source.
Instance Method Summary collapse
- #fetch(node, group) ⇒ Object
-
#find_node_index(node) ⇒ Fixnum
Index number of node in Nodes.
-
#get ⇒ String
Node from the head of the array.
- #list ⇒ Object
- #load(node_want = nil) ⇒ Object
- #next(node, opt = {}) ⇒ Object (also: #top)
- #show(node) ⇒ Object
Instance Attribute Details
#source ⇒ Object
Returns the value of attribute source.
7 8 9 |
# File 'lib/oxidized/nodes.rb', line 7 def source @source end |
Instance Method Details
#fetch(node, group) ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/oxidized/nodes.rb', line 48 def fetch node, group with_lock do i = find_node_index node output = self[i].output.new raise Oxidized::NotSupported unless output.respond_to? :fetch output.fetch node, group end end |
#find_node_index(node) ⇒ Fixnum
Returns index number of node in Nodes.
82 83 84 |
# File 'lib/oxidized/nodes.rb', line 82 def find_node_index node find_index node or raise Oxidized::NodeNotFound, "unable to find '#{node}'" end |
#get ⇒ String
Returns node from the head of the array.
74 75 76 77 78 |
# File 'lib/oxidized/nodes.rb', line 74 def get with_lock do (self << shift).last end end |
#list ⇒ Object
35 36 37 38 39 |
# File 'lib/oxidized/nodes.rb', line 35 def list with_lock do map { |e| e.serialize } end end |
#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 33 |
# File 'lib/oxidized/nodes.rb', line 9 def load node_want=nil with_lock do new = [] node_want_ip = (IPAddr.new(node_want) rescue false) if node_want @source = CFG.source.default Oxidized.mgr.add_source @source Oxidized.mgr.source[@source].new.load.each do |node| # we want to load specific node(s), not all of them if node_want next unless node_want_ip == node[:ip] or node_want.match(node[:name]) end begin _node = Node.new node new.push _node rescue ModelNotFound => err Log.error "node %s raised %s with message '%s'" % [node, err.class, err.] rescue Resolv::ResolvError => err Log.error "node %s is not resolvable, raised %s with message '%s'" % [node, err.class, err.] end end size == 0 ? replace(new) : update_nodes(new) end end |
#next(node, opt = {}) ⇒ Object Also known as: top
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/oxidized/nodes.rb', line 58 def next node, opt={} if waiting.find_node_index(node) with_lock do n = del node n.user = opt['user'] n.msg = opt['msg'] n.from = opt['from'] # set last job to nil so that the node is picked for immediate update n.last = nil put n end end end |
#show(node) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/oxidized/nodes.rb', line 41 def show node with_lock do i = find_node_index node self[i].serialize end end |