class DTK::Client::Operation::Service::TaskStatus::RefreshMode
Constants
- DEBUG_SLEEP_TIME
Public Instance Methods
task_status(opts = {})
click to toggle source
# File lib/client/operation/service/task_status/refresh_mode.rb, line 23 def task_status(opts = {}) begin response = nil loop do response = rest_call(opts) return response unless response.ok? # TODO: clean this up # stop polling when top level task succeeds, fails or timeout if response and response.data and response.data.first if debug_mode?(response) response.print_error_table!(true) add_info_if_debug_mode!(response) return response end top_task_failed = response.data.first['status'].eql?('failed') is_pending = (response.data.select {|r|r['status'].nil? }).size > 0 is_executing = (response.data.select {|r|r['status'].eql? 'executing'}).size > 0 is_failed = (response.data.select {|r|r['status'].eql? 'failed'}).size > 0 is_cancelled = response.data.first['status'].eql?('cancelled') is_cancelled = true if top_task_failed unless (is_executing || is_pending) && !is_cancelled system('clear') # response.print_error_table = true # response.render_table(:task_status) response.print_error_table!(true) return response.set_render_as_table! end end system('clear') response.set_render_as_table! response.render_data Console.wait_animation("Watching '#{@object_type}' task status [ #{DEBUG_SLEEP_TIME} seconds refresh ] ", DEBUG_SLEEP_TIME) end rescue Interrupt => e puts "" response.skip_render(true) unless response.nil? return end end