class Forcer::StatusPrintService

Constants

MAX_NUMBER_RETRIES

Public Class Methods

new(suppress_periodic_requests = false) click to toggle source
# File lib/utilities/status_print_service.rb, line 6
def initialize(suppress_periodic_requests = false)
  @suppress_periodic_requests = suppress_periodic_requests
end

Public Instance Methods

run_status_check(ids, lambda_metadata) click to toggle source

run thread to check process status

# File lib/utilities/status_print_service.rb, line 13
def run_status_check(ids, lambda_metadata)
  header = {
      "tns:SessionHeader" => {
          "tns:sessionId" => ids[:session_id]
      }
  }
  body = {
      asyncProcessId: ids[:id]
  }
  p "REQUESTING STATUS"

  response = {}
  number_retries = 0
  status_thread = Thread.new do
    begin
      response = lambda_metadata.call(header, body)
      response_details = response.body
      print_status(response_details)
      break if (response_details[:check_deploy_status_response][:result][:done] || @suppress_periodic_requests)
      sleep(5)
    rescue Exception => ex
      if number_retries < MAX_NUMBER_RETRIES
        p "==== exception => #{ex}"
        p "==== retrying"
        response = {}
        number_retries += 1
        sleep(4)
        retry
      else
        p "EXCEEDED MAX_NUMBER_RETRIES (#{MAX_NUMBER_RETRIES}). EXITING NOW."
        raise ex
      end
    end while(number_retries < MAX_NUMBER_RETRIES)
  end

  status_thread.join()

  return response
end

Private Instance Methods

print_status(details) click to toggle source