class InventorySync::Async::QueryInventoryJob

Public Instance Methods

run() click to toggle source
# File lib/inventory_sync/async/query_inventory_job.rb, line 11
def run
  run_callbacks :iteration do
    page = 1
    loop do
      api_response = query_inventory(page)
      results = HostResult.new(api_response)
      logger.debug("Downloaded cloud inventory data: #{results.percentage}%")

      run_callbacks :step do
        results
      end

      page += 1
      break if results.last?
    end
  end
end

Private Instance Methods

logger() click to toggle source
# File lib/inventory_sync/async/query_inventory_job.rb, line 46
def logger
  action_logger
end
query_inventory(page = 1) click to toggle source
# File lib/inventory_sync/async/query_inventory_job.rb, line 31
def query_inventory(page = 1)
  hosts_inventory_response = execute_cloud_request(
    method: :get,
    url: request_url,
    headers: {
      params: {
        per_page: 100,
        page: page,
      },
    }
  )

  JSON.parse(hosts_inventory_response)
end
request_url() click to toggle source
# File lib/inventory_sync/async/query_inventory_job.rb, line 50
def request_url
  ForemanInventoryUpload.inventory_export_url
end
rescue_strategy_for_self() click to toggle source
# File lib/inventory_sync/async/query_inventory_job.rb, line 54
def rescue_strategy_for_self
  Dynflow::Action::Rescue::Fail
end