Sha256: 70a05fc4582aa1adaad209858aba625a1a6f4315b474521eba396c878e6679ac

Contents?: true

Size: 828 Bytes

Versions: 5

Compression:

Stored size: 828 Bytes

Contents

require 'xmlsimple'

module Stackster
  class AWS
    class CloudFormation
      class Error

        def initialize(args)
          @exception = args[:exception]
          @config    = args[:config]
          @logger    = @config.logger
        end

        def process
          message = XmlSimple.xml_in @exception.response.body
          message['Error'].first['Message'].each do |msg|
            case msg
            when 'No updates are to be performed.'
              @logger.info msg
            when /^Stack:(.*) does not exist$/
              @logger.error msg
              raise Stackster::Exceptions::UnknownStack.new msg
            else
              @logger.error msg
              raise Stackster::Exceptions::CloudFormationError.new msg
            end
          end
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
stackster-0.4.4 lib/stackster/aws/cloud_formation/error.rb
stackster-0.4.3 lib/stackster/aws/cloud_formation/error.rb
stackster-0.4.2 lib/stackster/aws/cloud_formation/error.rb
stackster-0.4.1 lib/stackster/aws/cloud_formation/error.rb
stackster-0.4.0 lib/stackster/aws/cloud_formation/error.rb