class Kitchen::Terraform::Driver::Destroy
A Test Kitchen
instance is destroyed 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}
Selecting or Creating the Test Terraform
Workspace¶ ↑
{include:Kitchen::Terraform::Command::WorkspaceSelect}
{include:Kitchen::Terraform::Command::WorkspaceNew}
Destroying the Terraform
State¶ ↑
{include:Kitchen::Terraform::Command::Destroy}
Selecting the Default Terraform
Workspace¶ ↑
{include:Kitchen::Terraform::Command::WorkspaceSelect}
Deleting the Test Terraform
Workspace¶ ↑
{include:Kitchen::Terraform::Command::WorkspaceDelete}
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. @return [Kitchen::Terraform::Driver::Destroy]
# File lib/kitchen/terraform/driver/destroy.rb, line 80 def initialize(config:, logger:, version_requirement:, workspace_name:) self.complete_config = config.to_hash.merge upgrade_during_init: false, 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 define_options self.workspace_name = workspace_name self.destroy = ::Kitchen::Terraform::Command::Destroy.new config: complete_config self.workspace_delete_test = ::Kitchen::Terraform::Command::WorkspaceDelete.new config: complete_config self.workspace_new_test = ::Kitchen::Terraform::Command::WorkspaceNew.new config: complete_config self.workspace_select_test = ::Kitchen::Terraform::Command::WorkspaceSelect.new config: complete_config self.workspace_select_default = ::Kitchen::Terraform::Command::WorkspaceSelect.new( config: complete_config.merge(workspace_name: "default"), ) 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/destroy.rb, line 65 def call read_client_version verify_version.call version: client_version execute_workflow self end