class TerraformWrapper::Shared::Latest
Public Instance Methods
version()
click to toggle source
# File lib/terraform-wrapper/shared/latest.rb, line 34 def version @version ||= refresh return @version end
Private Instance Methods
refresh()
click to toggle source
# File lib/terraform-wrapper/shared/latest.rb, line 46 def refresh logger.info("Finding latest available Terraform release...") response = Net::HTTP.get_response(URI("https://checkpoint-api.hashicorp.com/v1/check/terraform")) logger.fatal("Hashicorp Checkpoint did not return status 200 for latest version check!") if response.code != "200" logger.fatal("Response body from Hashicorp Checkpoint is not permitted!") if not response.class.body_permitted? logger.fatal("Response body from Hashicorp Checkpoint is empty!") if response.body.nil? body = JSON.parse(response.body) logger.fatal("Hashicorp Checkpoint JSON response did not include latest available Terraform version!") if not body.key?("current_version") logger.fatal("Hashicorp Checkpoint indicated latest available version of Terraform is blank!") if body["current_version"].empty? version = body["current_version"] logger.success("Latest available Terraform release found: #{version}") return version end