Sha256: 87d5700e93ee66813614896085dae43499785f6676d8d3d08dd7c5ae007f31de

Contents?: true

Size: 795 Bytes

Versions: 1

Compression:

Stored size: 795 Bytes

Contents

require 'rest-client'
require 'silver_spurs/client/exceptions'
require 'erb'

module SilverSpurs
  class ChefOutput

    attr_reader :log, :status

    def initialize(response)
      @status = convert_status response
      @log = prettify_log response
    end

    private

    def convert_status(response)
      failure = (response['exit_code'] == 1) || (response['exit_status'] == 1)
      failure ? :failed : :success
    end

    def prettify_log(response)
      stdout = response['stdout']
      stderr = response['stderr']
      exit_code = response['exit_code'] || response['exit_status']

      template = ERB.new <<-END
Exit Code: <%= exit_code %>
--STDOUT-----------------
<%= stdout %>
--STDERR-----------------
<%= stderr %>
      END
      template.result binding
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
silver_spurs-2.0.0.rc7 lib/silver_spurs/client/chef_output.rb