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