foreman_rh_cloud 10.0.1 → 10.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/controllers/concerns/insights_cloud/client_authentication.rb +1 -1
- data/app/models/concerns/rh_cloud_host.rb +4 -4
- data/app/models/insights_client_report_status.rb +8 -8
- data/app/models/insights_facet.rb +1 -1
- data/app/models/insights_hit.rb +1 -1
- data/app/models/inventory_sync/inventory_status.rb +4 -4
- data/app/services/foreman_rh_cloud/cloud_request_forwarder.rb +2 -1
- data/app/services/foreman_rh_cloud/hit_remediations_retriever.rb +1 -1
- data/config/routes.rb +2 -2
- data/lib/foreman_inventory_upload/generators/fact_helpers.rb +1 -1
- data/lib/foreman_inventory_upload/generators/json_stream.rb +1 -0
- data/lib/foreman_inventory_upload/generators/slice.rb +1 -0
- data/lib/foreman_rh_cloud/engine.rb +2 -2
- data/lib/foreman_rh_cloud/version.rb +1 -1
- data/lib/foreman_rh_cloud.rb +7 -7
- data/lib/insights_cloud/async/connector_playbook_execution_reporter_task.rb +1 -1
- data/lib/insights_cloud/async/insights_generate_notifications.rb +1 -1
- data/lib/insights_cloud/generators/playbook_progress_generator.rb +1 -0
- data/package.json +1 -1
- data/test/controllers/insights_cloud/api/machine_telemetries_controller_test.rb +7 -4
- data/test/controllers/inventory_upload/api/inventory_controller_test.rb +1 -1
- data/test/factories/inventory_upload_factories.rb +1 -1
- data/test/jobs/cloud_connector_announce_task_test.rb +1 -2
- data/test/jobs/connector_playbook_execution_reporter_task_test.rb +1 -2
- data/test/jobs/exponential_backoff_test.rb +2 -1
- data/test/test_plugin_helper.rb +8 -0
- data/test/unit/rh_cloud_permissions_test.rb +2 -1
- data/test/unit/services/foreman_rh_cloud/hit_remediations_retriever_test.rb +2 -2
- data/test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb +1 -1
- data/test/unit/tags_generator_test.rb +5 -2
- metadata +6 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 2cacfda4be0f9786225bb206cd63b4a1904867fb49383bb9b9f0e911cc948990
         | 
| 4 | 
            +
              data.tar.gz: 3e973105f40419257f6a4555420286ef47955f74962e7798d6f329d7b5b47a01
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7f30326a06444b4f746b129839a3e228d90cfe0237a26cb251d013e09a64ad9c20d530e7611d102082d1f2c252e19d748b058fab75f44649880395ccaa2fb1ec
         | 
| 7 | 
            +
              data.tar.gz: 3b331d263956ff30f8da848ce249ea13a4b16f09a17dce7b70f01d37f92f516aaf2d9ecd4a0db65c5ffb053b02d6d1efa4d6197ad9abc7426a509627dcd70cf1
         | 
    
        data/README.md
    CHANGED
    
    | @@ -83,7 +83,7 @@ Fork and send a Pull Request. Thanks! | |
| 83 83 |  | 
| 84 84 | 
             
            ## Copyright
         | 
| 85 85 |  | 
| 86 | 
            -
            Copyright (c)  | 
| 86 | 
            +
            Copyright (c) 2013 - 2024 - The Foreman Team
         | 
| 87 87 |  | 
| 88 88 | 
             
            This program is free software: you can redistribute it and/or modify
         | 
| 89 89 | 
             
            it under the terms of the GNU General Public License as published by
         | 
| @@ -17,7 +17,7 @@ module InsightsCloud | |
| 17 17 | 
             
                end
         | 
| 18 18 |  | 
| 19 19 | 
             
                def subscribed_host_by_uuid(uuid)
         | 
| 20 | 
            -
                  @host = Host.unscoped.joins(:subscription_facet).where(:katello_subscription_facets => {:uuid => uuid }).first
         | 
| 20 | 
            +
                  @host = Host.unscoped.joins(:subscription_facet).where(:katello_subscription_facets => { :uuid => uuid }).first
         | 
| 21 21 | 
             
                end
         | 
| 22 22 | 
             
              end
         | 
| 23 23 | 
             
            end
         | 
| @@ -14,12 +14,12 @@ module RhCloudHost | |
| 14 14 |  | 
| 15 15 | 
             
                has_one :insights_client_report_status_object, :class_name => '::InsightsClientReportStatus', :foreign_key => 'host_id'
         | 
| 16 16 | 
             
                scoped_search :relation => :insights_client_report_status_object, :on => :status, :rename => :insights_client_report_status,
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 17 | 
            +
                  :complete_value => { :reporting => ::InsightsClientReportStatus::REPORTING,
         | 
| 18 | 
            +
                                       :no_report => ::InsightsClientReportStatus::NO_REPORT }
         | 
| 19 19 |  | 
| 20 20 | 
             
                has_one :inventory_sync_status_object, :class_name => '::InventorySync::InventoryStatus', :foreign_key => 'host_id'
         | 
| 21 21 | 
             
                scoped_search :relation => :inventory_sync_status_object, :on => :status, :rename => :insights_inventory_sync_status,
         | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 22 | 
            +
                  :complete_value => { :disconnect => ::InventorySync::InventoryStatus::DISCONNECT,
         | 
| 23 | 
            +
                                       :sync => ::InventorySync::InventoryStatus::SYNC }
         | 
| 24 24 | 
             
              end
         | 
| 25 25 | 
             
            end
         | 
| @@ -13,19 +13,19 @@ class InsightsClientReportStatus < HostStatus::Status | |
| 13 13 |  | 
| 14 14 | 
             
              def to_label(_options = {})
         | 
| 15 15 | 
             
                case status
         | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 16 | 
            +
                when REPORTING
         | 
| 17 | 
            +
                  N_('Reporting')
         | 
| 18 | 
            +
                when NO_REPORT
         | 
| 19 | 
            +
                  N_('Not reporting')
         | 
| 20 20 | 
             
                end
         | 
| 21 21 | 
             
              end
         | 
| 22 22 |  | 
| 23 23 | 
             
              def to_global(_options = {})
         | 
| 24 24 | 
             
                case status
         | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 25 | 
            +
                when REPORTING
         | 
| 26 | 
            +
                  ::HostStatus::Global::OK
         | 
| 27 | 
            +
                when NO_REPORT
         | 
| 28 | 
            +
                  ::HostStatus::Global::ERROR
         | 
| 29 29 | 
             
                end
         | 
| 30 30 | 
             
              end
         | 
| 31 31 |  | 
| @@ -4,5 +4,5 @@ class InsightsFacet < HostFacets::Base | |
| 4 4 | 
             
                primary_key: :host_id,
         | 
| 5 5 | 
             
                class_name: 'InsightsHit',
         | 
| 6 6 | 
             
                dependent: :destroy
         | 
| 7 | 
            -
              scope :for_organizations, ->(organization_ids) { joins(:host).where(hosts: { organization_id: organization_ids}) }
         | 
| 7 | 
            +
              scope :for_organizations, ->(organization_ids) { joins(:host).where(hosts: { organization_id: organization_ids }) }
         | 
| 8 8 | 
             
            end
         | 
    
        data/app/models/insights_hit.rb
    CHANGED
    
    | @@ -8,7 +8,7 @@ class InsightsHit < ApplicationRecord | |
| 8 8 | 
             
              has_one :rule, class_name: 'InsightsRule', foreign_key: 'rule_id', primary_key: 'rule_id'
         | 
| 9 9 |  | 
| 10 10 | 
             
              scope :with_playbook, -> { joins(:rule) }
         | 
| 11 | 
            -
              scope :for_organizations, ->(organization_ids) { joins(:host).where(hosts: { organization_id: organization_ids}) }
         | 
| 11 | 
            +
              scope :for_organizations, ->(organization_ids) { joins(:host).where(hosts: { organization_id: organization_ids }) }
         | 
| 12 12 |  | 
| 13 13 | 
             
              scoped_search on: :title, complete_value: true
         | 
| 14 14 | 
             
              scoped_search on: :total_risk, complete_value: true
         | 
| @@ -20,10 +20,10 @@ module InventorySync | |
| 20 20 |  | 
| 21 21 | 
             
                def to_label
         | 
| 22 22 | 
             
                  case status
         | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 23 | 
            +
                  when DISCONNECT
         | 
| 24 | 
            +
                    N_('Host was not uploaded to your RH cloud inventory')
         | 
| 25 | 
            +
                  when SYNC
         | 
| 26 | 
            +
                    N_('Successfully uploaded to your RH cloud inventory')
         | 
| 27 27 | 
             
                  end
         | 
| 28 28 | 
             
                end
         | 
| 29 29 |  | 
| @@ -30,7 +30,8 @@ module ForemanRhCloud | |
| 30 30 | 
             
                        params: forward_params,
         | 
| 31 31 | 
             
                        user_agent: http_user_agent(original_request),
         | 
| 32 32 | 
             
                        content_type: original_request.media_type.presence || original_request.format.to_s,
         | 
| 33 | 
            -
                      } | 
| 33 | 
            +
                      }
         | 
| 34 | 
            +
                    ),
         | 
| 34 35 | 
             
                  }
         | 
| 35 36 | 
             
                  base_params.merge(path_params(original_request.path, certs))
         | 
| 36 37 | 
             
                end
         | 
| @@ -29,7 +29,7 @@ module ForemanRhCloud | |
| 29 29 | 
             
                def remediations
         | 
| 30 30 | 
             
                  @remediations ||= Hash[
         | 
| 31 31 | 
             
                    InsightsResolution.where(id: remediation_ids).pluck(:id, :resolution_type, :rule_id).map do |id, resolution_type, rule_id|
         | 
| 32 | 
            -
                      [id, {resolution_type: resolution_type, rule_id: rule_id}]
         | 
| 32 | 
            +
                      [id, { resolution_type: resolution_type, rule_id: rule_id }]
         | 
| 33 33 | 
             
                    end
         | 
| 34 34 | 
             
                  ]
         | 
| 35 35 | 
             
                end
         | 
    
        data/config/routes.rb
    CHANGED
    
    | @@ -47,8 +47,8 @@ Rails.application.routes.draw do | |
| 47 47 |  | 
| 48 48 | 
             
              # API routes
         | 
| 49 49 |  | 
| 50 | 
            -
              namespace :api, :defaults => {:format => 'json'} do
         | 
| 51 | 
            -
                scope '(:apiv)', :module => :v2, :defaults => {:apiv => 'v2'}, :apiv => /v1|v2/, :constraints => ApiConstraints.new(:version => 2, :default => true) do
         | 
| 50 | 
            +
              namespace :api, :defaults => { :format => 'json' } do
         | 
| 51 | 
            +
                scope '(:apiv)', :module => :v2, :defaults => { :apiv => 'v2' }, :apiv => /v1|v2/, :constraints => ApiConstraints.new(:version => 2, :default => true) do
         | 
| 52 52 | 
             
                  resources :organizations, :only => [:show] do
         | 
| 53 53 | 
             
                    namespace 'rh_cloud' do
         | 
| 54 54 | 
             
                      get 'missing_hosts', to: 'inventory#get_hosts'
         | 
| @@ -133,7 +133,7 @@ module ForemanInventoryUpload | |
| 133 133 |  | 
| 134 134 | 
             
                  def uuid_value!(value)
         | 
| 135 135 | 
             
                    uuid = uuid_value(value)
         | 
| 136 | 
            -
                    raise Foreman::Exception.new(N_('Value %{value} is not a valid UUID') % {value: value}) if value && uuid.empty?
         | 
| 136 | 
            +
                    raise Foreman::Exception.new(N_('Value %{value} is not a valid UUID') % { value: value }) if value && uuid.empty?
         | 
| 137 137 |  | 
| 138 138 | 
             
                    uuid
         | 
| 139 139 | 
             
                  end
         | 
| @@ -47,6 +47,7 @@ module ForemanInventoryUpload | |
| 47 47 | 
             
                      @stream.simple_field('account', account_id(host.organization).to_s)
         | 
| 48 48 | 
             
                      @stream.simple_field('subscription_manager_id', uuid_value!(host.subscription_facet&.uuid))
         | 
| 49 49 | 
             
                      @stream.simple_field('satellite_id', uuid_value!(host.subscription_facet&.uuid))
         | 
| 50 | 
            +
                      @stream.simple_field('convert2rhel_through_foreman', host.subscription_facet&.convert2rhel_through_foreman)
         | 
| 50 51 | 
             
                      @stream.simple_field('bios_uuid', bios_uuid(host))
         | 
| 51 52 | 
             
                      @stream.simple_field('vm_uuid', uuid_value(fact_value(host, 'virt::uuid')))
         | 
| 52 53 | 
             
                      @stream.simple_field('insights_id', uuid_value(fact_value(host, 'insights_id')))
         | 
| @@ -97,8 +97,8 @@ module ForemanRhCloud | |
| 97 97 | 
             
                                                                generate a report, upload it to the cloud and download it locally'
         | 
| 98 98 |  | 
| 99 99 | 
             
                    add_permissions_to_default_roles Role::ORG_ADMIN => plugin_permissions,
         | 
| 100 | 
            -
             | 
| 101 | 
            -
             | 
| 100 | 
            +
                      Role::MANAGER => plugin_permissions,
         | 
| 101 | 
            +
                      Role::SYSTEM_ADMIN => plugin_permissions
         | 
| 102 102 |  | 
| 103 103 | 
             
                    # Adding a sub menu after hosts menu
         | 
| 104 104 | 
             
                    divider :top_menu, caption: N_('RH Cloud'), parent: :configure_menu
         | 
    
        data/lib/foreman_rh_cloud.rb
    CHANGED
    
    | @@ -94,13 +94,13 @@ module ForemanRhCloud | |
| 94 94 | 
             
              # For testing purposes we can override the default hostname with an environment variable SATELLITE_RH_CLOUD_FOREMAN_HOST
         | 
| 95 95 | 
             
              def self.foreman_host
         | 
| 96 96 | 
             
                @foreman_host ||= begin
         | 
| 97 | 
            -
             | 
| 98 | 
            -
             | 
| 99 | 
            -
             | 
| 100 | 
            -
             | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
             | 
| 97 | 
            +
                  fullname = foreman_host_name
         | 
| 98 | 
            +
                  ::Host.unscoped.friendly.find(fullname)
         | 
| 99 | 
            +
                rescue ActiveRecord::RecordNotFound
         | 
| 100 | 
            +
                  # fullname didn't work. Let's try shortname
         | 
| 101 | 
            +
                  shortname = /(?<shortname>[^\.]*)\.?.*/.match(fullname)[:shortname]
         | 
| 102 | 
            +
                  ::Host.unscoped.friendly.find(shortname)
         | 
| 103 | 
            +
                end
         | 
| 104 104 | 
             
              end
         | 
| 105 105 |  | 
| 106 106 | 
             
              def self.foreman_host_name
         | 
| @@ -133,7 +133,7 @@ module InsightsCloud | |
| 133 133 | 
             
                      ]
         | 
| 134 134 | 
             
                    end.compact]
         | 
| 135 135 |  | 
| 136 | 
            -
                    {task_state: {task_done_reported: task_done_state}, hosts_state: hosts_state}
         | 
| 136 | 
            +
                    { task_state: { task_done_reported: task_done_state }, hosts_state: hosts_state }
         | 
| 137 137 | 
             
                  end
         | 
| 138 138 |  | 
| 139 139 | 
             
                  def task_status(host_task, host_name)
         | 
| @@ -41,7 +41,7 @@ module InsightsCloud | |
| 41 41 | 
             
                    Notification.create!(
         | 
| 42 42 | 
             
                      initiator: User.anonymous_admin,
         | 
| 43 43 | 
             
                      audience: ::Notification::AUDIENCE_ADMIN,
         | 
| 44 | 
            -
                      message: UINotifications::StringParser.new(blueprint.message, {hits_count: hits_count}).to_s,
         | 
| 44 | 
            +
                      message: UINotifications::StringParser.new(blueprint.message, { hits_count: hits_count }).to_s,
         | 
| 45 45 | 
             
                      notification_blueprint: blueprint,
         | 
| 46 46 | 
             
                      actions: {
         | 
| 47 47 | 
             
                        links: [
         | 
    
        data/package.json
    CHANGED
    
    
| @@ -42,7 +42,7 @@ module InsightsCloud::Api | |
| 42 42 | 
             
                    end.returns(res)
         | 
| 43 43 | 
             
                    InsightsCloud::Api::MachineTelemetriesController.any_instance.expects(:cp_owner_id).returns('123')
         | 
| 44 44 |  | 
| 45 | 
            -
                    post :forward_request, as: :json, params: { "path" => "static/v1/test", "machine_telemetry" => {"foo" => "bar"} }
         | 
| 45 | 
            +
                    post :forward_request, as: :json, params: { "path" => "static/v1/test", "machine_telemetry" => { "foo" => "bar" } }
         | 
| 46 46 | 
             
                    assert_equal @body, @response.body
         | 
| 47 47 | 
             
                  end
         | 
| 48 48 |  | 
| @@ -62,7 +62,7 @@ module InsightsCloud::Api | |
| 62 62 |  | 
| 63 63 | 
             
                  test "should set etag header to response from cloud" do
         | 
| 64 64 | 
             
                    etag = '12345'
         | 
| 65 | 
            -
                    req = RestClient::Request.new(:method => 'GET', :url => 'http://test.theforeman.org', :headers => { "If-None-Match": etag})
         | 
| 65 | 
            +
                    req = RestClient::Request.new(:method => 'GET', :url => 'http://test.theforeman.org', :headers => { "If-None-Match": etag })
         | 
| 66 66 | 
             
                    net_http_resp = Net::HTTPResponse.new(1.0, 200, "OK")
         | 
| 67 67 | 
             
                    net_http_resp[Rack::ETAG] = etag
         | 
| 68 68 | 
             
                    res = RestClient::Response.create(@body, net_http_resp, req)
         | 
| @@ -107,6 +107,7 @@ module InsightsCloud::Api | |
| 107 107 |  | 
| 108 108 | 
             
                context '#branch_info' do
         | 
| 109 109 | 
             
                  setup do
         | 
| 110 | 
            +
                    UpstreamOnlySettingsTestHelper.set_if_available('allow_multiple_content_views')
         | 
| 110 111 | 
             
                    User.current = User.find_by(login: 'secret_admin')
         | 
| 111 112 |  | 
| 112 113 | 
             
                    @env = FactoryBot.create(:katello_k_t_environment)
         | 
| @@ -122,11 +123,13 @@ module InsightsCloud::Api | |
| 122 123 | 
             
                        FactoryBot.create(
         | 
| 123 124 | 
             
                          :katello_content_view_environment,
         | 
| 124 125 | 
             
                          content_view: FactoryBot.create(:katello_content_view, organization: @env.organization),
         | 
| 125 | 
            -
                          lifecycle_environment: @env | 
| 126 | 
            +
                          lifecycle_environment: @env
         | 
| 127 | 
            +
                        ),
         | 
| 126 128 | 
             
                        FactoryBot.create(
         | 
| 127 129 | 
             
                          :katello_content_view_environment,
         | 
| 128 130 | 
             
                          content_view: FactoryBot.create(:katello_content_view, organization: @env.organization),
         | 
| 129 | 
            -
                          lifecycle_environment: @env2 | 
| 131 | 
            +
                          lifecycle_environment: @env2
         | 
| 132 | 
            +
                        ),
         | 
| 130 133 | 
             
                      ],
         | 
| 131 134 | 
             
                      organization: @env.organization
         | 
| 132 135 | 
             
                    )
         | 
| @@ -14,7 +14,7 @@ module InventoryUpload::Api | |
| 14 14 | 
             
                    .expects(:start_report_generation)
         | 
| 15 15 | 
             
                    .with(@test_org.id.to_s, @disconnected)
         | 
| 16 16 |  | 
| 17 | 
            -
                  post :generate_report, params: { organization_id: @test_org.id, disconnected: @disconnected}
         | 
| 17 | 
            +
                  post :generate_report, params: { organization_id: @test_org.id, disconnected: @disconnected }
         | 
| 18 18 |  | 
| 19 19 | 
             
                  assert_response :success
         | 
| 20 20 | 
             
                end
         | 
| @@ -56,7 +56,7 @@ end | |
| 56 56 |  | 
| 57 57 | 
             
            FactoryBot.define do
         | 
| 58 58 | 
             
              factory :katello_subscription_facets, :aliases => [:subscription_facet], :class => ::Katello::Host::SubscriptionFacet do
         | 
| 59 | 
            -
                sequence(:uuid) { |n| "00000000-%<n>04d-%<r>04d-0000-000000000000" % {n: n, r: rand(500)} }
         | 
| 59 | 
            +
                sequence(:uuid) { |n| "00000000-%<n>04d-%<r>04d-0000-000000000000" % { n: n, r: rand(500) } }
         | 
| 60 60 | 
             
                facts { { 'memory.memtotal' => "12 GB" } }
         | 
| 61 61 | 
             
              end
         | 
| 62 62 | 
             
            end
         | 
| @@ -60,8 +60,7 @@ class CloudConnectorAnnounceTaskTest < ActiveSupport::TestCase | |
| 60 60 |  | 
| 61 61 | 
             
                template_invocation = FactoryBot.build(:template_invocation,
         | 
| 62 62 | 
             
                  :template => job_template,
         | 
| 63 | 
            -
                  :job_invocation => job_invocation
         | 
| 64 | 
            -
                )
         | 
| 63 | 
            +
                  :job_invocation => job_invocation)
         | 
| 65 64 |  | 
| 66 65 | 
             
                template_invocation.input_values << FactoryBot.create(
         | 
| 67 66 | 
             
                  :template_invocation_input_value,
         | 
| @@ -217,8 +217,7 @@ class ConnectorPlaybookExecutionReporterTaskTest < ActiveSupport::TestCase | |
| 217 217 |  | 
| 218 218 | 
             
                template_invocation = FactoryBot.build(:template_invocation,
         | 
| 219 219 | 
             
                  :template => job_template,
         | 
| 220 | 
            -
                  :job_invocation => job_invocation
         | 
| 221 | 
            -
                )
         | 
| 220 | 
            +
                  :job_invocation => job_invocation)
         | 
| 222 221 |  | 
| 223 222 | 
             
                template_invocation.input_values << FactoryBot.create(
         | 
| 224 223 | 
             
                  :template_invocation_input_value,
         | 
    
        data/test/test_plugin_helper.rb
    CHANGED
    
    | @@ -117,3 +117,11 @@ module CandlepinIsolation | |
| 117 117 | 
             
                end
         | 
| 118 118 | 
             
              end
         | 
| 119 119 | 
             
            end
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            module UpstreamOnlySettingsTestHelper
         | 
| 122 | 
            +
              def self.set_if_available(setting_name, value: true)
         | 
| 123 | 
            +
                Setting[setting_name] = value
         | 
| 124 | 
            +
              rescue Foreman::Exception
         | 
| 125 | 
            +
                skip "Setting #{setting_name} is not available in Foreman"
         | 
| 126 | 
            +
              end
         | 
| 127 | 
            +
            end
         | 
| @@ -10,5 +10,6 @@ class RhCloudPermissionsTest < ActiveSupport::TestCase | |
| 10 10 | 
             
                  'insights_cloud/api/machine_telemetries/forward_request',
         | 
| 11 11 | 
             
                  'insights_cloud/api/machine_telemetries/branch_info',
         | 
| 12 12 | 
             
                ],
         | 
| 13 | 
            -
                skip_patterns: [/^(?!foreman_inventory_upload|insights_cloud|.*rh_cloud).*/] | 
| 13 | 
            +
                skip_patterns: [/^(?!foreman_inventory_upload|insights_cloud|.*rh_cloud).*/]
         | 
| 14 | 
            +
              ) # include only plugin paths
         | 
| 14 15 | 
             
            end
         | 
| @@ -15,7 +15,7 @@ class HitRemediationsRetrieverTest < ActiveSupport::TestCase | |
| 15 15 | 
             
                FactoryBot.create(:insights_facet, uuid: 'HOST2', host_id: @host2.id)
         | 
| 16 16 | 
             
                host2_hit1 = FactoryBot.create(:insights_hit, rule_id: rule1.rule_id, host_id: @host2.id)
         | 
| 17 17 |  | 
| 18 | 
            -
                pairs = [{'hit_id' => host1_hit1.id, 'resolution_id' => rule1_remediation1.id}, {'hit_id' => host2_hit1.id, 'resolution_id' => rule1_remediation1.id}]
         | 
| 18 | 
            +
                pairs = [{ 'hit_id' => host1_hit1.id, 'resolution_id' => rule1_remediation1.id }, { 'hit_id' => host2_hit1.id, 'resolution_id' => rule1_remediation1.id }]
         | 
| 19 19 | 
             
                retriever = ForemanRhCloud::HitRemediationsRetriever.new(pairs)
         | 
| 20 20 |  | 
| 21 21 | 
             
                actual_request = retriever.send(:playbook_request)
         | 
| @@ -38,7 +38,7 @@ class HitRemediationsRetrieverTest < ActiveSupport::TestCase | |
| 38 38 | 
             
                FactoryBot.create(:insights_facet, uuid: 'HOST2', host_id: @host2.id)
         | 
| 39 39 | 
             
                host2_hit1 = FactoryBot.create(:insights_hit, rule_id: rule1.rule_id, host_id: @host2.id)
         | 
| 40 40 |  | 
| 41 | 
            -
                pairs = [{'hit_id' => host1_hit1.id, 'resolution_id' => rule1_remediation1.id}, {'hit_id' => host2_hit1.id, 'resolution_id' => rule1_remediation2.id}]
         | 
| 41 | 
            +
                pairs = [{ 'hit_id' => host1_hit1.id, 'resolution_id' => rule1_remediation1.id }, { 'hit_id' => host2_hit1.id, 'resolution_id' => rule1_remediation2.id }]
         | 
| 42 42 | 
             
                retriever = ForemanRhCloud::HitRemediationsRetriever.new(pairs)
         | 
| 43 43 |  | 
| 44 44 | 
             
                actual_request = retriever.send(:playbook_request)
         | 
| @@ -20,7 +20,7 @@ class TemplateRendererHelperTest < ActiveSupport::TestCase | |
| 20 20 | 
             
                hit = FactoryBot.create(:insights_hit, rule: rule, host_id: @host1.id)
         | 
| 21 21 | 
             
                remediation = FactoryBot.create(:insights_resolution, rule: rule)
         | 
| 22 22 |  | 
| 23 | 
            -
                pairs = [{hit_id: hit.id, remediation_id: remediation.id}].to_json
         | 
| 23 | 
            +
                pairs = [{ hit_id: hit.id, remediation_id: remediation.id }].to_json
         | 
| 24 24 |  | 
| 25 25 | 
             
                actual_playbook = remediations_playbook(pairs)
         | 
| 26 26 |  | 
| @@ -5,6 +5,7 @@ class TagsGeneratorTest < ActiveSupport::TestCase | |
| 5 5 | 
             
              include CandlepinIsolation
         | 
| 6 6 |  | 
| 7 7 | 
             
              setup do
         | 
| 8 | 
            +
                UpstreamOnlySettingsTestHelper.set_if_available('allow_multiple_content_views')
         | 
| 8 9 | 
             
                User.current = User.find_by(login: 'secret_admin')
         | 
| 9 10 |  | 
| 10 11 | 
             
                env = FactoryBot.create(:katello_k_t_environment)
         | 
| @@ -28,11 +29,13 @@ class TagsGeneratorTest < ActiveSupport::TestCase | |
| 28 29 | 
             
                    FactoryBot.create(
         | 
| 29 30 | 
             
                      :katello_content_view_environment,
         | 
| 30 31 | 
             
                      content_view: FactoryBot.create(:katello_content_view, organization: env.organization),
         | 
| 31 | 
            -
                      lifecycle_environment: env | 
| 32 | 
            +
                      lifecycle_environment: env
         | 
| 33 | 
            +
                    ),
         | 
| 32 34 | 
             
                    FactoryBot.create(
         | 
| 33 35 | 
             
                      :katello_content_view_environment,
         | 
| 34 36 | 
             
                      content_view: FactoryBot.create(:katello_content_view, organization: env.organization),
         | 
| 35 | 
            -
                      lifecycle_environment: env2 | 
| 37 | 
            +
                      lifecycle_environment: env2
         | 
| 38 | 
            +
                    ),
         | 
| 36 39 | 
             
                  ]
         | 
| 37 40 | 
             
                )
         | 
| 38 41 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: foreman_rh_cloud
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 10.0. | 
| 4 | 
            +
              version: 10.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Foreman Red Hat Cloud team
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024- | 
| 11 | 
            +
            date: 2024-09-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: foreman_ansible
         | 
| @@ -44,14 +44,14 @@ dependencies: | |
| 44 44 | 
             
                requirements:
         | 
| 45 45 | 
             
                - - ">="
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: 4.14.0.rc1.1
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ">="
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: 4.14.0.rc1.1
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: rdoc
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -72,14 +72,14 @@ dependencies: | |
| 72 72 | 
             
                requirements:
         | 
| 73 73 | 
             
                - - "~>"
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: 0.0 | 
| 75 | 
            +
                    version: 0.1.0
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 80 | 
             
                - - "~>"
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: 0.0 | 
| 82 | 
            +
                    version: 0.1.0
         | 
| 83 83 | 
             
            description: Foreman plugin that process & upload data to Red Hat Cloud
         | 
| 84 84 | 
             
            email:
         | 
| 85 85 | 
             
            - rlavi@redhat.com, sshtein@redhat.com
         |