Sha256: e5e09aca2544e987e8ad558cdbeda07db181516d579a0f5ef26ab07374a4ac81

Contents?: true

Size: 1.15 KB

Versions: 12

Compression:

Stored size: 1.15 KB

Contents

require 'rest-client'

module InventorySync
  module Async
    class QueryInventoryJob < ::Actions::EntryAction
      include ActiveSupport::Callbacks
      include ::ForemanRhCloud::CloudAuth

      define_callbacks :iteration, :step

      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

      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

      def logger
        action_logger
      end

      def request_url
        ForemanInventoryUpload.inventory_export_url
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
foreman_rh_cloud-3.0.33 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-3.0.32 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-3.0.29 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-3.0.28 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-3.0.26 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-4.0.25.1 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-3.0.25 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-4.0.25 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-3.0.24.1 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-4.0.24.1 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-3.0.24 lib/inventory_sync/async/query_inventory_job.rb
foreman_rh_cloud-4.0.24 lib/inventory_sync/async/query_inventory_job.rb