class Kafo::PuppetFailedResource
Public Class Methods
@param [Hash] status
The status hash from the report
@param [Array] logs
Relevant log lines for this resoure
# File lib/kafo/puppet_failed_resource.rb, line 7 def initialize(status, logs) @status = status @logs = logs end
Public Instance Methods
@return [Array] The event messages
# File lib/kafo/puppet_failed_resource.rb, line 38 def event_messages @status['events'].map { |event| event['message'] } end
A collection of Puppet log messages
The log messages include detailed information of what failed. Some debug information, such as timing but crucially the command output, both stdout and stderr.
@return [Array] The Puppet log messages for this resource
# File lib/kafo/puppet_failed_resource.rb, line 49 def log_messages @logs.map { |log| log['message'] } end
A collection of Puppet log messages grouped by source
The log messages include detailed information of what failed. Some debug information, such as timing but crucially the command output, both stdout and stderr.
A resource can have multiple sources. For example, exec can have both unless and returns. Combining the output of those can be confusing, so this presents them separate.
@return [Hash[String, Array]] The Puppet log messages for this resource
# File lib/kafo/puppet_failed_resource.rb, line 64 def log_messages_by_source @logs.group_by { |log| log['source'] }.transform_values { |logs| logs.map { |log| log['message'] } } end
@example
puppet_failed_resource.resource == 'Exec[/bin/true]'
@return [String] A resource
# File lib/kafo/puppet_failed_resource.rb, line 15 def resource @status['resource'] end
@example
puppet_failed_resource.title == '/bin/true'
@return [String] A resource title
# File lib/kafo/puppet_failed_resource.rb, line 29 def title @status['title'] end
# File lib/kafo/puppet_failed_resource.rb, line 33 def to_s "Puppet #{type} resource '#{title}'" end
@example
puppet_failed_resource.type == 'Exec'
@return [String] A resource type
# File lib/kafo/puppet_failed_resource.rb, line 22 def type @status['resource_type'] end