Sha256: 15e81546302620d627066c1b49bc0eef5681c749504990a2b25bc688c4a8e709

Contents?: true

Size: 1 KB

Versions: 92

Compression:

Stored size: 1 KB

Contents

module ForemanOpenscap
  class MessageCleaner
    def clean
      ForemanOpenscap::Policy.unscoped.all.find_in_batches do |batch|
        batch.each do |policy|
          process_policy policy
        end
      end
    end

    private

    def process_policy(policy)
      reports_of_policy = ForemanOpenscap::ArfReport.unscoped
                                                    .of_policy(policy)
                                                    .order("#{ForemanOpenscap::ArfReport.table_name}.created_at DESC")
      latest = reports_of_policy.first
      reports_of_policy.each do |report|
        next if report == latest
        report.logs.each do |log|
          latest_log = latest.logs.find_by(:source_id => log.source_id)
          next unless latest_log
          next if log == latest_log
          latest_message = latest_log.message
          msg = log.message
          log.update_attribute('message_id', latest_message.id)
          msg.destroy! if msg.logs.empty?
        end
      end
    end
  end
end

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
foreman_openscap-10.1.0 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-10.0.3 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-10.0.2 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-10.0.1 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-10.0.0 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-9.0.4 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-9.0.3 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-9.0.2 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-9.0.1 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-9.0.0 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-8.0.0 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-7.1.1 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-7.1.0 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-7.0.0 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-6.0.0 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-5.2.3 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-5.2.2 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-5.1.1 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-5.2.1 lib/foreman_openscap/message_cleaner.rb
foreman_openscap-5.2.0 lib/foreman_openscap/message_cleaner.rb