Sha256: 033a6b35f0d379f7e84035f2beaa47099d96f0d5eeee60056888925cdb1f6ae8

Contents?: true

Size: 1.92 KB

Versions: 8

Compression:

Stored size: 1.92 KB

Contents

# frozen_string_literal: true

require 'ruby_terraform'

require_relative './command_instantiation'

module RSpec
  module Terraform
    module Helpers
      module Actions
        module Apply
          include CommandInstantiation

          def apply(parameters)
            parameters = apply_parameters(parameters)

            log_apply_starting(parameters)
            log_apply_using_parameters(parameters)

            apply_command.execute(parameters)

            log_apply_complete
          end

          private

          def log_apply_starting(parameters)
            logger&.info(
              'Applying for configuration in directory: ' \
              "'#{parameters[:chdir]}'..."
            )
          end

          def log_apply_using_parameters(parameters)
            logger&.debug("Applying using parameters: #{parameters}...")
          end

          def log_apply_complete
            logger&.info('Apply complete.')
          end

          def apply_command
            instantiate_command(RubyTerraform::Commands::Apply)
          end

          def apply_parameters(parameters)
            with_apply_state_file_parameters(
              with_apply_standard_parameters(parameters)
            )
          end

          def with_apply_standard_parameters(parameters)
            configuration_directory = parameters[:configuration_directory]

            parameters
              .except(:configuration_directory)
              .merge(
                chdir: configuration_directory,
                input: false,
                auto_approve: true
              )
          end

          def with_apply_state_file_parameters(parameters)
            state_file = parameters[:state_file]
            if state_file
              return parameters
                       .except(:state_file)
                       .merge(state: state_file)
            end

            parameters
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rspec-terraform-0.5.0.pre.3 lib/rspec/terraform/helpers/actions/apply.rb
rspec-terraform-0.5.0.pre.2 lib/rspec/terraform/helpers/actions/apply.rb
rspec-terraform-0.5.0.pre.1 lib/rspec/terraform/helpers/actions/apply.rb
rspec-terraform-0.4.0 lib/rspec/terraform/helpers/actions/apply.rb
rspec-terraform-0.3.0.pre.1 lib/rspec/terraform/helpers/actions/apply.rb
rspec-terraform-0.2.0 lib/rspec/terraform/helpers/actions/apply.rb
rspec-terraform-0.1.0.pre.49 lib/rspec/terraform/helpers/actions/apply.rb
rspec-terraform-0.1.0.pre.48 lib/rspec/terraform/helpers/actions/apply.rb