Module: DefaultHostgroupBaseHostPatch

Extended by:
ActiveSupport::Concern
Defined in:
lib/default_hostgroup_base_host_patch.rb

Defined Under Namespace

Modules: ManagedOverrides, Overrides

Instance Method Summary collapse

Instance Method Details

#find_match(facts_map) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/default_hostgroup_base_host_patch.rb', line 47

def find_match(facts_map)
  facts_map.each do |group_name, facts|
    hg = Hostgroup.find_by_title(group_name)
    return hg if hg.present? && group_matches?(facts)
  end
  Rails.logger.info 'No match ...'
  false
end

#group_matches?(facts) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
65
# File 'lib/default_hostgroup_base_host_patch.rb', line 56

def group_matches?(facts)
  facts.each do |fact_name, fact_regex|
    fact_regex.gsub!(%r{(\A/|/\z)}, '')
    host_fact_value = facts_hash[fact_name]
    Rails.logger.info "Fact = #{fact_name}"
    Rails.logger.info "Regex = #{fact_regex}"
    return true if Regexp.new(fact_regex).match(host_fact_value)
  end
  false
end

#host_has_no_hostgroup_or_forced?Boolean

Returns:

  • (Boolean)


87
88
89
90
91
92
93
94
95
# File 'lib/default_hostgroup_base_host_patch.rb', line 87

def host_has_no_hostgroup_or_forced?
  unless Setting[:force_hostgroup_match]
    if hostgroup.present?
      Rails.logger.debug 'DefaultHostgroupMatch: skipping, host has hostgroup'
      return false
    end
  end
  true
end

#host_new_or_forced?Boolean

Returns:

  • (Boolean)


75
76
77
78
79
80
81
82
83
84
85
# File 'lib/default_hostgroup_base_host_patch.rb', line 75

def host_new_or_forced?
  if Setting[:force_hostgroup_match_only_new]
    # hosts have already been saved during import_host, so test the creation age instead
    new_host = ((Time.current - created_at) < 300)
    unless new_host && hostgroup.nil? && reports.empty?
      Rails.logger.debug 'DefaultHostgroupMatch: skipping, host exists'
      return false
    end
  end
  true
end

#settings_exist?Boolean

Returns:

  • (Boolean)


67
68
69
70
71
72
73
# File 'lib/default_hostgroup_base_host_patch.rb', line 67

def settings_exist?
  unless SETTINGS[:default_hostgroup] && SETTINGS[:default_hostgroup][:facts_map]
    Rails.logger.warn 'DefaultHostgroupMatch: Could not load :default_hostgroup map from Settings.'
    return false
  end
  true
end