Class: YleTf::Action::TerraformInit
- Inherits:
-
Object
- Object
- YleTf::Action::TerraformInit
- Defined in:
- lib/yle_tf/action/terraform_init.rb
Constant Summary collapse
- TF_CMD_ARGS =
%w[-input=false -no-color].freeze
- TF_CMD_OPTS =
{ env: { 'TF_IN_AUTOMATION' => 'true' }, # Reduces some output stdout: :debug # Hide the output to the debug level }.freeze
Instance Method Summary collapse
- #backend(config) ⇒ Object
- #call(env) ⇒ Object
- #init(backend) ⇒ Object
-
#initialize(app) ⇒ TerraformInit
constructor
A new instance of TerraformInit.
Constructor Details
#initialize(app) ⇒ TerraformInit
Returns a new instance of TerraformInit.
17 18 19 |
# File 'lib/yle_tf/action/terraform_init.rb', line 17 def initialize(app) @app = app end |
Instance Method Details
#backend(config) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/yle_tf/action/terraform_init.rb', line 41 def backend(config) backend_type = config.fetch('backend', 'type').downcase backend_proc = Plugin.manager.backends[backend_type] klass = backend_proc.call klass.new(config) end |
#call(env) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/yle_tf/action/terraform_init.rb', line 21 def call(env) config = env[:config] backend = backend(config) Logger.info('Initializing Terraform') Logger.debug("Backend configuration: #{backend}") init(backend) @app.call(env) end |
#init(backend) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/yle_tf/action/terraform_init.rb', line 33 def init(backend) Logger.debug('Configuring the backend') backend.configure Logger.debug('Initializing Terraform') YleTf::System.cmd('terraform', 'init', *TF_CMD_ARGS, TF_CMD_OPTS) end |