diff --git a/lib/smart_proxy_ansible/runner/ansible_runner.rb b/lib/smart_proxy_ansible/runner/ansible_runner.rb index 51302cd..b5c1eae 100644 --- a/lib/smart_proxy_ansible/runner/ansible_runner.rb +++ b/lib/smart_proxy_ansible/runner/ansible_runner.rb @@ -127,7 +127,7 @@ def hostname_for_event(event) def handle_host_event(hostname, event) log_event("for host: #{hostname.inspect}", event) - publish_data_for(hostname, event['stdout'] + "\n", 'stdout') if event['stdout'] + publish_data_for(hostname, event['stdout'] + "\n", 'stdout', id: event['uuid']) if event['stdout'] case event['event'] when 'runner_on_ok' publish_exit_status_for(hostname, 0) if @exit_statuses[hostname].nil? @@ -147,25 +147,23 @@ def handle_broadcast_data(event) header, *rows = event['stdout'].strip.lines.map(&:rstrip) # #lines strips the leading newline that precedes the header broadcast_data("\n" + header + "\n", 'stdout') - inventory_hosts = @outputs.keys.select { |key| key.is_a? String } rows.each do |row| host = inventory_hosts.find { |host| row =~ /#{host}/ } line = row + "\n" unless host - broadcast_data(line, 'stdout') + broadcast_data(line, 'stdout', id: event['uuid']) next end - publish_data_for(host, line, 'stdout') - + publish_data_for(host, line, 'stdout', id: event['uuid']) # If the task has been rescued, it won't consider a failure if @exit_statuses[host].to_i != 0 && failures[host].to_i <= 0 && unreachable[host].to_i <= 0 && rescued[host].to_i > 0 publish_exit_status_for(host, 0) end end else - broadcast_data(event['stdout'] + "\n", 'stdout') + broadcast_data(event['stdout'] + "\n", 'stdout', id: event['uuid']) end # If the run ends early due to an error - fail all other tasks