class Terraspace::Terraform::Tfc::Sync
Public Instance Methods
backend()
click to toggle source
already memoized in Api::Client
# File lib/terraspace/terraform/tfc/sync.rb, line 37 def backend Terraspace::Compiler::Backend::Parser.new(@mod).result end
run()
click to toggle source
Note about why workspace.create is called:
init => runs `terraform init` build_remote_dependencies sync_cloud => leads to create_workspace
The `terraform init` will auto-create the TFC workspace If there is a .terraform folder the config.init.mode == “auto” though, then the workspace won't be created. So we check and create the workspace if necessary.
# File lib/terraspace/terraform/tfc/sync.rb, line 17 def run # Note: workspace still gets created by `terraform init` However, variables wont be sync if returns early return unless Terraspace.config.tfc.auto_sync || @options[:override_auto_sync] return unless workspaces_backend? logger.info "Syncing to Terraform Cloud: #{@mod.name} => #{workspace_name}" @api = Terraspace::Terraform::Api.new(@mod, remote) workspace.create_or_update workspace.set_working_dir workspace.set_env_vars end
workspace()
click to toggle source
# File lib/terraspace/terraform/tfc/sync.rb, line 28 def workspace @api.workspace end
workspaces_backend?()
click to toggle source
# File lib/terraspace/terraform/tfc/sync.rb, line 32 def workspaces_backend? remote && remote['workspaces'] end