class Terraspace::Terraform::Tfc::Workspace
Public Instance Methods
create()
click to toggle source
# File lib/terraspace/terraform/tfc/workspace.rb, line 27 def create build return unless api api.workspace.create end
destroy()
click to toggle source
# File lib/terraspace/terraform/tfc/workspace.rb, line 33 def destroy build return unless api workspace = api.workspace(exit_on_fail: false) unless workspace logger.info "Workspace #{workspace_name} not found for #{@mod.type}: #{@mod.name}" exit 0 end sure? logger.info "Destroying workspace #{workspace_name}" api.workspace.destroy end
init()
click to toggle source
# File lib/terraspace/terraform/tfc/workspace.rb, line 23 def init Terraspace::CLI::Init.new(@options).run end
list()
click to toggle source
List will not have @mod set.
# File lib/terraspace/terraform/tfc/workspace.rb, line 9 def list @mod = Terraspace::CLI::Build::Placeholder.new(@options).build unless remote && remote['organization'] logger.info "ERROR: There was no organization found. Are you sure you configured backend.tf with it?".color(:red) exit 1 end org = remote['organization'] payload = http.get("/organizations/#{org}/workspaces") # list using api client directly names = payload['data'].map { |i| i['attributes']['name'] }.sort logger.info "Workspaces for #{org}:" logger.info names.join("\n") end
sure?()
click to toggle source
# File lib/terraspace/terraform/tfc/workspace.rb, line 46 def sure? message = <<~EOL.chop + " " # chop to remove newline You are about to delete the workspace: #{workspace_name} All variables, settings, run history, and state history will be removed. This cannot be undone. This will NOT remove any infrastructure managed by this workspace. If needed, destroy the infrastructure prior to deleting the workspace with: terraspace down #{@mod.name} This will delete the workspace: #{workspace_name}. Are you sure? (y/N) EOL if @options[:yes] sure = 'y' else print message sure = $stdin.gets end unless sure =~ /^y/ puts "Whew! Exiting." exit 0 end end