class Bcome::Node::Resources::Inventory

Public Class Methods

new(inventory) click to toggle source
Calls superclass method Bcome::Node::Resources::Base::new
# File lib/objects/node/resources/inventory.rb, line 5
def initialize(inventory)
  @inventory = inventory
  super
end

Public Instance Methods

<<(node) click to toggle source
# 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?
      # We've got a duplicate, but we'll treat the remote node as authoritative
      # We remove the static server from our selection
      @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() click to toggle source
# File lib/objects/node/resources/inventory.rb, line 50
def duplicate_nodes
  @duplicate_nodes ||= {}
end
dynamic_nodes() click to toggle source
# File lib/objects/node/resources/inventory.rb, line 58
def dynamic_nodes
  active.select(&:dynamic_server?)
end
override_server_identifier(inventory, node) click to toggle source
# 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() click to toggle source
# 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!() click to toggle source
# File lib/objects/node/resources/inventory.rb, line 54
def reset_duplicate_nodes!
  @duplicate_nodes = {}
end
set_overrides(inventory, node) click to toggle source
# 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?() click to toggle source
# File lib/objects/node/resources/inventory.rb, line 39
def should_rename_initial_duplicate?
  true
end
unset!() click to toggle source
# File lib/objects/node/resources/inventory.rb, line 62
def unset!
  @nodes = []
end