foreman_rh_cloud 4.0.25.1 → 4.0.26
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/app/controllers/api/v2/rh_cloud/inventory_controller.rb +4 -1
- data/app/controllers/insights_cloud/api/machine_telemetries_controller.rb +8 -0
- data/app/services/foreman_rh_cloud/cloud_request_forwarder.rb +14 -2
- data/config/Gemfile.lock.gh_test +74 -76
- data/config/routes.rb +1 -1
- data/lib/foreman_rh_cloud/engine.rb +2 -0
- data/lib/foreman_rh_cloud/version.rb +1 -1
- data/lib/insights_cloud/async/insights_client_status_aging.rb +4 -0
- data/lib/insights_cloud/async/insights_full_sync.rb +4 -0
- data/lib/insights_cloud/async/insights_generate_notifications.rb +4 -0
- data/lib/insights_cloud/async/insights_resolutions_sync.rb +7 -2
- data/lib/insights_cloud/async/insights_rules_sync.rb +10 -2
- data/lib/inventory_sync/async/inventory_full_sync.rb +4 -0
- data/lib/inventory_sync/async/inventory_hosts_sync.rb +4 -0
- data/lib/inventory_sync/async/inventory_scheduled_sync.rb +4 -0
- data/lib/inventory_sync/async/inventory_self_host_sync.rb +4 -0
- data/lib/inventory_sync/async/query_inventory_job.rb +4 -0
- data/package.json +2 -2
- data/test/controllers/insights_cloud/api/machine_telemetries_controller_test.rb +16 -39
- data/test/jobs/insights_resolutions_sync_test.rb +10 -1
- data/test/unit/services/foreman_rh_cloud/cloud_request_forwarder_test.rb +26 -0
- data/webpack/InsightsCloudSync/Components/InsightsHeader/index.js +0 -2
- data/webpack/InsightsCloudSync/Components/InsightsSettings/insightsSettings.scss +1 -0
- data/webpack/InsightsCloudSync/Components/__tests__/__snapshots__/InsightsHeader.test.js.snap +0 -1
- data/webpack/InsightsCloudSync/InsightsCloudSync.js +2 -0
- data/webpack/InsightsCloudSync/__snapshots__/InsightsCloudSync.test.js.snap +1 -0
- data/webpack/common/Switcher/HelpLabel.js +1 -1
- data/webpack/common/Switcher/__tests__/__snapshots__/HelpLabel.test.js.snap +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 713d1737fd81e7a54efa8a300fe4c0765c1d2a31b796218bcc1f447b473921af
         | 
| 4 | 
            +
              data.tar.gz: a47efbe51980f47c71e57af619f73a08d214f7af3bb84632946189a1aabe81f3
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c7419f0e5583f02038cf784e38d67f15dd0dfa3a392a72cd19000c0f51f41fc97a29ed2e9387bfee4e1fe7a91addb563db53167c98343b640f52e3b17a729387
         | 
| 7 | 
            +
              data.tar.gz: 2eb4fea115c546084e2365807e87933e60a102f1ec7455cfc5a368a1ae5a20587bf7c12206e40816a2893c19d02a035a2cee3c2262982a53f88542599bda629d
         | 
| @@ -7,6 +7,7 @@ module Api | |
| 7 7 | 
             
                    include InventoryUpload::TaskActions
         | 
| 8 8 |  | 
| 9 9 | 
             
                    api :GET, "/organizations/:organization_id/rh_cloud/report", N_("Download latest report")
         | 
| 10 | 
            +
                    param :organization_id, Integer, required: true, desc: N_("Set the current organization context for the request")
         | 
| 10 11 | 
             
                    def download_file
         | 
| 11 12 | 
             
                      filename, file = report_file(params[:organization_id])
         | 
| 12 13 |  | 
| @@ -16,6 +17,7 @@ module Api | |
| 16 17 | 
             
                    end
         | 
| 17 18 |  | 
| 18 19 | 
             
                    api :POST, "/organizations/:organization_id/rh_cloud/report", N_("Start report generation")
         | 
| 20 | 
            +
                    param :organization_id, Integer, required: true, desc: N_("Set the current organization context for the request")
         | 
| 19 21 | 
             
                    def generate_report
         | 
| 20 22 | 
             
                      organization_id = params[:organization_id]
         | 
| 21 23 |  | 
| @@ -27,6 +29,7 @@ module Api | |
| 27 29 | 
             
                    end
         | 
| 28 30 |  | 
| 29 31 | 
             
                    api :POST, "/organizations/:organization_id/rh_cloud/inventory_sync", N_("Start inventory synchronization")
         | 
| 32 | 
            +
                    param :organization_id, Integer, required: true, desc: N_("Set the current organization context for the request")
         | 
| 30 33 | 
             
                    def sync_inventory_status
         | 
| 31 34 | 
             
                      selected_org = Organization.find(params[:organization_id])
         | 
| 32 35 |  | 
| @@ -39,7 +42,7 @@ module Api | |
| 39 42 | 
             
                      render json: { message: error.message }, status: :bad_request
         | 
| 40 43 | 
             
                    end
         | 
| 41 44 |  | 
| 42 | 
            -
                    api :POST, "rh_cloud/enable_connector", N_("Enable cloud connector")
         | 
| 45 | 
            +
                    api :POST, "/rh_cloud/enable_connector", N_("Enable cloud connector")
         | 
| 43 46 | 
             
                    def enable_cloud_connector
         | 
| 44 47 | 
             
                      cloud_connector = ForemanRhCloud::CloudConnector.new
         | 
| 45 48 | 
             
                      render json: cloud_connector.install.to_json
         | 
| @@ -25,6 +25,14 @@ module InsightsCloud::Api | |
| 25 25 | 
             
                    }, status: :bad_gateway
         | 
| 26 26 | 
             
                  end
         | 
| 27 27 |  | 
| 28 | 
            +
                  if @cloud_response.code >= 300
         | 
| 29 | 
            +
                    return render json: {
         | 
| 30 | 
            +
                      :message => 'Cloud request failed',
         | 
| 31 | 
            +
                      :headers => {},
         | 
| 32 | 
            +
                      :response => @cloud_response,
         | 
| 33 | 
            +
                    }, status: @cloud_response.code
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 28 36 | 
             
                  if @cloud_response.headers[:content_disposition]
         | 
| 29 37 | 
             
                    return send_data @cloud_response, disposition: @cloud_response.headers[:content_disposition], type: @cloud_response.headers[:content_type]
         | 
| 30 38 | 
             
                  end
         | 
| @@ -17,6 +17,8 @@ module ForemanRhCloud | |
| 17 17 | 
             
                  logger.debug("Sending request to: #{request_opts[:url]}")
         | 
| 18 18 |  | 
| 19 19 | 
             
                  execute_cloud_request(request_opts)
         | 
| 20 | 
            +
                rescue RestClient::Exception => error_response
         | 
| 21 | 
            +
                  error_response.response
         | 
| 20 22 | 
             
                end
         | 
| 21 23 |  | 
| 22 24 | 
             
                def prepare_request_opts(original_request, forward_payload, forward_params, certs)
         | 
| @@ -62,6 +64,12 @@ module ForemanRhCloud | |
| 62 64 | 
             
                      ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
         | 
| 63 65 | 
             
                      ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
         | 
| 64 66 | 
             
                    }
         | 
| 67 | 
            +
                  when connection_test_request?
         | 
| 68 | 
            +
                    {
         | 
| 69 | 
            +
                      url: ForemanRhCloud.cert_base_url + '/api/apicast-tests/ping',
         | 
| 70 | 
            +
                      ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
         | 
| 71 | 
            +
                      ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
         | 
| 72 | 
            +
                    }
         | 
| 65 73 | 
             
                  else # Legacy insights API
         | 
| 66 74 | 
             
                    {
         | 
| 67 75 | 
             
                      url: ForemanRhCloud.legacy_insights_url + request_path.sub('/redhat_access/r/insights', '/r/insights'),
         | 
| @@ -76,6 +84,10 @@ module ForemanRhCloud | |
| 76 84 | 
             
                  ->(request_path) { request_path.include? '/platform' }
         | 
| 77 85 | 
             
                end
         | 
| 78 86 |  | 
| 87 | 
            +
                def connection_test_request?
         | 
| 88 | 
            +
                  ->(request_path) { request_path =~ /redhat_access\/r\/insights\/?$/ }
         | 
| 89 | 
            +
                end
         | 
| 90 | 
            +
             | 
| 79 91 | 
             
                def prepare_forward_cloud_url(base_url, request_path)
         | 
| 80 92 | 
             
                  cloud_path = request_path.sub('/redhat_access/r/insights/platform/', '')
         | 
| 81 93 | 
             
                                           .sub('/redhat_access/r/insights/', '')
         | 
| @@ -84,11 +96,11 @@ module ForemanRhCloud | |
| 84 96 | 
             
                end
         | 
| 85 97 |  | 
| 86 98 | 
             
                def core_app_name
         | 
| 87 | 
            -
                   | 
| 99 | 
            +
                  BranchInfo.new.core_app_name
         | 
| 88 100 | 
             
                end
         | 
| 89 101 |  | 
| 90 102 | 
             
                def core_app_version
         | 
| 91 | 
            -
                   | 
| 103 | 
            +
                  BranchInfo.new.core_app_version
         | 
| 92 104 | 
             
                end
         | 
| 93 105 |  | 
| 94 106 | 
             
                def http_user_agent(original_request)
         | 
    
        data/config/Gemfile.lock.gh_test
    CHANGED
    
    | @@ -40,66 +40,66 @@ PATH | |
| 40 40 | 
             
            GEM
         | 
| 41 41 | 
             
              remote: https://rubygems.org/
         | 
| 42 42 | 
             
              specs:
         | 
| 43 | 
            -
                actioncable (6.0.3. | 
| 44 | 
            -
                  actionpack (= 6.0.3. | 
| 43 | 
            +
                actioncable (6.0.3.6)
         | 
| 44 | 
            +
                  actionpack (= 6.0.3.6)
         | 
| 45 45 | 
             
                  nio4r (~> 2.0)
         | 
| 46 46 | 
             
                  websocket-driver (>= 0.6.1)
         | 
| 47 | 
            -
                actionmailbox (6.0.3. | 
| 48 | 
            -
                  actionpack (= 6.0.3. | 
| 49 | 
            -
                  activejob (= 6.0.3. | 
| 50 | 
            -
                  activerecord (= 6.0.3. | 
| 51 | 
            -
                  activestorage (= 6.0.3. | 
| 52 | 
            -
                  activesupport (= 6.0.3. | 
| 47 | 
            +
                actionmailbox (6.0.3.6)
         | 
| 48 | 
            +
                  actionpack (= 6.0.3.6)
         | 
| 49 | 
            +
                  activejob (= 6.0.3.6)
         | 
| 50 | 
            +
                  activerecord (= 6.0.3.6)
         | 
| 51 | 
            +
                  activestorage (= 6.0.3.6)
         | 
| 52 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 53 53 | 
             
                  mail (>= 2.7.1)
         | 
| 54 | 
            -
                actionmailer (6.0.3. | 
| 55 | 
            -
                  actionpack (= 6.0.3. | 
| 56 | 
            -
                  actionview (= 6.0.3. | 
| 57 | 
            -
                  activejob (= 6.0.3. | 
| 54 | 
            +
                actionmailer (6.0.3.6)
         | 
| 55 | 
            +
                  actionpack (= 6.0.3.6)
         | 
| 56 | 
            +
                  actionview (= 6.0.3.6)
         | 
| 57 | 
            +
                  activejob (= 6.0.3.6)
         | 
| 58 58 | 
             
                  mail (~> 2.5, >= 2.5.4)
         | 
| 59 59 | 
             
                  rails-dom-testing (~> 2.0)
         | 
| 60 | 
            -
                actionpack (6.0.3. | 
| 61 | 
            -
                  actionview (= 6.0.3. | 
| 62 | 
            -
                  activesupport (= 6.0.3. | 
| 60 | 
            +
                actionpack (6.0.3.6)
         | 
| 61 | 
            +
                  actionview (= 6.0.3.6)
         | 
| 62 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 63 63 | 
             
                  rack (~> 2.0, >= 2.0.8)
         | 
| 64 64 | 
             
                  rack-test (>= 0.6.3)
         | 
| 65 65 | 
             
                  rails-dom-testing (~> 2.0)
         | 
| 66 66 | 
             
                  rails-html-sanitizer (~> 1.0, >= 1.2.0)
         | 
| 67 | 
            -
                actiontext (6.0.3. | 
| 68 | 
            -
                  actionpack (= 6.0.3. | 
| 69 | 
            -
                  activerecord (= 6.0.3. | 
| 70 | 
            -
                  activestorage (= 6.0.3. | 
| 71 | 
            -
                  activesupport (= 6.0.3. | 
| 67 | 
            +
                actiontext (6.0.3.6)
         | 
| 68 | 
            +
                  actionpack (= 6.0.3.6)
         | 
| 69 | 
            +
                  activerecord (= 6.0.3.6)
         | 
| 70 | 
            +
                  activestorage (= 6.0.3.6)
         | 
| 71 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 72 72 | 
             
                  nokogiri (>= 1.8.5)
         | 
| 73 | 
            -
                actionview (6.0.3. | 
| 74 | 
            -
                  activesupport (= 6.0.3. | 
| 73 | 
            +
                actionview (6.0.3.6)
         | 
| 74 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 75 75 | 
             
                  builder (~> 3.1)
         | 
| 76 76 | 
             
                  erubi (~> 1.4)
         | 
| 77 77 | 
             
                  rails-dom-testing (~> 2.0)
         | 
| 78 78 | 
             
                  rails-html-sanitizer (~> 1.1, >= 1.2.0)
         | 
| 79 | 
            -
                activejob (6.0.3. | 
| 80 | 
            -
                  activesupport (= 6.0.3. | 
| 79 | 
            +
                activejob (6.0.3.6)
         | 
| 80 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 81 81 | 
             
                  globalid (>= 0.3.6)
         | 
| 82 | 
            -
                activemodel (6.0.3. | 
| 83 | 
            -
                  activesupport (= 6.0.3. | 
| 84 | 
            -
                activerecord (6.0.3. | 
| 85 | 
            -
                  activemodel (= 6.0.3. | 
| 86 | 
            -
                  activesupport (= 6.0.3. | 
| 87 | 
            -
                activerecord-import (1.0. | 
| 82 | 
            +
                activemodel (6.0.3.6)
         | 
| 83 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 84 | 
            +
                activerecord (6.0.3.6)
         | 
| 85 | 
            +
                  activemodel (= 6.0.3.6)
         | 
| 86 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 87 | 
            +
                activerecord-import (1.0.8)
         | 
| 88 88 | 
             
                  activerecord (>= 3.2)
         | 
| 89 89 | 
             
                activerecord-nulldb-adapter (0.7.0)
         | 
| 90 90 | 
             
                  activerecord (>= 5.2.0, < 6.3)
         | 
| 91 | 
            -
                activerecord-session_store ( | 
| 92 | 
            -
                  actionpack (>= 4. | 
| 93 | 
            -
                  activerecord (>= 4. | 
| 91 | 
            +
                activerecord-session_store (2.0.0)
         | 
| 92 | 
            +
                  actionpack (>= 5.2.4.1)
         | 
| 93 | 
            +
                  activerecord (>= 5.2.4.1)
         | 
| 94 94 | 
             
                  multi_json (~> 1.11, >= 1.11.2)
         | 
| 95 | 
            -
                  rack (>=  | 
| 96 | 
            -
                  railties (>= 4. | 
| 97 | 
            -
                activestorage (6.0.3. | 
| 98 | 
            -
                  actionpack (= 6.0.3. | 
| 99 | 
            -
                  activejob (= 6.0.3. | 
| 100 | 
            -
                  activerecord (= 6.0.3. | 
| 101 | 
            -
                  marcel (~> 0. | 
| 102 | 
            -
                activesupport (6.0.3. | 
| 95 | 
            +
                  rack (>= 2.0.8, < 3)
         | 
| 96 | 
            +
                  railties (>= 5.2.4.1)
         | 
| 97 | 
            +
                activestorage (6.0.3.6)
         | 
| 98 | 
            +
                  actionpack (= 6.0.3.6)
         | 
| 99 | 
            +
                  activejob (= 6.0.3.6)
         | 
| 100 | 
            +
                  activerecord (= 6.0.3.6)
         | 
| 101 | 
            +
                  marcel (~> 1.0.0)
         | 
| 102 | 
            +
                activesupport (6.0.3.6)
         | 
| 103 103 | 
             
                  concurrent-ruby (~> 1.0, >= 1.0.2)
         | 
| 104 104 | 
             
                  i18n (>= 0.7, < 2)
         | 
| 105 105 | 
             
                  minitest (~> 5.1)
         | 
| @@ -108,7 +108,7 @@ GEM | |
| 108 108 | 
             
                addressable (2.7.0)
         | 
| 109 109 | 
             
                  public_suffix (>= 2.0.2, < 5.0)
         | 
| 110 110 | 
             
                algebrick (0.7.5)
         | 
| 111 | 
            -
                amazing_print (1. | 
| 111 | 
            +
                amazing_print (1.3.0)
         | 
| 112 112 | 
             
                ancestry (3.2.1)
         | 
| 113 113 | 
             
                  activerecord (>= 4.2.0)
         | 
| 114 114 | 
             
                anemone (0.7.2)
         | 
| @@ -135,13 +135,13 @@ GEM | |
| 135 135 | 
             
                benchmark-ips (2.8.4)
         | 
| 136 136 | 
             
                binding_of_caller (1.0.0)
         | 
| 137 137 | 
             
                  debug_inspector (>= 0.0.1)
         | 
| 138 | 
            -
                bootsnap (1.7. | 
| 138 | 
            +
                bootsnap (1.7.3)
         | 
| 139 139 | 
             
                  msgpack (~> 1.0)
         | 
| 140 140 | 
             
                bootstrap-sass (3.4.1)
         | 
| 141 141 | 
             
                  autoprefixer-rails (>= 5.2.1)
         | 
| 142 142 | 
             
                  sassc (>= 2.0.0)
         | 
| 143 143 | 
             
                builder (3.2.4)
         | 
| 144 | 
            -
                bullet (6.1. | 
| 144 | 
            +
                bullet (6.1.4)
         | 
| 145 145 | 
             
                  activesupport (>= 3.0.0)
         | 
| 146 146 | 
             
                  uniform_notifier (~> 1.11)
         | 
| 147 147 | 
             
                byebug (11.1.3)
         | 
| @@ -167,7 +167,7 @@ GEM | |
| 167 167 | 
             
                  coffee-script-source
         | 
| 168 168 | 
             
                  execjs
         | 
| 169 169 | 
             
                coffee-script-source (1.12.2)
         | 
| 170 | 
            -
                concurrent-ruby (1.1. | 
| 170 | 
            +
                concurrent-ruby (1.1.9)
         | 
| 171 171 | 
             
                concurrent-ruby-edge (0.6.0)
         | 
| 172 172 | 
             
                  concurrent-ruby (~> 1.1.6)
         | 
| 173 173 | 
             
                connection_pool (2.2.3)
         | 
| @@ -179,12 +179,12 @@ GEM | |
| 179 179 | 
             
                daemons (1.3.1)
         | 
| 180 180 | 
             
                database_cleaner (1.99.0)
         | 
| 181 181 | 
             
                deacon (1.0.0)
         | 
| 182 | 
            -
                debug_inspector (1. | 
| 182 | 
            +
                debug_inspector (1.1.0)
         | 
| 183 183 | 
             
                declarative (0.0.20)
         | 
| 184 184 | 
             
                declarative-option (0.1.0)
         | 
| 185 | 
            -
                deep_cloneable (3. | 
| 185 | 
            +
                deep_cloneable (3.1.0)
         | 
| 186 186 | 
             
                  activerecord (>= 3.1.0, < 7)
         | 
| 187 | 
            -
                deface (1. | 
| 187 | 
            +
                deface (1.8.1)
         | 
| 188 188 | 
             
                  nokogiri (>= 1.6)
         | 
| 189 189 | 
             
                  polyglot
         | 
| 190 190 | 
             
                  rails (>= 5.2)
         | 
| @@ -337,7 +337,7 @@ GEM | |
| 337 337 | 
             
                http-cookie (1.0.3)
         | 
| 338 338 | 
             
                  domain_name (~> 0.5)
         | 
| 339 339 | 
             
                httpclient (2.8.3)
         | 
| 340 | 
            -
                i18n (1.8. | 
| 340 | 
            +
                i18n (1.8.10)
         | 
| 341 341 | 
             
                  concurrent-ruby (~> 1.0)
         | 
| 342 342 | 
             
                immigrant (0.3.6)
         | 
| 343 343 | 
             
                  activerecord (>= 3.0)
         | 
| @@ -368,16 +368,14 @@ GEM | |
| 368 368 | 
             
                  nokogiri (>= 1.5.9)
         | 
| 369 369 | 
             
                mail (2.7.1)
         | 
| 370 370 | 
             
                  mini_mime (>= 0.1.1)
         | 
| 371 | 
            -
                marcel (0. | 
| 372 | 
            -
                  mimemagic (~> 0.3.2)
         | 
| 371 | 
            +
                marcel (1.0.0)
         | 
| 373 372 | 
             
                maruku (0.7.3)
         | 
| 374 373 | 
             
                memoist (0.16.2)
         | 
| 375 374 | 
             
                method_source (1.0.0)
         | 
| 376 375 | 
             
                mime-types (3.3.1)
         | 
| 377 376 | 
             
                  mime-types-data (~> 3.2015)
         | 
| 378 | 
            -
                mime-types-data (3. | 
| 379 | 
            -
                 | 
| 380 | 
            -
                mini_mime (1.0.2)
         | 
| 377 | 
            +
                mime-types-data (3.2021.0225)
         | 
| 378 | 
            +
                mini_mime (1.0.3)
         | 
| 381 379 | 
             
                mini_portile2 (2.5.0)
         | 
| 382 380 | 
             
                minitest (5.10.3)
         | 
| 383 381 | 
             
                minitest-reporters (1.4.3)
         | 
| @@ -403,8 +401,8 @@ GEM | |
| 403 401 | 
             
                  net-ssh (>= 2.6.5, < 7.0.0)
         | 
| 404 402 | 
             
                net-ssh (4.2.0)
         | 
| 405 403 | 
             
                netrc (0.11.0)
         | 
| 406 | 
            -
                nio4r (2.5. | 
| 407 | 
            -
                nokogiri (1.11. | 
| 404 | 
            +
                nio4r (2.5.7)
         | 
| 405 | 
            +
                nokogiri (1.11.2)
         | 
| 408 406 | 
             
                  mini_portile2 (~> 2.5.0)
         | 
| 409 407 | 
             
                  racc (~> 1.4)
         | 
| 410 408 | 
             
                oauth (0.5.5)
         | 
| @@ -414,7 +412,7 @@ GEM | |
| 414 412 | 
             
                  json (>= 1, < 3)
         | 
| 415 413 | 
             
                paint (2.2.1)
         | 
| 416 414 | 
             
                parallel (1.20.1)
         | 
| 417 | 
            -
                parallel_tests (3. | 
| 415 | 
            +
                parallel_tests (3.6.0)
         | 
| 418 416 | 
             
                  parallel
         | 
| 419 417 | 
             
                parse-cron (0.1.4)
         | 
| 420 418 | 
             
                parser (3.0.0.0)
         | 
| @@ -491,20 +489,20 @@ GEM | |
| 491 489 | 
             
                  rack
         | 
| 492 490 | 
             
                rack-test (1.1.0)
         | 
| 493 491 | 
             
                  rack (>= 1.0, < 3)
         | 
| 494 | 
            -
                rails (6.0.3. | 
| 495 | 
            -
                  actioncable (= 6.0.3. | 
| 496 | 
            -
                  actionmailbox (= 6.0.3. | 
| 497 | 
            -
                  actionmailer (= 6.0.3. | 
| 498 | 
            -
                  actionpack (= 6.0.3. | 
| 499 | 
            -
                  actiontext (= 6.0.3. | 
| 500 | 
            -
                  actionview (= 6.0.3. | 
| 501 | 
            -
                  activejob (= 6.0.3. | 
| 502 | 
            -
                  activemodel (= 6.0.3. | 
| 503 | 
            -
                  activerecord (= 6.0.3. | 
| 504 | 
            -
                  activestorage (= 6.0.3. | 
| 505 | 
            -
                  activesupport (= 6.0.3. | 
| 492 | 
            +
                rails (6.0.3.6)
         | 
| 493 | 
            +
                  actioncable (= 6.0.3.6)
         | 
| 494 | 
            +
                  actionmailbox (= 6.0.3.6)
         | 
| 495 | 
            +
                  actionmailer (= 6.0.3.6)
         | 
| 496 | 
            +
                  actionpack (= 6.0.3.6)
         | 
| 497 | 
            +
                  actiontext (= 6.0.3.6)
         | 
| 498 | 
            +
                  actionview (= 6.0.3.6)
         | 
| 499 | 
            +
                  activejob (= 6.0.3.6)
         | 
| 500 | 
            +
                  activemodel (= 6.0.3.6)
         | 
| 501 | 
            +
                  activerecord (= 6.0.3.6)
         | 
| 502 | 
            +
                  activestorage (= 6.0.3.6)
         | 
| 503 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 506 504 | 
             
                  bundler (>= 1.3.0)
         | 
| 507 | 
            -
                  railties (= 6.0.3. | 
| 505 | 
            +
                  railties (= 6.0.3.6)
         | 
| 508 506 | 
             
                  sprockets-rails (>= 2.0.0)
         | 
| 509 507 | 
             
                rails-controller-testing (1.0.5)
         | 
| 510 508 | 
             
                  actionpack (>= 5.0.1.rc1)
         | 
| @@ -518,9 +516,9 @@ GEM | |
| 518 516 | 
             
                rails-i18n (6.0.0)
         | 
| 519 517 | 
             
                  i18n (>= 0.7, < 2)
         | 
| 520 518 | 
             
                  railties (>= 6.0.0, < 7)
         | 
| 521 | 
            -
                railties (6.0.3. | 
| 522 | 
            -
                  actionpack (= 6.0.3. | 
| 523 | 
            -
                  activesupport (= 6.0.3. | 
| 519 | 
            +
                railties (6.0.3.6)
         | 
| 520 | 
            +
                  actionpack (= 6.0.3.6)
         | 
| 521 | 
            +
                  activesupport (= 6.0.3.6)
         | 
| 524 522 | 
             
                  method_source
         | 
| 525 523 | 
             
                  rake (>= 0.8.7)
         | 
| 526 524 | 
             
                  thor (>= 0.20.3, < 2.0)
         | 
| @@ -620,8 +618,8 @@ GEM | |
| 620 618 | 
             
                  tilt
         | 
| 621 619 | 
             
                scoped_search (4.1.9)
         | 
| 622 620 | 
             
                  activerecord (>= 4.2.0)
         | 
| 623 | 
            -
                sd_notify (0.1. | 
| 624 | 
            -
                secure_headers (6.3. | 
| 621 | 
            +
                sd_notify (0.1.1)
         | 
| 622 | 
            +
                secure_headers (6.3.2)
         | 
| 625 623 | 
             
                selenium-webdriver (3.142.7)
         | 
| 626 624 | 
             
                  childprocess (>= 0.5, < 4.0)
         | 
| 627 625 | 
             
                  rubyzip (>= 1.2.2)
         | 
| @@ -708,7 +706,7 @@ PLATFORMS | |
| 708 706 |  | 
| 709 707 | 
             
            DEPENDENCIES
         | 
| 710 708 | 
             
              activerecord-nulldb-adapter
         | 
| 711 | 
            -
              activerecord-session_store (>=  | 
| 709 | 
            +
              activerecord-session_store (>= 2.0.0, < 3)
         | 
| 712 710 | 
             
              amazing_print (~> 1.1)
         | 
| 713 711 | 
             
              ancestry (>= 3.0.7, < 4, != 3.2.0)
         | 
| 714 712 | 
             
              apipie-dsl (>= 2.2.6)
         | 
    
        data/config/routes.rb
    CHANGED
    
    | @@ -39,7 +39,7 @@ Rails.application.routes.draw do | |
| 39 39 | 
             
                end
         | 
| 40 40 |  | 
| 41 41 | 
             
                scope '/r/insights' do
         | 
| 42 | 
            -
                  match '/*path', :constraints => lambda { |req| !req.path.include?('view/api') }, to: 'machine_telemetries#forward_request', via: [:get, :post, :delete,:put, :patch]
         | 
| 42 | 
            +
                  match '(/*path)(/)', :constraints => lambda { |req| !req.path.include?('view/api') }, to: 'machine_telemetries#forward_request', via: [:get, :post, :delete,:put, :patch]
         | 
| 43 43 | 
             
                end
         | 
| 44 44 | 
             
              end
         | 
| 45 45 |  | 
| @@ -42,6 +42,8 @@ module ForemanRhCloud | |
| 42 42 | 
             
                  Foreman::Plugin.register :foreman_rh_cloud do
         | 
| 43 43 | 
             
                    requires_foreman '>= 2.3'
         | 
| 44 44 |  | 
| 45 | 
            +
                    apipie_documented_controllers ["#{ForemanRhCloud::Engine.root}/app/controllers/api/v2/**/*.rb"]
         | 
| 46 | 
            +
             | 
| 45 47 | 
             
                    # Add permissions
         | 
| 46 48 | 
             
                    security_block :foreman_rh_cloud do
         | 
| 47 49 | 
             
                      permission(
         | 
| @@ -19,8 +19,9 @@ module InsightsCloud | |
| 19 19 | 
             
                  def run
         | 
| 20 20 | 
             
                    InsightsResolution.transaction do
         | 
| 21 21 | 
             
                      InsightsResolution.delete_all
         | 
| 22 | 
            -
                       | 
| 23 | 
            -
                       | 
| 22 | 
            +
                      rule_ids = relevant_rules
         | 
| 23 | 
            +
                      api_response = query_insights_resolutions(rule_ids) unless rule_ids.empty?
         | 
| 24 | 
            +
                      write_resolutions(api_response) if api_response
         | 
| 24 25 | 
             
                    end
         | 
| 25 26 | 
             
                  end
         | 
| 26 27 |  | 
| @@ -70,6 +71,10 @@ module InsightsCloud | |
| 70 71 | 
             
                  def to_rule_id(resolution_rule_id)
         | 
| 71 72 | 
             
                    RULE_ID_REGEX.match(resolution_rule_id).named_captures.fetch('id', resolution_rule_id)
         | 
| 72 73 | 
             
                  end
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                  def rescue_strategy_for_self
         | 
| 76 | 
            +
                    Dynflow::Action::Rescue::Fail
         | 
| 77 | 
            +
                  end
         | 
| 73 78 | 
             
                end
         | 
| 74 79 | 
             
              end
         | 
| 75 80 | 
             
            end
         | 
| @@ -11,8 +11,12 @@ module InsightsCloud | |
| 11 11 | 
             
                      return
         | 
| 12 12 | 
             
                    end
         | 
| 13 13 |  | 
| 14 | 
            -
                     | 
| 15 | 
            -
                     | 
| 14 | 
            +
                    # since the tasks are not connected, we need to force sequence execution here
         | 
| 15 | 
            +
                    # to make sure we don't run resolutions until we synced all our rules
         | 
| 16 | 
            +
                    sequence do
         | 
| 17 | 
            +
                      plan_self
         | 
| 18 | 
            +
                      plan_resolutions
         | 
| 19 | 
            +
                    end
         | 
| 16 20 | 
             
                  end
         | 
| 17 21 |  | 
| 18 22 | 
             
                  def plan_resolutions
         | 
| @@ -71,6 +75,10 @@ module InsightsCloud | |
| 71 75 | 
             
                      rating:  rule_hash['rating'],
         | 
| 72 76 | 
             
                    }
         | 
| 73 77 | 
             
                  end
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                  def rescue_strategy_for_self
         | 
| 80 | 
            +
                    Dynflow::Action::Rescue::Fail
         | 
| 81 | 
            +
                  end
         | 
| 74 82 | 
             
                end
         | 
| 75 83 | 
             
              end
         | 
| 76 84 | 
             
            end
         | 
    
        data/package.json
    CHANGED
    
    
| @@ -7,6 +7,8 @@ module InsightsCloud::Api | |
| 7 7 | 
             
                end
         | 
| 8 8 |  | 
| 9 9 | 
             
                context '#forward_request' do
         | 
| 10 | 
            +
                  include MockCerts
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
                  setup do
         | 
| 11 13 | 
             
                    @body = 'Cloud response body'
         | 
| 12 14 | 
             
                    @http_req = RestClient::Request.new(:method => 'GET', :url => 'http://test.theforeman.org')
         | 
| @@ -16,38 +18,9 @@ module InsightsCloud::Api | |
| 16 18 | 
             
                    User.current = ::Katello::CpConsumerUser.new(:uuid => host.subscription_facet.uuid, :login => host.subscription_facet.uuid)
         | 
| 17 19 | 
             
                    InsightsCloud::Api::MachineTelemetriesController.any_instance.stubs(:upstream_owner).returns({ 'uuid' => 'abcdefg' })
         | 
| 18 20 |  | 
| 19 | 
            -
                     | 
| 20 | 
            -
             | 
| 21 | 
            -
                     | 
| 22 | 
            -
                    "FzAVBgNVBAMMDnRoZWZvcmVtYW4ub3JnMB4XDTE4MDMyNDEyMzYyOFoXDTI4MDMy\r\n" +
         | 
| 23 | 
            -
                    "MTEyMzYyOFowTzELMAkGA1UEBhMCSUwxETAPBgNVBAgMCFRlbCBBdml2MRQwEgYD\r\n" +
         | 
| 24 | 
            -
                    "VQQKDAtUaGUgRm9yZW1hbjEXMBUGA1UEAwwOdGhlZm9yZW1hbi5vcmcwggIiMA0G\r\n" +
         | 
| 25 | 
            -
                    "CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF04/s4h+BgHPG1HDZ/sDlYq925pkc\r\n" +
         | 
| 26 | 
            -
                    "RTVAfnE2EXDAmZ6W4Q9ueDY65MHe3ZWO5Dg72kNSP2sK9kRI7Dk5CAFOgyw1rH8t\r\n" +
         | 
| 27 | 
            -
                    "Hd1+0xp/lv6e4SvSYghxIL68vFe0ftKkm1usqejBM5ZTgKr7JCI+XSIN36F65Kde\r\n" +
         | 
| 28 | 
            -
                    "c+vxwBnayuhP04r9/aaE/709SXML4eRVYW8I3qFy9FPtUOm+bY8U2PIv5fHayqbG\r\n" +
         | 
| 29 | 
            -
                    "cL/4t3+MCtMhHJsLzdBXya+1P5t+HcKjUNlmwoUF961YAktVuEFloGd0RMRlqF3/\r\n" +
         | 
| 30 | 
            -
                    "itU3QNlXgA5QBIciE5VPr/PiqgMC3zgd5avjF4OribZ+N9AATLiQMW78il5wSfcc\r\n" +
         | 
| 31 | 
            -
                    "kQjU9ChOLrzku455vQ8KE4bc0qvpCWGfUah6MvL9JB+TQkRl/8kxl0b9ZinIvJDH\r\n" +
         | 
| 32 | 
            -
                    "ynVMb4cB/TDEjrjOfzn9mWLH0ZJqjmc2bER/G12WQxOaYLxdVwRStD3Yh6PtiFWu\r\n" +
         | 
| 33 | 
            -
                    "sXOk19UOTVkeuvGFVtvzLfEwQ1lDEo7+VBQz8FG/HBu2Hpq3IwCFrHuicikwjQJk\r\n" +
         | 
| 34 | 
            -
                    "nfturgD0rBOKEc1qWNZRCvovYOLL6ihvv5Orujsx5ZCHOAtnVNxkvIlFt2RS45LF\r\n" +
         | 
| 35 | 
            -
                    "MtPJyhAc6SjitllfUEirxprsbmeSZqrIfzcGaEhgOSnyik1WMv6bYiqPfBg8Fzjh\r\n" +
         | 
| 36 | 
            -
                    "vOCbtiDNPmvgOwIDAQABo1MwUTAdBgNVHQ4EFgQUtkAgQopsTtG9zSG3MgW2IxHD\r\n" +
         | 
| 37 | 
            -
                    "MDwwHwYDVR0jBBgwFoAUtkAgQopsTtG9zSG3MgW2IxHDMDwwDwYDVR0TAQH/BAUw\r\n" +
         | 
| 38 | 
            -
                    "AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAJq7iN+ZroRBweNhvUobxs75bLIV6tNn1\r\n" +
         | 
| 39 | 
            -
                    "MdNHDRA+hezwf+gxHZhFyaAHfTpst2/9leK5Qe5Zd6gZLr3E5/8ppQuRod72H39B\r\n" +
         | 
| 40 | 
            -
                    "vxMlG5zxDss0WMo3vZeKZbTY6QhXi/lY2IZ6OGV4feSvCsYxn27GTjjrRUSLFeHH\r\n" +
         | 
| 41 | 
            -
                    "JVemCwCDMavaE3+OIY4v2P4FcG+MjUvfOB9ahI24TWL7YgrsNVmJjCILq+EeUj0t\r\n" +
         | 
| 42 | 
            -
                    "Gde1SXVyLkqt7PoxHRJAE0BCEMJSnjxaVB329acJgeehBUxjj4CCPqtDxtbz9HEH\r\n" +
         | 
| 43 | 
            -
                    "mOKfNdaKpFor+DUeEKUWVGnr9U9xOaC+Ws+oX7MIEUCDM7p2ob4JwcjnFs1jZgHh\r\n" +
         | 
| 44 | 
            -
                    "Hwig+i7doTlc701PvKWO96fuNHK3B3/jTb1fVvSZ49O/RvY1VWODdUdxWmXGHNh3\r\n" +
         | 
| 45 | 
            -
                    "LoR8tSPEb46lC2DXGaIQumqQt8PnBG+vL1qkQa1SGTV7dJ8TTbxbv0S+sS+igkk9\r\n" +
         | 
| 46 | 
            -
                    "zsIEK8Ea3Ep935cXximz0faAAKHSA+It+xHLAyDtqy2KaAEBgGsBuuWlUfK6TaP3\r\n" +
         | 
| 47 | 
            -
                    "Gwdjct3y4yYUO45lUsUfHqX8vk/4ttW5zYeDiW+HArJz+9VUXNbEdury4kGuHgBj\r\n" +
         | 
| 48 | 
            -
                    "xHD4Bsul65+hHZ9QywKU26F1A6TLkYpQ2rk/Dx9LGICM4m4IlHjWJPFsQdtkyOor\r\n" +
         | 
| 49 | 
            -
                    "osxMtcaZZ1E=\r\n" +
         | 
| 50 | 
            -
                    "-----END CERTIFICATE-----"
         | 
| 21 | 
            +
                    setup_certs_expectation do
         | 
| 22 | 
            +
                      InsightsCloud::Api::MachineTelemetriesController.any_instance.stubs(:candlepin_id_cert)
         | 
| 23 | 
            +
                    end
         | 
| 51 24 | 
             
                  end
         | 
| 52 25 |  | 
| 53 26 | 
             
                  test "should respond with response from cloud" do
         | 
| @@ -67,13 +40,6 @@ module InsightsCloud::Api | |
| 67 40 | 
             
                    ::ForemanRhCloud::CloudRequestForwarder.any_instance.expects(:execute_cloud_request).with do |opts|
         | 
| 68 41 | 
             
                      opts[:headers][:content_type] == 'application/json'
         | 
| 69 42 | 
             
                    end.returns(res)
         | 
| 70 | 
            -
                    InsightsCloud::Api::MachineTelemetriesController.any_instance.expects(:candlepin_id_cert)
         | 
| 71 | 
            -
                      .returns(
         | 
| 72 | 
            -
                        {
         | 
| 73 | 
            -
                          cert: @cert1,
         | 
| 74 | 
            -
                          key: OpenSSL::PKey::RSA.new(1024).to_pem,
         | 
| 75 | 
            -
                        }
         | 
| 76 | 
            -
                      )
         | 
| 77 43 | 
             
                    InsightsCloud::Api::MachineTelemetriesController.any_instance.expects(:cp_owner_id).returns('123')
         | 
| 78 44 |  | 
| 79 45 | 
             
                    post :forward_request, as: :json, params: { "path" => "static/v1/test", "machine_telemetry" => {"foo" => "bar"} }
         | 
| @@ -103,6 +69,17 @@ module InsightsCloud::Api | |
| 103 69 | 
             
                    assert_equal 502, @response.status
         | 
| 104 70 | 
             
                    assert_equal 'Authentication to the Insights Service failed.', JSON.parse(@response.body)['message']
         | 
| 105 71 | 
             
                  end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                  test "should forward errors to the client" do
         | 
| 74 | 
            +
                    net_http_resp = Net::HTTPResponse.new(1.0, 500, "TEST_RESPONSE")
         | 
| 75 | 
            +
                    res = RestClient::Response.create(@body, net_http_resp, @http_req)
         | 
| 76 | 
            +
                    ::ForemanRhCloud::CloudRequestForwarder.any_instance.stubs(:execute_cloud_request).raises(RestClient::InternalServerError.new(res))
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                    get :forward_request, params: { "path" => "platform/module-update-router/v1/channel" }
         | 
| 79 | 
            +
                    assert_equal 500, @response.status
         | 
| 80 | 
            +
                    assert_equal 'Cloud request failed', JSON.parse(@response.body)['message']
         | 
| 81 | 
            +
                    assert_match /#{@body}/, JSON.parse(@response.body)['response']
         | 
| 82 | 
            +
                  end
         | 
| 106 83 | 
             
                end
         | 
| 107 84 |  | 
| 108 85 | 
             
                context '#branch_info' do
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            require ' | 
| 1 | 
            +
            require 'test_plugin_helper'
         | 
| 2 2 | 
             
            require 'foreman_tasks/test_helpers'
         | 
| 3 3 |  | 
| 4 4 | 
             
            class InsightsResolutionsSyncTest < ActiveSupport::TestCase
         | 
| @@ -75,4 +75,13 @@ class InsightsResolutionsSyncTest < ActiveSupport::TestCase | |
| 75 75 | 
             
                assert_equal 5, InsightsResolution.all.count
         | 
| 76 76 | 
             
                assert_equal 2, @rule.resolutions.count
         | 
| 77 77 | 
             
              end
         | 
| 78 | 
            +
             | 
| 79 | 
            +
              test 'Skips pinging the cloud if no rule ids were found' do
         | 
| 80 | 
            +
                InsightsCloud::Async::InsightsResolutionsSync.any_instance.expects(:query_insights_resolutions).never
         | 
| 81 | 
            +
                InsightsRule.all.delete_all
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                ForemanTasks.sync_task(InsightsCloud::Async::InsightsResolutionsSync)
         | 
| 84 | 
            +
             | 
| 85 | 
            +
                assert_equal 0, InsightsResolution.all.count
         | 
| 86 | 
            +
              end
         | 
| 78 87 | 
             
            end
         | 
| @@ -17,6 +17,7 @@ class CloudRequestForwarderTest < ActiveSupport::TestCase | |
| 17 17 | 
             
                  "/redhat_access/r/insights/platform/inventory/v1/hosts" => "https://cert.cloud.redhat.com/api/inventory/v1/hosts",
         | 
| 18 18 | 
             
                  "/redhat_access/r/insights/platform/ingress/v1/upload" => "https://cert.cloud.redhat.com/api/ingress/v1/upload",
         | 
| 19 19 | 
             
                  "/redhat_access/r/insights/uploads/67200803-132b-474b-a6f9-37be74185df4" => "https://cert-api.access.redhat.com/r/insights/uploads/67200803-132b-474b-a6f9-37be74185df4",
         | 
| 20 | 
            +
                  "/redhat_access/r/insights/" => "https://cert.cloud.redhat.com/api/apicast-tests/ping",
         | 
| 20 21 | 
             
                }
         | 
| 21 22 |  | 
| 22 23 | 
             
                paths.each do |key, value|
         | 
| @@ -107,4 +108,29 @@ class CloudRequestForwarderTest < ActiveSupport::TestCase | |
| 107 108 | 
             
                )
         | 
| 108 109 | 
             
                assert_equal params.merge(:branch_id => 74), @forwarder.prepare_forward_params(req, 74)
         | 
| 109 110 | 
             
              end
         | 
| 111 | 
            +
             | 
| 112 | 
            +
              test 'should reuse BranchInfo identifiers for user_agent' do
         | 
| 113 | 
            +
                user_agent = { :foo => :bar }
         | 
| 114 | 
            +
                params = { :page => 5, :per_page => 42 }
         | 
| 115 | 
            +
                ForemanRhCloud::BranchInfo.any_instance.expects(:core_app_name).returns('test_app')
         | 
| 116 | 
            +
                ForemanRhCloud::BranchInfo.any_instance.expects(:core_app_version).returns('test_ver')
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                req = ActionDispatch::Request.new(
         | 
| 119 | 
            +
                  'REQUEST_URI' => '/foo/bar',
         | 
| 120 | 
            +
                  'REQUEST_METHOD' => 'GET',
         | 
| 121 | 
            +
                  'HTTP_USER_AGENT' => user_agent,
         | 
| 122 | 
            +
                  'rack.input' => ::Puma::NullIO.new,
         | 
| 123 | 
            +
                  'action_dispatch.request.query_parameters' => params
         | 
| 124 | 
            +
                )
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                actual = @forwarder.prepare_request_opts(req, 'TEST PAYLOAD', params, generate_certs_hash)
         | 
| 127 | 
            +
             | 
| 128 | 
            +
                assert_match /foo/, actual[:headers][:user_agent]
         | 
| 129 | 
            +
                assert_match /bar/, actual[:headers][:user_agent]
         | 
| 130 | 
            +
                assert_match /test_app/, actual[:headers][:user_agent]
         | 
| 131 | 
            +
                assert_match /test_ver/, actual[:headers][:user_agent]
         | 
| 132 | 
            +
                assert_equal 'TEST PAYLOAD', actual[:payload]
         | 
| 133 | 
            +
                assert_equal 'GET', actual[:method]
         | 
| 134 | 
            +
                assert_equal params, actual[:headers][:params]
         | 
| 135 | 
            +
              end
         | 
| 110 136 | 
             
            end
         | 
| @@ -1,12 +1,10 @@ | |
| 1 1 | 
             
            import React from 'react';
         | 
| 2 2 | 
             
            import { Text, TextVariants } from '@patternfly/react-core';
         | 
| 3 3 | 
             
            import { translate as __ } from 'foremanReact/common/I18n';
         | 
| 4 | 
            -
            import InsightsSettings from '../InsightsSettings';
         | 
| 5 4 | 
             
            import './InsightsHeader.scss';
         | 
| 6 5 |  | 
| 7 6 | 
             
            const InsightsHeader = () => (
         | 
| 8 7 | 
             
              <div className="insights-header">
         | 
| 9 | 
            -
                <InsightsSettings />
         | 
| 10 8 | 
             
                <Text component={TextVariants.p}>
         | 
| 11 9 | 
             
                  {__(
         | 
| 12 10 | 
             
                    'Insights synchronization process is used to provide Insights recommendations output for hosts managed here.'
         | 
| @@ -12,6 +12,7 @@ import { | |
| 12 12 | 
             
            import './InsightsCloudSync.scss';
         | 
| 13 13 | 
             
            import Pagination from './Components/InsightsTable/Pagination';
         | 
| 14 14 | 
             
            import ToolbarDropdown from './Components/ToolbarDropdown';
         | 
| 15 | 
            +
            import InsightsSettings from './Components/InsightsSettings';
         | 
| 15 16 |  | 
| 16 17 | 
             
            const InsightsCloudSync = ({
         | 
| 17 18 | 
             
              syncInsights,
         | 
| @@ -42,6 +43,7 @@ const InsightsCloudSync = ({ | |
| 42 43 |  | 
| 43 44 | 
             
              return (
         | 
| 44 45 | 
             
                <div className="rh-cloud-insights">
         | 
| 46 | 
            +
                  <InsightsSettings />
         | 
| 45 47 | 
             
                  <PageLayout
         | 
| 46 48 | 
             
                    searchable
         | 
| 47 49 | 
             
                    searchProps={INSIGHTS_SEARCH_PROPS}
         | 
    
        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: 4.0. | 
| 4 | 
            +
              version: 4.0.26
         | 
| 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: 2021-08- | 
| 11 | 
            +
            date: 2021-08-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: katello
         | 
| @@ -657,7 +657,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 657 657 | 
             
                - !ruby/object:Gem::Version
         | 
| 658 658 | 
             
                  version: '0'
         | 
| 659 659 | 
             
            requirements: []
         | 
| 660 | 
            -
            rubygems_version: 3.2. | 
| 660 | 
            +
            rubygems_version: 3.2.22
         | 
| 661 661 | 
             
            signing_key:
         | 
| 662 662 | 
             
            specification_version: 4
         | 
| 663 663 | 
             
            summary: Summary of ForemanRhCloud.
         |