class Kitchen::Terraform::Driver::Create
A Test Kitchen
instance is created through the following steps.
Initializing the Terraform
Working Directory¶ ↑
Terraform
>= 0.15.0¶ ↑
{include:Kitchen::Terraform::Command::Init::PostZeroFifteenZero}
Terraform
< 0.15.0¶ ↑
{include:Kitchen::Terraform::Command::Init::PreZeroFifteenZero}
Creating or Selecting the Test Terraform
Workspace¶ ↑
{include:Kitchen::Terraform::Command::WorkspaceNew}
{include:Kitchen::Terraform::Command::WorkspaceSelect}
Attributes
Public Class Methods
initialize prepares a new instance of the class.
@param config [Hash] the configuration of the driver. @param logger [Kitchen::Logger] a logger for logging messages. @param version_requirement [Gem::VersionRequirement] the required version of the Terraform
client. @param workspace_name
[String] the name of the Terraform
workspace to select or to create. @option config [String] :client the pathname of the Terraform
client. @return [Kitchen::Terraform::Driver::Create]
# File lib/kitchen/terraform/driver/create.rb, line 68 def initialize(config:, logger:, version_requirement:, workspace_name:) self.complete_config = config.to_hash.merge upgrade_during_init: true, workspace_name: workspace_name self.client_version = ::Gem::Version.new "0.0.0" self.command_executor = ::Kitchen::Terraform::CommandExecutor.new( client: complete_config.fetch(:client), logger: logger, ) self.logger = logger self.options = { cwd: complete_config.fetch(:root_module_directory), timeout: complete_config.fetch(:command_timeout), } self.workspace_name = workspace_name self.workspace_new = ::Kitchen::Terraform::Command::WorkspaceNew.new config: complete_config self.workspace_select = ::Kitchen::Terraform::Command::WorkspaceSelect.new config: complete_config self.verify_version = ::Kitchen::Terraform::VerifyVersion.new( config: complete_config, logger: logger, version_requirement: version_requirement, ) self.version = ::Kitchen::Terraform::Command::Version.new end
Public Instance Methods
call
executes the action.
@raise [Kitchen::TransientFailure] if a command fails. @return [self]
# File lib/kitchen/terraform/driver/create.rb, line 51 def call read_client_version verify_version.call version: client_version initialize_directory create_or_select_workspace self end