Sha256: a3cab188d2fa7a0b32593bfa986b59fe9ceab090bb818bd32102b6ebf77a58a7

Contents?: true

Size: 790 Bytes

Versions: 1

Compression:

Stored size: 790 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.rc4 lib/silver_spurs/client/chef_output.rb