Class: Bcome::Node::Resources::Inventory
- Inherits:
-
Base
- Object
- Base
- Bcome::Node::Resources::Inventory
show all
- Defined in:
- lib/objects/node/resources/inventory.rb
Instance Attribute Summary
Attributes inherited from Base
#nodes
Instance Method Summary
collapse
Methods inherited from Base
#active, #clear!, #disable, #disable!, #do_disable, #do_enable, #each, #empty?, #enable, #enable!, #first, #for_identifier, #has_active_nodes?, #is_active_resource?, #size
Constructor Details
#initialize(inventory) ⇒ Inventory
Returns a new instance of Inventory.
5
6
7
8
|
# File 'lib/objects/node/resources/inventory.rb', line 5
def initialize(inventory)
@inventory = inventory
super
end
|
Instance Method Details
#<<(node) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/objects/node/resources/inventory.rb', line 22
def <<(node)
set_overrides(@inventory, node)
if existing_node = for_identifier(node.identifier)
if existing_node.static_server? && node.dynamic_server?
@nodes.delete(existing_node)
else
duplicate_nodes[node.identifier] = duplicate_nodes[node.identifier] ? (duplicate_nodes[node.identifier] + 1) : 2
count = duplicate_nodes[node.identifier]
node.identifier = "#{node.identifier}_#{count}"
end
end
@nodes << node
end
|
#duplicate_nodes ⇒ Object
50
51
52
|
# File 'lib/objects/node/resources/inventory.rb', line 50
def duplicate_nodes
@duplicate_nodes ||= {}
end
|
#dynamic_nodes ⇒ Object
58
59
60
|
# File 'lib/objects/node/resources/inventory.rb', line 58
def dynamic_nodes
active.select(&:dynamic_server?)
end
|
#override_server_identifier(inventory, node) ⇒ Object
15
16
17
18
19
20
|
# File 'lib/objects/node/resources/inventory.rb', line 15
def override_server_identifier(inventory, node)
if inventory.override_server_identifier?
node.identifier =~ /#{inventory.override_identifier}/
node.update_identifier(Regexp.last_match(1)) if Regexp.last_match(1)
end
end
|
#rename_initial_duplicate ⇒ Object
43
44
45
46
47
48
|
# File 'lib/objects/node/resources/inventory.rb', line 43
def rename_initial_duplicate
duplicate_nodes.each do |node_identifier, _count|
node = for_identifier(node_identifier)
node.identifier = "#{node.identifier}_1"
end
end
|
#reset_duplicate_nodes! ⇒ Object
54
55
56
|
# File 'lib/objects/node/resources/inventory.rb', line 54
def reset_duplicate_nodes!
@duplicate_nodes = {}
end
|
#set_overrides(inventory, node) ⇒ Object
10
11
12
13
|
# File 'lib/objects/node/resources/inventory.rb', line 10
def set_overrides(inventory, node)
override_server_identifier(inventory, node)
node.set_network_configuration_overrides
end
|
#should_rename_initial_duplicate? ⇒ Boolean
39
40
41
|
# File 'lib/objects/node/resources/inventory.rb', line 39
def should_rename_initial_duplicate?
true
end
|
#unset! ⇒ Object
62
63
64
|
# File 'lib/objects/node/resources/inventory.rb', line 62
def unset!
@nodes = []
end
|