Class: PuppetBox::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/puppetbox/result.rb

Constant Summary collapse

PS_OK =

OK - no errors encountered

0
PS_NOT_IDEMPOTENT =

Puppet indicicated changes made on second run

1
PS_ERROR =

Error(s) encountered while running puppet

2

Instance Method Summary collapse

Constructor Details

#initializeResult

Returns a new instance of Result.



17
18
19
# File 'lib/puppetbox/result.rb', line 17

def initialize()
  @report = []
end

Instance Method Details

#messages(run = -1)) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/puppetbox/result.rb', line 52

def messages(run=-1)
  messages = []
  if run < 0
    # all runs concatenated
    @report.each { |r|
      messages << r[:messages]
    }
  else
    if run < @report.size
      messages << @report[run][:messages]
    else
      raise "Report at index #{run} does not exist, #{@report.size} reports available"
    end
  end
  messages
end

#passedObject



43
44
45
46
47
48
49
50
# File 'lib/puppetbox/result.rb', line 43

def passed
  passed = true
  @report.each { |r|
    passed &= r[:status] == PS_OK
  }

  passed
end

#report(status_code, messages) ⇒ Object

0: The run succeeded with no changes or failures; the system was already in the desired state. 1: The run failed, or wasn’t attempted due to another run already in progress. 2: The run succeeded, and some resources were changed. 4: The run succeeded, and some resources failed. 6: The run succeeded, and included both changes and failures.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/puppetbox/result.rb', line 26

def report(status_code, messages)
  status = PS_ERROR
  if @report.empty?
    # first run
    if status_code == 0 or status_code == 2
      status = PS_OK
    end
  else
    if status_code == 0
      status = PS_OK
    elsif status_code == 2
      status = PS_NOT_IDEMPOTENT
    end
  end
  @report.push({:status => status, :messages => messages})
end