class Kitchen::Terraform::SystemsVerifier::FailSlow

FailSlow is the class of objects which verify systems and raise rescued errors after all systems have been verified.

Attributes

messages[RW]
systems[RW]

Public Class Methods

new(systems:) click to toggle source

initialize prepares a new instance of the class.

@param systems [Array<::Kitchen::Terraform::System>] a list of systems to be verified. @return [Kitchen::Terraform::SystemsVerifier::FailSlow]

# File lib/kitchen/terraform/systems_verifier/fail_slow.rb, line 29
def initialize(systems:)
  self.messages = []
  self.systems = systems
end

Public Instance Methods

verify(outputs:, variables:) click to toggle source

verify verifies each system.

@param outputs [Hash] a mapping of Terraform outputs. @param variables [Hash] a mapping of Terraform variables. @raise [Kitchen::TransientFailure] if verification of a system fails. @return [self]

# File lib/kitchen/terraform/systems_verifier/fail_slow.rb, line 40
def verify(outputs:, variables:)
  systems.each do |system|
    verify_and_continue outputs: outputs, system: system, variables: variables
  end

  raise ::Kitchen::TransientFailure, messages.join("\n\n") if !messages.empty?

  self
end

Private Instance Methods

verify_and_continue(outputs:, system:, variables:) click to toggle source
# File lib/kitchen/terraform/systems_verifier/fail_slow.rb, line 54
def verify_and_continue(outputs:, system:, variables:)
  system.verify fail_fast: false, outputs: outputs, variables: variables
rescue ::Kitchen::TransientFailure => error
  messages.push error.message
end