lib/rspec/terraform/helpers/apply.rb in rspec-terraform-0.1.0.pre.45 vs lib/rspec/terraform/helpers/apply.rb in rspec-terraform-0.1.0.pre.46
- old
+ new
@@ -1,20 +1,17 @@
# frozen_string_literal: true
require 'ruby_terraform'
require_relative './base'
-require_relative '../configuration/var_captor'
module RSpec
module Terraform
module Helpers
class Apply < Base
def execute(overrides = {}, &block)
- parameters = with_configuration_provider_parameters(overrides)
- parameters = with_resolved_vars(parameters, &block)
- parameters = with_mandatory_parameters(parameters)
+ parameters = resolve_parameters(overrides, &block)
execute_if_required(parameters) do
validate(parameters)
clean(parameters)
init(parameters)
@@ -22,18 +19,10 @@
end
end
private
- def execute_if_required(parameters, &block)
- only_if = parameters[:only_if]
- only_if_args = only_if ? [parameters].slice(0, only_if.arity) : []
- should_execute = only_if ? only_if.call(*only_if_args) : true
-
- block.call if should_execute
- end
-
def mandatory_parameters
{
input: false,
auto_approve: true
}
@@ -43,63 +32,9 @@
{
in_place: [:configuration_directory],
isolated: %i[source_directory configuration_directory]
}[execution_mode] || []
end
-
- def clean(parameters)
- return unless execution_mode == :isolated
-
- FileUtils.rm_rf(parameters[:configuration_directory])
- FileUtils.mkdir_p(parameters[:configuration_directory])
- end
-
- def init(parameters)
- init_command.execute(init_parameters(parameters))
- end
-
- def apply(parameters)
- apply_command.execute(apply_parameters(parameters))
- end
-
- def init_command
- RubyTerraform::Commands::Init.new(command_options)
- end
-
- def apply_command
- RubyTerraform::Commands::Apply.new(command_options)
- end
-
- def init_parameters(parameters)
- init_parameters = parameters.merge(
- chdir: parameters[:configuration_directory],
- input: false
- )
- if execution_mode == :isolated
- init_parameters =
- init_parameters.merge(from_module: parameters[:source_directory])
- end
-
- init_parameters
- end
-
- # rubocop:disable Metrics/MethodLength
- def apply_parameters(parameters)
- apply_parameters =
- parameters.merge(
- chdir: parameters[:configuration_directory],
- input: false,
- auto_approve: true
- )
-
- if parameters[:state_file]
- apply_parameters =
- apply_parameters.merge(state: parameters[:state_file])
- end
-
- apply_parameters
- end
- # rubocop:enable Metrics/MethodLength
end
end
end
end