module DefaultHostgroupBaseHostPatch::Overrides

Public Instance Methods

import_facts(facts, source_proxy = nil, without_alias = false) click to toggle source
Calls superclass method
# File lib/default_hostgroup_base_host_patch.rb, line 11
def import_facts(facts, source_proxy = nil, without_alias = false)
  # Load the facts anyway, hook onto the end of it
  result = super(facts, source_proxy)

  # Module#prepend removes the import_facts_without_match_hostgroup method, so use
  # a flag to return here if needed
  return result if without_alias

  # Check settings are created
  return result unless settings_exist?

  Rails.logger.debug 'DefaultHostgroupMatch: performing Hostgroup match'

  return result unless host_new_or_forced?
  return result unless host_has_no_hostgroup_or_forced?

  facts_map = SETTINGS[:default_hostgroup][:facts_map]
  new_hostgroup = find_match(facts_map)

  return result unless new_hostgroup

  self.hostgroup = new_hostgroup
  if Setting[:force_host_environment] == true
    self.environment = new_hostgroup.environment
  end
  save(validate: false)
  Rails.logger.info "DefaultHostgroupMatch: #{hostname} added to #{new_hostgroup}"

  result
end