Module: PuppetBox::Report

Defined in:
lib/puppetbox/report.rb

Class Method Summary collapse

Class Method Details

.log_test_result_or_errors(logger, node_name, puppet_class, result) ⇒ Object

Print an individual test’s result or if it failed, it’s errors.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/puppetbox/report.rb', line 28

def self.log_test_result_or_errors(logger, node_name, puppet_class, result)
  indent = "  "
  tag = "#{indent}#{node_name} - #{puppet_class}"
  logger.info("#{tag}: #{pretty_status(result.passed?)}")
  if ! result.passed?
    # since we stop running on failure, the error messages will be in the
    # last element of the result.messages array (tada!)
    messages = result.messages
    if messages.empty?
      logger.error "#{tag} - no output available"
    else
      messages[-1].each { |line|
        logger.error "#{tag} - #{line}"
      }
    end
  end
end

.pretty_status(passed) ⇒ Object



4
5
6
# File 'lib/puppetbox/report.rb', line 4

def self.pretty_status(passed)
  passed ? 'OK'.green: 'FAILED'.red
end


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/puppetbox/report.rb', line 8

def self.print(result_set, stream=$stdout)
  # print the report summary
  indent = "  "
  stream.puts "\n\n\nSummary\n======="
  result_set.results.each { |node, class_results|
    stream.puts node
    if class_results.class == String
      stream.puts "#{indent}#{class_results}"
    else
      class_results.each { |puppet_class, result|
        stream.puts "#{indent}#{puppet_class}: #{pretty_status(result.passed?)}"
      }
    end
  }

  stream.puts "\n\nOVERALL STATUS: #{pretty_status(result_set.passed?)}"
end