Filter raw_report only with log events for noop_run

Use filter for raw_report only with log events (such as what was
changed, were was changed, what was triggered and etc) for noop_run.

Change-Id: I4e0f1d25e8145de46f7ff059956cd086bf2f699c
Related-bug: #1618945
This commit is contained in:
Denis Egorenko 2016-09-01 17:17:05 +03:00
parent aca2bf3cd1
commit 0b353f3ed3
3 changed files with 22 additions and 1 deletions

View File

@ -117,6 +117,7 @@ module Astute
def puppet_status
puppetd.last_run_summary(
:puppet_noop_run => @options[:puppet_noop_run],
:raw_report => @options[:raw_report]
).first[:data]
end

View File

@ -35,6 +35,7 @@ module Astute
:timeout => @task['parameters']['timeout'],
:puppet_debug => @task['parameters']['debug'],
:puppet_noop_run => true,
:raw_report => true
}
)
end

View File

@ -127,7 +127,11 @@ module MCollective
}.merge(reply[:resources])
if valid_report?(report) && request.fetch(:raw_report, false)
reply[:raw_report] = File.read(@last_report)
if request[:puppet_noop_run]
reply[:raw_report] = get_noop_report_only(report)
else
reply[:raw_report] = File.read(@last_report)
end
end
end
@ -277,6 +281,21 @@ module MCollective
report.is_a?(Puppet::Transaction::Report) && report.resource_statuses
end
def get_noop_report_only(report)
noop_report = []
report.logs.each do |log|
# skip info level reports
next if log.level == :info
resource_report = {}
resource_report['source'] = log.source
resource_report['message'] = log.message
resource_report['file'] = log.file unless log.file.nil?
resource_report['line'] = log.line unless log.line.nil?
noop_report.push(resource_report)
end
noop_report
end
def kill_process
return if ['stopped', 'disabled'].include? puppet_daemon_status