class TerraformEnterprise::CommandLine::Commands::RunsCommand
Constants
- ATTR_STR
- CMD_STR
Public Instance Methods
apply(id)
click to toggle source
# File lib/terraform_enterprise/command_line/commands/runs.rb, line 32 def apply(id) params = { id: id, action: :apply } params[:comment] = options[:comment] if options[:comment] render client.runs.action(params) end
create()
click to toggle source
# File lib/terraform_enterprise/command_line/commands/runs.rb, line 21 def create render client.runs.create(options), except: [:permissions] end
discard(id)
click to toggle source
# File lib/terraform_enterprise/command_line/commands/runs.rb, line 40 def discard(id) params = { id: id, action: :discard } params[:comment] = options[:comment] if options[:comment] render client.runs.action(params) end
get(id)
click to toggle source
# File lib/terraform_enterprise/command_line/commands/runs.rb, line 26 def get(id) render client.runs.get(id: id), except: [:permissions] end
list()
click to toggle source
# File lib/terraform_enterprise/command_line/commands/runs.rb, line 13 def list render client.runs.list(id: options[:workspace_id]), except: [:permissions] end
logs(id)
click to toggle source
# File lib/terraform_enterprise/command_line/commands/runs.rb, line 49 def logs(id) following = options[:follow] finished = false exit_requested = false finished_states = %w[errored canceled finished] # Listens for "control-c" to exit Kernel.trap('INT') { exit_requested = true } loop do event = get_event_resource(id, options[:event]) url = event.attributes['log-read-url'] finished = finished_states.include?(event.attributes['status'].to_s) logs = RestClient.get(url).body # errase screen and go to (0,0) print "\033[2J" if following print logs break if !following || exit_requested || finished sleep 2 end end
Private Instance Methods
get_event_resource(id, event)
click to toggle source
# File lib/terraform_enterprise/command_line/commands/runs.rb, line 76 def get_event_resource(id, event) event_type = event == 'plan' ? 'plans' : 'applies' error_message = "#{options[:event].to_s.capitalize} not started yet" run_response = client.runs.get(id: id, include: [event.to_sym]) render run_response unless run_response.success? event_resource = run_response.resource.included.find do |er| er.type.to_s == event_type end error! error_message unless event_resource event_resource end