Class: Bolt::Outputter::JSON
Instance Method Summary
collapse
for_format, #replace_data_type
Constructor Details
#initialize(color, trace, stream = $stdout) ⇒ JSON
Returns a new instance of JSON.
6
7
8
9
10
11
|
# File 'lib/bolt/outputter/json.rb', line 6
def initialize(color, trace, stream = $stdout)
@items_open = false
@object_open = false
@preceding_item = false
super(color, trace, stream)
end
|
Instance Method Details
#fatal_error(err) ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/bolt/outputter/json.rb', line 66
def fatal_error(err)
@stream.puts "],\n" if @items_open
@stream.puts '"_error": ' if @object_open
err_obj = err.to_h
if @trace && err.backtrace
err_obj[:details] ||= {}
err_obj[:details][:backtrace] = err.backtrace
end
@stream.puts err_obj.to_json
@stream.puts '}' if @object_open
end
|
#print_event(event) ⇒ Object
20
21
22
23
24
25
|
# File 'lib/bolt/outputter/json.rb', line 20
def print_event(event)
case event[:type]
when :node_result
print_result(event[:result])
end
end
|
#print_head ⇒ Object
13
14
15
16
17
18
|
# File 'lib/bolt/outputter/json.rb', line 13
def print_head
@stream.puts '{ "items": ['
@preceding_item = false
@items_open = true
@object_open = true
end
|
#print_message(message) ⇒ Object
78
|
# File 'lib/bolt/outputter/json.rb', line 78
def print_message(message); end
|
#print_plan_info(plan) ⇒ Object
51
52
53
|
# File 'lib/bolt/outputter/json.rb', line 51
def print_plan_info(plan)
@stream.puts plan.to_json
end
|
#print_plan_result(result) ⇒ Object
55
56
57
58
|
# File 'lib/bolt/outputter/json.rb', line 55
def print_plan_result(result)
@stream.puts result.to_json
end
|
#print_puppetfile_result(success, puppetfile, moduledir) ⇒ Object
60
61
62
63
64
|
# File 'lib/bolt/outputter/json.rb', line 60
def print_puppetfile_result(success, puppetfile, moduledir)
@stream.puts({ "success": success,
"puppetfile": puppetfile,
"moduledir": moduledir }.to_json)
end
|
#print_result(result) ⇒ Object
27
28
29
30
31
|
# File 'lib/bolt/outputter/json.rb', line 27
def print_result(result)
@stream.puts ',' if @preceding_item
@stream.puts result.status_hash.to_json
@preceding_item = true
end
|
#print_summary(results, elapsed_time) ⇒ Object
33
34
35
36
37
38
39
40
|
# File 'lib/bolt/outputter/json.rb', line 33
def print_summary(results, elapsed_time)
@stream.puts "],\n"
@preceding_item = false
@items_open = false
@stream.puts format('"node_count": %<size>d, "elapsed_time": %<elapsed>d }',
size: results.size,
elapsed: elapsed_time)
end
|
#print_table(results) ⇒ Object
42
43
44
|
# File 'lib/bolt/outputter/json.rb', line 42
def print_table(results)
@stream.puts results.to_json
end
|
#print_task_info(task) ⇒ Object
46
47
48
49
|
# File 'lib/bolt/outputter/json.rb', line 46
def print_task_info(task)
replace_data_type(task['parameters'])
@stream.puts task.to_json
end
|