class Kitchen::Terraform::VerifyVersion
VerifyVersion
is the class of objects which verify the version of the Terraform
client against a version requirement.
Attributes
finish_message[RW]
logger[RW]
rescue_strategy[RW]
start_message[RW]
version_verifier[RW]
Public Class Methods
new(config:, logger:, version_requirement:)
click to toggle source
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. @option config [Boolean] :verify_version a toggle of strict or permissive verification of support for the
version of the Terraform client.
@return [Kitchen::Terraform::VerifyVersion]
# File lib/kitchen/terraform/verify_version.rb, line 51 def initialize(config:, logger:, version_requirement:) self.finish_message = "Finished verifying the Terraform client version." self.logger = logger self.rescue_strategy = ::Kitchen::Terraform::VerifyVersionRescueStrategyFactory.new( verify_version: config.fetch(:verify_version), ).build logger: logger self.start_message = "Verifying the Terraform client version is in the supported interval of " \ "#{version_requirement}..." self.version_verifier = ::Kitchen::Terraform::VersionVerifier.new version_requirement: version_requirement end
Public Instance Methods
call(version:)
click to toggle source
call
invokes the verification.
@param version [Gem::Version] the Terraform
client version. @raise [Kitchen::ActionFailed] if the verification fails. @return [self]
# File lib/kitchen/terraform/verify_version.rb, line 33 def call(version:) logger.warn start_message version_verifier.verify version: version logger.warn finish_message rescue ::Kitchen::Terraform::UnsupportedClientVersionError rescue_strategy.call self end