Project

General

Profile

« Previous | Next » 

Revision 570fb4cb

Added by Thomas McKay over 8 years ago

fixes #11766 - differentiate between puppet facts and those from plugins

+ add test

View differences:

app/services/fact_importer.rb
attr_reader :host, :facts
def delete_removed_facts
to_delete = host.fact_values.joins(:fact_name).where('fact_names.name NOT IN (?)', facts.keys)
to_delete = host.fact_values.joins(:fact_name).where("fact_names.type = '#{fact_name_class}' AND fact_names.name NOT IN (?)", facts.keys)
# N+1 DELETE SQL, but this would allow us to use callbacks (e.g. auditing) when deleting.
deleted = to_delete.destroy_all
@counters[:deleted] = deleted.size
......
end
def db_facts
@db_facts ||= host.fact_values.includes(:fact_name).index_by(&:name)
@db_facts ||= host.fact_values.includes(:fact_name).where("fact_names.type = '#{fact_name_class}'").index_by(&:name)
end
end

Also available in: Unified diff