Sha256: 224020ba6cab6696e52b1eb51ab01c2d76d0131e9c9f2868ae3b43e553f90781
Contents?: true
Size: 1.03 KB
Versions: 3
Compression:
Stored size: 1.03 KB
Contents
module Choria class Colt module DataStructurer def self.structure(res) # rubocop:disable Metrics/AbcSize return res unless [0, 1].include? res[:statuscode] # data.stdout seems to always be JSON, so parse it once. res[:result] = JSON.parse res[:data][:stdout] res[:data].delete :stdout # On one side, data.stderr is filled by the remote execution stderr. # On the other side, error description is in JSON (ie. '_error') # So merge data.stderr in '_error'.'details' unless res[:data][:stderr].empty? raise NotImplementedError, 'What to do when res[:data][:stderr] contains something?' if res[:result]['_error'].empty? res[:result]['_error']['details'].merge!({ 'stderr' => res[:data][:stderr].split("\n") }) end res[:data].delete :stderr # Convert '_output' (ie. stdout) lines into array res[:result]['_output'] = res[:result]['_output'].split("\n") unless res[:result]['_output'].nil? res end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
choria-colt-0.6.0 | lib/choria/colt/data_structurer.rb |
choria-colt-0.5.1 | lib/choria/colt/data_structurer.rb |
choria-colt-0.5.0 | lib/choria/colt/data_structurer.rb |