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 49
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 = RestClient::Request.execute(
    method: :get,
    url: ForemanInventoryUpload.inventory_export_url,
    verify_ssl: ForemanRhCloud.verify_ssl_method,
    proxy: ForemanRhCloud.transformed_http_proxy_string(logger: logger),
    headers: {
      Authorization: "Bearer #{rh_credentials}",
      params: {
        per_page: 100,
        page: page,
      },
    }
  )

  JSON.parse(hosts_inventory_response)
end