Class: SimplyGenius::Atmos::TerraformExecutor
- Inherits:
-
Object
- Object
- SimplyGenius::Atmos::TerraformExecutor
- Includes:
- FileUtils, GemLogger::LoggerSupport, UI
- Defined in:
- lib/simplygenius/atmos/terraform_executor.rb
Defined Under Namespace
Classes: ProcessFailed
Instance Method Summary collapse
-
#initialize(process_env: ENV) ⇒ TerraformExecutor
constructor
A new instance of TerraformExecutor.
- #run(*terraform_args, skip_backend: false, skip_secrets: false, get_modules: false, output_io: nil) ⇒ Object
Methods included from UI
#agree, #ask, #choose, color_enabled, color_enabled=, #display, #error, #notify, #say, #warn
Constructor Details
#initialize(process_env: ENV) ⇒ TerraformExecutor
Returns a new instance of TerraformExecutor.
19 20 21 22 23 24 25 26 27 |
# File 'lib/simplygenius/atmos/terraform_executor.rb', line 19 def initialize(process_env: ENV) @process_env = process_env recipe_config_path = "recipes.#{Atmos.config.working_group}" @recipes = Array(Atmos.config[recipe_config_path]) if @recipes.blank? logger.warn("Check your configuration, there are no recipes in '#{recipe_config_path}'") end @compat11 = Atmos.config['atmos.terraform.compat11'].to_s == "true" end |
Instance Method Details
#run(*terraform_args, skip_backend: false, skip_secrets: false, get_modules: false, output_io: nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/simplygenius/atmos/terraform_executor.rb', line 29 def run(*terraform_args, skip_backend: false, skip_secrets: false, get_modules: false, output_io: nil) setup_working_dir(skip_backend: skip_backend) if get_modules logger.debug("Getting modules") get_modules_io = StringIO.new begin execute("get", output_io: get_modules_io) rescue TerraformExecutor::ProcessFailed => e logger.info(get_modules_io.string) raise end end return execute(*terraform_args, skip_secrets: skip_secrets, output_io: output_io) end |