Class: Dopi::Node

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/dopi/node.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node_parser, plan) ⇒ Node

Returns a new instance of Node.



16
17
18
19
20
21
# File 'lib/dopi/node.rb', line 16

def initialize(node_parser, plan)
  @node_parser = node_parser
  @plan = plan
  @addresses = {}
  @node_info = {}
end

Instance Attribute Details

#node_infoObject

Returns the value of attribute node_info.



14
15
16
# File 'lib/dopi/node.rb', line 14

def node_info
  @node_info
end

Instance Method Details

#address(port) ⇒ Object



39
40
41
42
# File 'lib/dopi/node.rb', line 39

def address(port)
  @addresses[port] ||= addresses.find {|addr| connection_possible?(addr,port)} or
    raise NodeConnectionError, "Unable to establish a connection for node #{name} on port #{port} over #{addresses.join(', ')}"
end

#addressesObject



35
36
37
# File 'lib/dopi/node.rb', line 35

def addresses
  [ fqdn, plan_ip_addresses, node_info_ip_addresses ].flatten.uniq
end

#reset_address(port = nil) ⇒ Object



44
45
46
# File 'lib/dopi/node.rb', line 44

def reset_address(port = nil)
  port.nil? ? @addresses = {} : @addresses.delete(port)
end