class Kitchen::Terraform::Command::Init::PreZeroFifteenZero

The working directory is initialized by running a command like the following example:

terraform init \
  -backend=true \
  [-backend-config=<backend_configurations[0]> ...] \
  -force-copy \
  -get=true \
  -get-plugins=true \
  -input=false \
  -lock=<lock> \
  -lock-timeout=<lock_timeout>s \
  [-no-color] \
  [-plugin-dir=<plugin_directory>] \
  [-upgrade=true] \
  -verify-plugins=true \
  <root_module_directory>

Attributes

backend_config[RW]
color[RW]
lock[RW]
lock_timeout[RW]
options[RW]
plugin_dir[RW]
upgrade[RW]

Public Class Methods

new(config:) click to toggle source

initialize prepares a new instance of the class.

@param config [Hash] the configuration of the driver. @option config [Hash{String=>String}] :backend_configurations Terraform backend configuration arguments to

complete a partial backend configuration.

@option config [Boolean] :color a toggle of colored output from the Terraform client. @option config [Boolean] :lock a toggle of locking for the Terraform state file. @option config [Integer] :lock_timeout the number of seconds that the Terraform client will wait for a lock

on the state to be obtained during operations.

@option config [String] :plugin_directory the pathname of the directory which contains

customized Terraform provider plugins to install in place of the official Terraform provider plugins.

@option config [Boolean] :upgrade_during_init a toggle for upgrading modules and plugins. @return [Kitchen::Terraform::Command::Init::PreZeroFifteenZero]

# File lib/kitchen/terraform/command/init/pre_zero_fifteen_zero.rb, line 56
def initialize(config:)
  self.backend_config = ::Kitchen::Terraform::CommandFlag::BackendConfig.new arguments: config.fetch(
    :backend_configurations
  )
  self.color = ::Kitchen::Terraform::CommandFlag::Color.new enabled: config.fetch(:color)
  self.lock = config.fetch :lock
  self.lock_timeout = ::Kitchen::Terraform::CommandFlag::LockTimeout.new duration: config.fetch(:lock_timeout)
  self.plugin_dir = ::Kitchen::Terraform::CommandFlag::PluginDir.new pathname: config.fetch(
    :plugin_directory
  )
  self.upgrade = ::Kitchen::Terraform::CommandFlag::Upgrade.new enabled: config.fetch(:upgrade_during_init)
end

Public Instance Methods

to_s() click to toggle source

@return [String] the command with flags.

# File lib/kitchen/terraform/command/init/pre_zero_fifteen_zero.rb, line 70
def to_s
  "init " \
  "-backend=true " \
  "#{backend_config} " \
  "-force-copy=true " \
  "-get=true " \
  "-get-plugins=true " \
  "-input=false " \
  "-lock=#{lock} " \
  "#{lock_timeout} " \
  "#{color} " \
  "#{plugin_dir} " \
  "#{upgrade} " \
  "-verify-plugins=true"
end