Sha256: 553e144f10dd05166578949d647a9cf7111120858f96aa1a9c298bc590db8ba0

Contents?: true

Size: 1.11 KB

Versions: 70

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module ForemanAnsible
  # Scans ConfigReports after import for indicators of an Ansible report and
  # sets the origin of the report to 'Ansible'
  class AnsibleReportScanner
    class << self
      def add_reporter_data(_report, raw)
        check_mode_message = raw['check_mode'] ? 'check_mode_enabled' : 'check_mode_disabled'
        check_mode_log = {
          'log': {
            'sources': {
              'source': 'check_mode'
            },
            'messages': {
              'message': check_mode_message
            },
            'level': 'info'
          }
        }
        raw['logs'].insert(0, check_mode_log.deep_stringify_keys)
      end

      def identify_origin(raw)
        'Ansible' if ansible_report?(raw)
      end

      def ansible_report?(raw)
        raw['reporter'] == 'ansible' || ansible_legacy_report?(raw['logs'])
      end

      def ansible_legacy_report?(logs)
        return false if logs.blank?
        logs.any? do |log|
          log['log'].fetch('messages', {}).
            fetch('message', '') =~ /"_ansible_parsed"/
        end
      end
    end
  end
end

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
foreman_ansible-15.0.6 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-14.2.3 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-15.0.5 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-15.0.4 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-15.0.3 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-15.0.2 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-15.0.1 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-15.0.0 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-14.2.2 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-14.2.1 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-13.0.7 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-14.2.0 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-14.1.1 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-14.1.0 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-13.0.5 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-14.0.0 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-13.0.4 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-13.0.3 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-13.0.2 app/services/foreman_ansible/ansible_report_scanner.rb
foreman_ansible-13.0.1 app/services/foreman_ansible/ansible_report_scanner.rb