3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'app/controllers/concerns/foreman_kernel_care/foreman_tasks.rb', line 3
def callback
callbacks = params.key?(:callback) ? Array(params) : params[:callbacks]
ids = callbacks.map { |payload| payload[:callback][:task_id] }
foreman_tasks = ::ForemanTasks::Task.where(:id => ids)
callbacks.each do |payload|
callback = payload[:callback]
foreman_task = foreman_tasks.find { |task| task.id == callback[:task_id] }
next unless foreman_task.action.include?('Get patched kernel version')
complete_output = ''
result = payload[:data].to_unsafe_h['result']
result.each { |x| complete_output += x['output'] }
kernel, kcare = complete_output.split(/\n/)
kernel = kernel.gsub('Installed kernel version: ', '')
kcare = kcare.gsub('Patched kernel version: ', '')
version, release = kcare.strip.split('-')
next if version.empty? || release.empty?
job_invocation = ::JobInvocation.where(:task_id => foreman_task.parent_task_id).first
job_invocation.targeting.hosts.each { |host| host.update_kernel_version(version, release, kernel) }
end
super
end
|