foreman_rh_cloud 4.0.24.1 → 4.0.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/rh_cloud/inventory_controller.rb +4 -1
  3. data/app/controllers/foreman_inventory_upload/cloud_status_controller.rb +26 -0
  4. data/app/controllers/insights_cloud/api/machine_telemetries_controller.rb +18 -4
  5. data/app/controllers/insights_cloud/hits_controller.rb +0 -1
  6. data/app/services/foreman_rh_cloud/cloud_auth.rb +4 -0
  7. data/app/services/foreman_rh_cloud/cloud_ping_service.rb +83 -0
  8. data/app/services/foreman_rh_cloud/cloud_request_forwarder.rb +15 -3
  9. data/app/services/foreman_rh_cloud/remediations_retriever.rb +5 -0
  10. data/config/Gemfile.lock.gh_test +74 -84
  11. data/config/rh_cert-api_chain.pem +74 -0
  12. data/config/routes.rb +3 -1
  13. data/lib/foreman_inventory_upload/generators/queries.rb +0 -16
  14. data/lib/foreman_inventory_upload/generators/tags.rb +2 -1
  15. data/lib/foreman_rh_cloud/engine.rb +2 -1
  16. data/lib/foreman_rh_cloud/version.rb +1 -1
  17. data/lib/foreman_rh_cloud.rb +16 -1
  18. data/lib/insights_cloud/async/insights_client_status_aging.rb +4 -0
  19. data/lib/insights_cloud/async/insights_full_sync.rb +9 -0
  20. data/lib/insights_cloud/async/insights_generate_notifications.rb +4 -0
  21. data/lib/insights_cloud/async/insights_resolutions_sync.rb +16 -2
  22. data/lib/insights_cloud/async/insights_rules_sync.rb +15 -2
  23. data/lib/insights_cloud.rb +4 -0
  24. data/lib/inventory_sync/async/inventory_full_sync.rb +9 -0
  25. data/lib/inventory_sync/async/inventory_hosts_sync.rb +9 -0
  26. data/lib/inventory_sync/async/inventory_scheduled_sync.rb +4 -0
  27. data/lib/inventory_sync/async/inventory_self_host_sync.rb +13 -0
  28. data/lib/inventory_sync/async/query_inventory_job.rb +4 -0
  29. data/lib/tasks/rh_cloud_inventory.rake +2 -9
  30. data/package.json +1 -1
  31. data/test/controllers/insights_cloud/api/machine_telemetries_controller_test.rb +20 -39
  32. data/test/controllers/inventory_upload/cloud_status_controller_test.rb +44 -0
  33. data/test/jobs/insights_full_sync_test.rb +1 -0
  34. data/test/jobs/insights_resolutions_sync_test.rb +11 -1
  35. data/test/jobs/insights_rules_sync_test.rb +1 -0
  36. data/test/jobs/inventory_full_sync_test.rb +10 -0
  37. data/test/jobs/inventory_hosts_sync_test.rb +1 -0
  38. data/test/jobs/inventory_self_host_sync_test.rb +1 -0
  39. data/test/test_plugin_helper.rb +53 -0
  40. data/test/unit/foreman_rh_cloud_self_host_test.rb +28 -0
  41. data/test/unit/services/foreman_rh_cloud/cloud_request_forwarder_test.rb +29 -34
  42. data/test/unit/services/foreman_rh_cloud/cloud_status_service_test.rb +66 -0
  43. data/test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb +1 -0
  44. data/test/unit/tags_generator_test.rb +41 -0
  45. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyState/EmptyState.js +1 -1
  46. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyState/__tests__/__snapshots__/EmptyState.test.js.snap +1 -2
  47. data/webpack/ForemanInventoryUpload/Components/FileDownload/FileDownload.js +3 -1
  48. data/webpack/ForemanInventoryUpload/Components/FileDownload/__tests__/__snapshots__/FileDownload.test.js.snap +2 -1
  49. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilter.js +1 -2
  50. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilterConstants.js +3 -1
  51. data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.scss +0 -4
  52. data/webpack/ForemanInventoryUpload/Components/PageHeader/PageTitle.js +12 -0
  53. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageTitle.test.js.snap +10 -0
  54. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudPingModal/index.js +144 -0
  55. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudPingModal/index.scss +5 -0
  56. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/PageDescription.js +2 -2
  57. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/Modal.js +1 -1
  58. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/Toast.js +2 -2
  59. data/webpack/ForemanInventoryUpload/Components/StatusChart/StatusChart.js +4 -3
  60. data/webpack/ForemanInventoryUpload/ForemanInventoryConstants.js +2 -0
  61. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/InventoryAutoUpload.js +3 -1
  62. data/webpack/InsightsCloudSync/Components/InsightsHeader/InsightsHeader.scss +5 -1
  63. data/webpack/InsightsCloudSync/Components/InsightsHeader/index.js +6 -6
  64. data/webpack/InsightsCloudSync/Components/InsightsSettings/InsightsSettings.js +9 -5
  65. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/__snapshots__/InsightsSettings.test.js.snap +6 -6
  66. data/webpack/InsightsCloudSync/Components/InsightsSettings/insightsSettings.scss +1 -14
  67. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTable.js +4 -22
  68. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableConstants.js +25 -4
  69. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableSelectors.js +0 -3
  70. data/webpack/InsightsCloudSync/Components/InsightsTable/Pagination.js +51 -0
  71. data/webpack/InsightsCloudSync/Components/InsightsTable/SelectAllAlert.js +1 -1
  72. data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/__snapshots__/InsightsTable.test.js.snap +3 -68
  73. data/webpack/InsightsCloudSync/Components/InsightsTable/table.scss +10 -0
  74. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.js +11 -10
  75. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.scss +14 -0
  76. data/webpack/InsightsCloudSync/Components/RemediationModal/index.js +0 -2
  77. data/webpack/InsightsCloudSync/Components/ToolbarDropdown.js +32 -0
  78. data/webpack/InsightsCloudSync/Components/__tests__/__snapshots__/InsightsHeader.test.js.snap +5 -5
  79. data/webpack/InsightsCloudSync/InsightsCloudSync.js +19 -13
  80. data/webpack/InsightsCloudSync/InsightsCloudSync.scss +82 -2
  81. data/webpack/InsightsCloudSync/__snapshots__/InsightsCloudSync.test.js.snap +16 -6
  82. data/webpack/InsightsHostDetailsTab/InsightsTab.js +3 -2
  83. data/webpack/InsightsHostDetailsTab/InsightsTab.scss +4 -4
  84. data/webpack/InsightsHostDetailsTab/components/ListItem/ListItem.js +9 -7
  85. data/webpack/common/Switcher/HelpLabel.js +1 -1
  86. data/webpack/common/Switcher/SwitcherPF4.js +1 -1
  87. data/webpack/common/Switcher/SwitcherPF4.scss +6 -7
  88. data/webpack/common/Switcher/__tests__/__snapshots__/HelpLabel.test.js.snap +1 -1
  89. data/webpack/common/Switcher/__tests__/__snapshots__/SwitcherPF4.test.js.snap +1 -1
  90. metadata +16 -24
  91. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/InsightsSyncSwitcher.fixtures.js +0 -1
  92. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/InsightsSyncSwitcher.js +0 -45
  93. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/__tests__/InsightsSyncSwitcher.test.js +0 -17
  94. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/__tests__/__snapshots__/InsightsSyncSwitcher.test.js.snap +0 -38
  95. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/index.js +0 -1
  96. data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/insightsSyncSwitcher.scss +0 -3
  97. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediateButton.js +0 -59
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5de90e40ec6d14cf5483a2f92e46c61488c01a921a89feaa8194015f09c6fd0d
4
- data.tar.gz: 3ac8ba217d2356211e25c1f1de144ad72578ba0be29116ce1d611817302fc097
3
+ metadata.gz: f58fc1e7e0566050620598b261bb98ae808cacdb65ebff7efd59b483eced6996
4
+ data.tar.gz: c62e13422b518e22686687e429a5d73185469391d29013cd952d6b631cbf1db8
5
5
  SHA512:
6
- metadata.gz: 051caa1c8e5d69a8dad5aa77570b79854854d5ae10f810afe2f57dc6d0f2be0a8de1090caab8ceb0a3faea06b2cb42bad3beda18097792b62e191caa6bb3b41d
7
- data.tar.gz: 5f53fcc4bfdcc134afe56d19ac8a6c46822b2a6aeab832296eb0c7ffbe462d3a0510f2aaf2d0548f4b0f212f2b44e893fb12a04dace6c35fdc039071a7dd70b2
6
+ metadata.gz: 18ed7b82fa19fb2e5b22466648a31e9cfeb8a6dc8c20e07a9d7db028a61a2304ed663b1f9a3b62ce2ab59ca932fe9e35c6efdf0c41945b57a75d60455a541582
7
+ data.tar.gz: 12c271cf247328eef9d310f0b85d64a1080ad0321f9b7fd1b6caa44a8a299eb1d4b13a6141b5740b053ecf4622b8269980223bd7ba95cdfa4b6f19765a8782ff
@@ -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
@@ -0,0 +1,26 @@
1
+ module ForemanInventoryUpload
2
+ class CloudStatusController < ::ApplicationController
3
+ def index
4
+ organizations = User.current.my_organizations
5
+
6
+ ping_service = ForemanRhCloud::CloudPingService.new(organizations, logger)
7
+ ping_result = ping_service.ping
8
+ ping_result[:cert_auth] = ping_result[:cert_auth].map do |org, status_hash|
9
+ status_hash.merge(
10
+ {
11
+ org_id: org.id,
12
+ org_name: org.name,
13
+ }
14
+ )
15
+ end
16
+
17
+ render json: {
18
+ ping: ping_result,
19
+ }, status: :ok
20
+ end
21
+
22
+ def logger
23
+ Foreman::Logging.logger('app')
24
+ end
25
+ end
26
+ end
@@ -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
@@ -49,13 +57,19 @@ module InsightsCloud::Api
49
57
  private
50
58
 
51
59
  def ensure_telemetry_enabled_for_consumer
52
- render_message 'Telemetry is not enabled for your organization', :status => 403 unless telemetry_config
60
+ unless (config = telemetry_config(@host))
61
+ logger.debug("Rejected telemetry forwarding for host #{@host.name}, insights param is set to: #{config}")
62
+ render_message 'Telemetry is not enabled for this host', :status => 403
63
+ end
64
+ config
53
65
  end
54
66
 
55
- def telemetry_config
56
- ::RedhatAccess::TelemetryConfiguration.find_or_create_by(:organization_id => @organization.id) do |conf|
57
- conf.enable_telemetry = true
67
+ def telemetry_config(host)
68
+ param_value = nil
69
+ User.as_anonymous_admin do
70
+ param_value = host.host_param(InsightsCloud.enable_client_param)
58
71
  end
72
+ param_value
59
73
  end
60
74
 
61
75
  def cert_uuid
@@ -9,7 +9,6 @@ module InsightsCloud
9
9
  hasToken: !Setting[:rh_cloud_token].empty?,
10
10
  hits: hits.map { |hit| hit.attributes.merge(hostname: hit.host&.name, has_playbook: hit.has_playbook?) },
11
11
  itemCount: hits.count,
12
- isExperimentalMode: Setting[:lab_features],
13
12
  }, status: :ok
14
13
  end
15
14
 
@@ -4,6 +4,10 @@ module ForemanRhCloud
4
4
 
5
5
  include CloudRequest
6
6
 
7
+ def cloud_auth_available?
8
+ Setting[:rh_cloud_token].present?
9
+ end
10
+
7
11
  def rh_credentials
8
12
  @rh_credentials ||= query_refresh_token
9
13
  end
@@ -0,0 +1,83 @@
1
+ require 'rest-client'
2
+
3
+ module ForemanRhCloud
4
+ class CloudPingService
5
+ class TokenPing
6
+ include ForemanRhCloud::CloudAuth
7
+
8
+ attr_accessor :logger
9
+
10
+ def initialize(logger)
11
+ @logger = logger
12
+ end
13
+
14
+ def ping
15
+ execute_cloud_request(
16
+ method: :get,
17
+ url: ForemanRhCloud.base_url + "/api/inventory/v1/hosts?per_page=1",
18
+ headers: {
19
+ content_type: :json,
20
+ }
21
+ )
22
+ rescue StandardError => ex
23
+ ex
24
+ end
25
+ end
26
+
27
+ class CertPing
28
+ include ForemanRhCloud::CloudRequest
29
+ include InsightsCloud::CandlepinCache
30
+
31
+ attr_accessor :logger
32
+
33
+ def initialize(org, logger)
34
+ @org = org
35
+ @logger = logger
36
+ end
37
+
38
+ def ping
39
+ certs = candlepin_id_cert(@org)
40
+ return StandardError.new('certificate missing') unless certs
41
+
42
+ execute_cloud_request(
43
+ method: :get,
44
+ url: ForemanRhCloud.cert_base_url + "/api/apicast-tests/ping",
45
+ headers: {
46
+ content_type: :json,
47
+ },
48
+ ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
49
+ ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key])
50
+ )
51
+ rescue StandardError => ex
52
+ ex
53
+ end
54
+ end
55
+
56
+ def initialize(organizations, logger)
57
+ @organizations = organizations
58
+ @logger = logger
59
+ end
60
+
61
+ def ping
62
+ token_response = TokenPing.new(@logger).ping
63
+ {
64
+ token_auth: {
65
+ success: token_response.is_a?(RestClient::Response),
66
+ error: (token_response.is_a?(Exception) ? token_response.inspect : nil),
67
+ },
68
+ cert_auth: Hash[
69
+ @organizations.map do |org|
70
+ cert_response = CertPing.new(org, @logger).ping
71
+ [
72
+ org,
73
+ {
74
+ success: cert_response.is_a?(RestClient::Response),
75
+ error: (cert_response.is_a?(Exception) ? cert_response.inspect : nil),
76
+ },
77
+ ]
78
+ end
79
+ ],
80
+ }
81
+ end
82
+ end
83
+ 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,12 +64,18 @@ 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'),
68
76
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
69
77
  ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
70
- ssl_ca_file: Class.new.include(RedhatAccess::Telemetry::LookUps).new.get_default_ssl_ca_file,
78
+ ssl_ca_file: ForemanRhCloud.legacy_insights_ca,
71
79
  }
72
80
  end
73
81
  end
@@ -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
- 'Foreman'
99
+ BranchInfo.new.core_app_name
88
100
  end
89
101
 
90
102
  def core_app_version
91
- Foreman::Version.new
103
+ BranchInfo.new.core_app_version
92
104
  end
93
105
 
94
106
  def http_user_agent(original_request)
@@ -12,6 +12,11 @@ module ForemanRhCloud
12
12
  end
13
13
 
14
14
  def create_playbook
15
+ unless cloud_auth_available?
16
+ logger.debug('Cloud authentication is not available, cannot continue')
17
+ return
18
+ end
19
+
15
20
  response = query_playbook
16
21
 
17
22
  logger.debug("Got playbook response: #{response.body}")
@@ -4,7 +4,6 @@ PATH
4
4
  foreman_rh_cloud (3.0.15)
5
5
  foreman_ansible
6
6
  katello
7
- redhat_access
8
7
 
9
8
  PATH
10
9
  remote: ../katello
@@ -41,66 +40,66 @@ PATH
41
40
  GEM
42
41
  remote: https://rubygems.org/
43
42
  specs:
44
- actioncable (6.0.3.4)
45
- actionpack (= 6.0.3.4)
43
+ actioncable (6.0.3.6)
44
+ actionpack (= 6.0.3.6)
46
45
  nio4r (~> 2.0)
47
46
  websocket-driver (>= 0.6.1)
48
- actionmailbox (6.0.3.4)
49
- actionpack (= 6.0.3.4)
50
- activejob (= 6.0.3.4)
51
- activerecord (= 6.0.3.4)
52
- activestorage (= 6.0.3.4)
53
- activesupport (= 6.0.3.4)
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)
54
53
  mail (>= 2.7.1)
55
- actionmailer (6.0.3.4)
56
- actionpack (= 6.0.3.4)
57
- actionview (= 6.0.3.4)
58
- activejob (= 6.0.3.4)
54
+ actionmailer (6.0.3.6)
55
+ actionpack (= 6.0.3.6)
56
+ actionview (= 6.0.3.6)
57
+ activejob (= 6.0.3.6)
59
58
  mail (~> 2.5, >= 2.5.4)
60
59
  rails-dom-testing (~> 2.0)
61
- actionpack (6.0.3.4)
62
- actionview (= 6.0.3.4)
63
- activesupport (= 6.0.3.4)
60
+ actionpack (6.0.3.6)
61
+ actionview (= 6.0.3.6)
62
+ activesupport (= 6.0.3.6)
64
63
  rack (~> 2.0, >= 2.0.8)
65
64
  rack-test (>= 0.6.3)
66
65
  rails-dom-testing (~> 2.0)
67
66
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
68
- actiontext (6.0.3.4)
69
- actionpack (= 6.0.3.4)
70
- activerecord (= 6.0.3.4)
71
- activestorage (= 6.0.3.4)
72
- activesupport (= 6.0.3.4)
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)
73
72
  nokogiri (>= 1.8.5)
74
- actionview (6.0.3.4)
75
- activesupport (= 6.0.3.4)
73
+ actionview (6.0.3.6)
74
+ activesupport (= 6.0.3.6)
76
75
  builder (~> 3.1)
77
76
  erubi (~> 1.4)
78
77
  rails-dom-testing (~> 2.0)
79
78
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
80
- activejob (6.0.3.4)
81
- activesupport (= 6.0.3.4)
79
+ activejob (6.0.3.6)
80
+ activesupport (= 6.0.3.6)
82
81
  globalid (>= 0.3.6)
83
- activemodel (6.0.3.4)
84
- activesupport (= 6.0.3.4)
85
- activerecord (6.0.3.4)
86
- activemodel (= 6.0.3.4)
87
- activesupport (= 6.0.3.4)
88
- activerecord-import (1.0.7)
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)
89
88
  activerecord (>= 3.2)
90
89
  activerecord-nulldb-adapter (0.7.0)
91
90
  activerecord (>= 5.2.0, < 6.3)
92
- activerecord-session_store (1.1.3)
93
- actionpack (>= 4.0)
94
- activerecord (>= 4.0)
91
+ activerecord-session_store (2.0.0)
92
+ actionpack (>= 5.2.4.1)
93
+ activerecord (>= 5.2.4.1)
95
94
  multi_json (~> 1.11, >= 1.11.2)
96
- rack (>= 1.5.2, < 3)
97
- railties (>= 4.0)
98
- activestorage (6.0.3.4)
99
- actionpack (= 6.0.3.4)
100
- activejob (= 6.0.3.4)
101
- activerecord (= 6.0.3.4)
102
- marcel (~> 0.3.1)
103
- activesupport (6.0.3.4)
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)
104
103
  concurrent-ruby (~> 1.0, >= 1.0.2)
105
104
  i18n (>= 0.7, < 2)
106
105
  minitest (~> 5.1)
@@ -109,7 +108,7 @@ GEM
109
108
  addressable (2.7.0)
110
109
  public_suffix (>= 2.0.2, < 5.0)
111
110
  algebrick (0.7.5)
112
- amazing_print (1.2.2)
111
+ amazing_print (1.3.0)
113
112
  ancestry (3.2.1)
114
113
  activerecord (>= 4.2.0)
115
114
  anemone (0.7.2)
@@ -136,13 +135,13 @@ GEM
136
135
  benchmark-ips (2.8.4)
137
136
  binding_of_caller (1.0.0)
138
137
  debug_inspector (>= 0.0.1)
139
- bootsnap (1.7.1)
138
+ bootsnap (1.7.3)
140
139
  msgpack (~> 1.0)
141
140
  bootstrap-sass (3.4.1)
142
141
  autoprefixer-rails (>= 5.2.1)
143
142
  sassc (>= 2.0.0)
144
143
  builder (3.2.4)
145
- bullet (6.1.3)
144
+ bullet (6.1.4)
146
145
  activesupport (>= 3.0.0)
147
146
  uniform_notifier (~> 1.11)
148
147
  byebug (11.1.3)
@@ -168,7 +167,7 @@ GEM
168
167
  coffee-script-source
169
168
  execjs
170
169
  coffee-script-source (1.12.2)
171
- concurrent-ruby (1.1.8)
170
+ concurrent-ruby (1.1.9)
172
171
  concurrent-ruby-edge (0.6.0)
173
172
  concurrent-ruby (~> 1.1.6)
174
173
  connection_pool (2.2.3)
@@ -180,12 +179,12 @@ GEM
180
179
  daemons (1.3.1)
181
180
  database_cleaner (1.99.0)
182
181
  deacon (1.0.0)
183
- debug_inspector (1.0.0)
182
+ debug_inspector (1.1.0)
184
183
  declarative (0.0.20)
185
184
  declarative-option (0.1.0)
186
- deep_cloneable (3.0.0)
185
+ deep_cloneable (3.1.0)
187
186
  activerecord (>= 3.1.0, < 7)
188
- deface (1.6.1)
187
+ deface (1.8.1)
189
188
  nokogiri (>= 1.6)
190
189
  polyglot
191
190
  rails (>= 5.2)
@@ -338,7 +337,7 @@ GEM
338
337
  http-cookie (1.0.3)
339
338
  domain_name (~> 0.5)
340
339
  httpclient (2.8.3)
341
- i18n (1.8.8)
340
+ i18n (1.8.10)
342
341
  concurrent-ruby (~> 1.0)
343
342
  immigrant (0.3.6)
344
343
  activerecord (>= 3.0)
@@ -369,16 +368,14 @@ GEM
369
368
  nokogiri (>= 1.5.9)
370
369
  mail (2.7.1)
371
370
  mini_mime (>= 0.1.1)
372
- marcel (0.3.3)
373
- mimemagic (~> 0.3.2)
371
+ marcel (1.0.0)
374
372
  maruku (0.7.3)
375
373
  memoist (0.16.2)
376
374
  method_source (1.0.0)
377
375
  mime-types (3.3.1)
378
376
  mime-types-data (~> 3.2015)
379
- mime-types-data (3.2020.1104)
380
- mimemagic (0.3.5)
381
- mini_mime (1.0.2)
377
+ mime-types-data (3.2021.0225)
378
+ mini_mime (1.0.3)
382
379
  mini_portile2 (2.5.0)
383
380
  minitest (5.10.3)
384
381
  minitest-reporters (1.4.3)
@@ -404,8 +401,8 @@ GEM
404
401
  net-ssh (>= 2.6.5, < 7.0.0)
405
402
  net-ssh (4.2.0)
406
403
  netrc (0.11.0)
407
- nio4r (2.5.5)
408
- nokogiri (1.11.1)
404
+ nio4r (2.5.7)
405
+ nokogiri (1.11.2)
409
406
  mini_portile2 (~> 2.5.0)
410
407
  racc (~> 1.4)
411
408
  oauth (0.5.5)
@@ -415,7 +412,7 @@ GEM
415
412
  json (>= 1, < 3)
416
413
  paint (2.2.1)
417
414
  parallel (1.20.1)
418
- parallel_tests (3.4.0)
415
+ parallel_tests (3.6.0)
419
416
  parallel
420
417
  parse-cron (0.1.4)
421
418
  parser (3.0.0.0)
@@ -492,20 +489,20 @@ GEM
492
489
  rack
493
490
  rack-test (1.1.0)
494
491
  rack (>= 1.0, < 3)
495
- rails (6.0.3.4)
496
- actioncable (= 6.0.3.4)
497
- actionmailbox (= 6.0.3.4)
498
- actionmailer (= 6.0.3.4)
499
- actionpack (= 6.0.3.4)
500
- actiontext (= 6.0.3.4)
501
- actionview (= 6.0.3.4)
502
- activejob (= 6.0.3.4)
503
- activemodel (= 6.0.3.4)
504
- activerecord (= 6.0.3.4)
505
- activestorage (= 6.0.3.4)
506
- activesupport (= 6.0.3.4)
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)
507
504
  bundler (>= 1.3.0)
508
- railties (= 6.0.3.4)
505
+ railties (= 6.0.3.6)
509
506
  sprockets-rails (>= 2.0.0)
510
507
  rails-controller-testing (1.0.5)
511
508
  actionpack (>= 5.0.1.rc1)
@@ -519,9 +516,9 @@ GEM
519
516
  rails-i18n (6.0.0)
520
517
  i18n (>= 0.7, < 2)
521
518
  railties (>= 6.0.0, < 7)
522
- railties (6.0.3.4)
523
- actionpack (= 6.0.3.4)
524
- activesupport (= 6.0.3.4)
519
+ railties (6.0.3.6)
520
+ actionpack (= 6.0.3.6)
521
+ activesupport (= 6.0.3.6)
525
522
  method_source
526
523
  rake (>= 0.8.7)
527
524
  thor (>= 0.20.3, < 2.0)
@@ -541,13 +538,6 @@ GEM
541
538
  rdoc (6.3.0)
542
539
  record_tag_helper (1.0.1)
543
540
  actionview (>= 5)
544
- redhat_access (2.2.18)
545
- angular-rails-templates (>= 0.0.4)
546
- foreman-tasks
547
- katello
548
- redhat_access_lib (>= 1.1.5)
549
- redhat_access_lib (1.1.5)
550
- rest-client (>= 1.6.3)
551
541
  redis (4.1.4)
552
542
  regexp_parser (1.8.2)
553
543
  representable (3.0.4)
@@ -628,8 +618,8 @@ GEM
628
618
  tilt
629
619
  scoped_search (4.1.9)
630
620
  activerecord (>= 4.2.0)
631
- sd_notify (0.1.0)
632
- secure_headers (6.3.1)
621
+ sd_notify (0.1.1)
622
+ secure_headers (6.3.2)
633
623
  selenium-webdriver (3.142.7)
634
624
  childprocess (>= 0.5, < 4.0)
635
625
  rubyzip (>= 1.2.2)
@@ -716,7 +706,7 @@ PLATFORMS
716
706
 
717
707
  DEPENDENCIES
718
708
  activerecord-nulldb-adapter
719
- activerecord-session_store (>= 1.1.0, < 2)
709
+ activerecord-session_store (>= 2.0.0, < 3)
720
710
  amazing_print (~> 1.1)
721
711
  ancestry (>= 3.0.7, < 4, != 3.2.0)
722
712
  apipie-dsl (>= 2.2.6)
@@ -0,0 +1,74 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
41
+ Kg6Ay0rrsi4nw1JHue2GvdjdfVOaWSWC
42
+ -----END CERTIFICATE-----
43
+ -----BEGIN CERTIFICATE-----
44
+ MIIFfTCCA2WgAwIBAgIJAJGKz8qFAAADMA0GCSqGSIb3DQEBBQUAMIGwMQswCQYD
45
+ VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExEDAOBgNVBAcMB1JhbGVp
46
+ Z2gxFjAUBgNVBAoMDVJlZCBIYXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0
47
+ d29yazEeMBwGA1UEAwwVRW50aXRsZW1lbnQgTWFzdGVyIENBMSQwIgYJKoZIhvcN
48
+ AQkBFhVjYS1zdXBwb3J0QHJlZGhhdC5jb20wHhcNMTUwNTA1MTMwMzQ4WhcNMjUw
49
+ NTAyMTMwMzQ4WjCBiTELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5PUlRIIENBUk9M
50
+ SU5BMRAwDgYDVQQHEwdSYWxlaWdoMRAwDgYDVQQKEwdSZWQgSGF0MRgwFgYDVQQL
51
+ Ew9SZWQgSGF0IE5ldHdvcmsxIzAhBgNVBAMTGmNlcnQtYXBpLmFjY2Vzcy5yZWRo
52
+ YXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9hTNMtZMa7Kg
53
+ Jlux6pnuUinP0Rv0aiiPFr7qNHFore4loGrPlpzUvQbUByy3xm7lhf4R4qbINCls
54
+ veWg6HDidvQr174RXb5YLMXuBrYAiPWQTrRRLNuvXFHKzREghRWTv48IXTIDEo0G
55
+ fZJUO+myY2RfwqugZKic5dR6ZakHSSpQO70O6H5R0eHlKa13k4eEpG2fVY/xqFto
56
+ WkfZyEmSacZpqxp7gIjZqreLc4MFwpiVjGFrK3Jk+Px1Z6J94LTLx2SxrYzWIeUs
57
+ 5j+lceQOvpV4/pkClnRCW1pkCKTccjFKQkpNPGwdIusRXUGl9IYc20Fa/7g9iUQc
58
+ 5fXu9EAzfwIDAQABo4G+MIG7MAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZA
59
+ MAsGA1UdDwQEAwIF4DATBgNVHSUEDDAKBggrBgEFBQcDATA5BglghkgBhvhCAQ0E
60
+ LBYqTWFuYWdlZCBieSBSZWQgSGF0IChjYS1zdXBwb3J0QHJlZGhhdC5jb20pMB0G
61
+ A1UdDgQWBBRfgCjd8aXf0U4VX8DKTVIn+paGBzAfBgNVHSMEGDAWgBSIS6ZFxEbs
62
+ j9bPpvYazyY8kMx/FzANBgkqhkiG9w0BAQUFAAOCAgEAlC+r6UEEp5BUkI0Rj2T+
63
+ 1PH7oUCaGQeQoyVbGddz/WUcBk/lMMtyCEoxU+3tTwNWmCWWjYXtjoL9MlSAC/q+
64
+ NZfBi1iq0uuSus9JI/Uu8aRhoxTK56qGRed/JNixOHEmFn891cahIPpF0exWwtYD
65
+ ThwXo7Z6PI7t8EMKdSrGTOowp58yho8xYFL/Z7JmjL55Pf85GIrdiniNZd4i178J
66
+ 07R9zsiLvdXq9mT33iJwkm+uhO+FA9d8OE3ji21pBbGUAQSWOdkemvUCsy8zANW9
67
+ fT+dBrMr5Buk7eaBBJ2PxECNiWLCRQJWmyff1O5zMT0daS2lBdEGUNhBZ0hnX13Q
68
+ kabUp0bxRrNRq+WkomP7onZhfZS6SjKm0UmwoV6o3V1ED6y7muQNRmgDpA5PcbvO
69
+ gl7OexNL4zcpyfMdAmTYf5yTRSvB42Yg5hVfuzPEnOIqupwES3mWkEHRlqbMUkHw
70
+ qIQAxIwQqZd5PdPpElQ/6j/ZT9DwW/I6zgndX2rsS0oGYcwFTkSj0/rKKkC13hk7
71
+ LchXMZu5ckdustM79U6OZIBairrJaL2OpR08un2nwIjgEGqhVFYc44UK1VpkE8mr
72
+ qvqJS6OHVlTlKcEDnhVkPS3i5qjuS/PtSq0CwH8bzYKFJayLDY/z36Zv6PdttzmU
73
+ Yb1NSDcJejHJ80pMINutyYQ=
74
+ -----END CERTIFICATE-----
data/config/routes.rb CHANGED
@@ -11,6 +11,8 @@ Rails.application.routes.draw do
11
11
  post 'cloud_connector', to: 'uploads#enable_cloud_connector'
12
12
 
13
13
  resources :tasks, only: [:create, :show]
14
+
15
+ get 'status', to: 'cloud_status#index'
14
16
  end
15
17
 
16
18
  namespace :insights_cloud do
@@ -37,7 +39,7 @@ Rails.application.routes.draw do
37
39
  end
38
40
 
39
41
  scope '/r/insights' do
40
- 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]
41
43
  end
42
44
  end
43
45