Sha256: ddabcbaff1144234596776441727695d95955689e0007e7cca6628b3fc508516
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
module InventorySync module Async class InventoryHostsSync < QueryInventoryJob set_callback :iteration, :around, :setup_facet_transaction set_callback :step, :around, :create_facets def setup_facet_transaction InsightsFacet.transaction do yield end end def create_facets # get the results from the event results = yield add_missing_insights_facets(results.host_uuids) results end private def add_missing_insights_facets(uuids_hash) existing_facets = InsightsFacet.where(host_id: uuids_hash.keys).pluck(:host_id, :uuid) missing_facets = uuids_hash.except(*existing_facets.map(&:first)).map do |host_id, uuid| { host_id: host_id, uuid: uuid, } end InsightsFacet.create(missing_facets) existing_facets.select { |host_id, uuid| uuid.empty? }.each do |host_id, _uuid| InsightsFacet.where(host_id: host_id).update_all(uuid: uuids_hash[host_id]) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
foreman_rh_cloud-3.0.23 | lib/inventory_sync/async/inventory_hosts_sync.rb |
foreman_rh_cloud-4.0.23 | lib/inventory_sync/async/inventory_hosts_sync.rb |