foreman_rh_cloud 5.0.38 → 6.0.42

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/rh_cloud/cloud_request_controller.rb +11 -5
  3. data/app/controllers/insights_cloud/settings_controller.rb +14 -0
  4. data/app/services/foreman_rh_cloud/cert_auth.rb +1 -1
  5. data/app/services/foreman_rh_cloud/cloud_ping_service.rb +1 -1
  6. data/app/services/foreman_rh_cloud/cloud_presence.rb +4 -4
  7. data/app/services/foreman_rh_cloud/cloud_request_forwarder.rb +3 -3
  8. data/config/Gemfile.lock.gh_test +215 -226
  9. data/config/routes.rb +2 -0
  10. data/lib/foreman_inventory_upload/async/generate_all_reports_job.rb +4 -0
  11. data/lib/foreman_inventory_upload/async/upload_report_job.rb +5 -1
  12. data/lib/foreman_rh_cloud/engine.rb +7 -4
  13. data/lib/foreman_rh_cloud/settings.rb +11 -0
  14. data/lib/foreman_rh_cloud/version.rb +1 -1
  15. data/lib/insights_cloud/async/connector_playbook_execution_reporter_task.rb +3 -2
  16. data/lib/insights_cloud/async/insights_full_sync.rb +2 -1
  17. data/lib/insights_cloud/generators/playbook_progress_generator.rb +2 -2
  18. data/lib/insights_cloud.rb +4 -0
  19. data/package.json +6 -6
  20. data/test/controllers/insights_cloud/api/cloud_request_controller_test.rb +27 -0
  21. data/test/controllers/insights_sync/settings_controller_test.rb +17 -0
  22. data/test/jobs/connector_playbook_execution_reporter_task_test.rb +1 -7
  23. data/test/jobs/upload_report_job_test.rb +1 -1
  24. data/test/unit/playbook_progress_generator_test.rb +1 -1
  25. data/webpack/ForemanRhCloudFills.js +1 -1
  26. metadata +4 -5
  27. data/app/models/setting/rh_cloud.rb +0 -29
  28. data/config/package-lock.json +0 -41822
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7bb7932e40d6ef999b5266897539d444e9ab7a38606e6f66dff58fb568d70fdc
4
- data.tar.gz: f6e6a8ae8ddfb3544fbe31c807f9917fe7aa2d5d1d05014055528bb193290109
3
+ metadata.gz: c3c56d7e23a70203868099896bbdcf3bb1b6ec31dc5a703a5da9bd147f849a10
4
+ data.tar.gz: d6ea56a9abbc11fad5d4d77347d829a0eb3062af500b8773c9d617235ce0b0fc
5
5
  SHA512:
6
- metadata.gz: dcc37dffd7f108e1687b671ea0f5b157644c6a9576310d917daafefd4011ad01ccced6d48941823873a3da076ab20da2db33fe2c463cc0e962f69a79ea565400
7
- data.tar.gz: 72f7a08cc3f30d0bddaaf63e0198df2761a40153c7185d1e30328a1c00b9496e7ce33b34ceec44ecf69989ab570001173524cfc49e5a9e127a540bf4684f9d02
6
+ metadata.gz: 523354ddf7e4511663d53833823b0e5ffa3128ea9513eeab23b458e23d6f5a76254017ffc52b8f513245f8404e991154123585bc93269f1b72c06ec7512e595a
7
+ data.tar.gz: '03784d6b78c2acf11b084912739cb5714e95f165871db256a260da8aab1e3c3d278eb8120eb2aec673477467da611a02f4ac89b87ed4b60b099a27d51e3c0e5b'
@@ -27,16 +27,18 @@ module Api::V2::RhCloud
27
27
  private
28
28
 
29
29
  def metadata
30
- params['metadata']
30
+ params['Metadata'] || params['metadata']
31
31
  end
32
32
 
33
33
  def content
34
+ content = params['Content'] || params['content']
35
+
34
36
  # the content received as base 64 of the string in double quotes
35
- Base64.decode64(params['content']).tr('"', '')
37
+ Base64.decode64(content).tr('"', '')
36
38
  end
37
39
 
38
40
  def directive
39
- params['directive']
41
+ params['Directive'] || params['directive']
40
42
  end
41
43
 
42
44
  def handle_run_playbook_request
@@ -44,9 +46,13 @@ module Api::V2::RhCloud
44
46
  logger.error("Reporting URL is not valid: #{metadata['return_url']}") && return unless valid_url?(metadata['return_url'])
45
47
 
46
48
  hosts = metadata['hosts'].split(',')
47
- host_ids = host_ids(hosts)
48
49
 
49
- logger.warn("Some hosts were not found. Looked for: #{hosts}, found ids: #{host_ids}") unless host_ids.length == hosts.length
50
+ # select hosts from the metadata list that are not disabled by the parameter.
51
+ host_ids = Host.search_for("not params.#{InsightsCloud.enable_cloud_remediations_param} = f")
52
+ .where(id: host_ids(hosts))
53
+ .pluck(:id)
54
+
55
+ logger.warn("Some hosts were not found/ignored. Looked for: #{hosts}, found ids: #{host_ids}") unless host_ids.length == hosts.length
50
56
 
51
57
  logger.error("sat_org_id is not present in the metadata") && return unless metadata['sat_org_id']
52
58
  org_id = metadata['sat_org_id'].to_i
@@ -9,6 +9,20 @@ module InsightsCloud
9
9
  render_setting(:insightsSyncEnabled, :allow_auto_insights_sync)
10
10
  end
11
11
 
12
+ def set_org_parameter
13
+ parameter = params.require(:parameter)
14
+ new_value = ActiveModel::Type::Boolean.new.cast(params.require(:value))
15
+ org_id = params.require(:organization_id)
16
+
17
+ organization = Organization.authorized.find(org_id)
18
+
19
+ org_param = organization.organization_parameters.find_or_create_by(name: parameter) do |org_param|
20
+ org_param.name = parameter
21
+ end
22
+ org_param.value = new_value
23
+ org_param.save!
24
+ end
25
+
12
26
  private
13
27
 
14
28
  def render_setting(node_name, setting)
@@ -13,7 +13,7 @@ module ForemanRhCloud
13
13
  certs = candlepin_id_cert(params.delete(:organization))
14
14
  final_params = {
15
15
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
16
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
16
+ ssl_client_key: OpenSSL::PKey.read(certs[:key]),
17
17
  }.deep_merge(params)
18
18
 
19
19
  super(final_params)
@@ -27,7 +27,7 @@ module ForemanRhCloud
27
27
  content_type: :json,
28
28
  },
29
29
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
30
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key])
30
+ ssl_client_key: OpenSSL::PKey.read(certs[:key])
31
31
  )
32
32
  rescue StandardError => ex
33
33
  ex
@@ -24,7 +24,7 @@ module ForemanRhCloud
24
24
  content_type: :json,
25
25
  },
26
26
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
27
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key])
27
+ ssl_client_key: OpenSSL::PKey.read(certs[:key])
28
28
  )
29
29
  )
30
30
 
@@ -42,7 +42,7 @@ module ForemanRhCloud
42
42
  content_type: :json,
43
43
  },
44
44
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
45
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key])
45
+ ssl_client_key: OpenSSL::PKey.read(certs[:key])
46
46
  )
47
47
  )
48
48
 
@@ -60,7 +60,7 @@ module ForemanRhCloud
60
60
  content_type: :json,
61
61
  },
62
62
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
63
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
63
+ ssl_client_key: OpenSSL::PKey.read(certs[:key]),
64
64
  payload: {
65
65
  name: "satellite: #{Foreman.instance_id} org: #{@organization.name}",
66
66
  source_ref: Foreman.instance_id,
@@ -84,7 +84,7 @@ module ForemanRhCloud
84
84
  content_type: :json,
85
85
  },
86
86
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
87
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
87
+ ssl_client_key: OpenSSL::PKey.read(certs[:key]),
88
88
  payload: {
89
89
  source_id: source_id,
90
90
  rhc_id: Setting[:rhc_instance_id],
@@ -63,19 +63,19 @@ module ForemanRhCloud
63
63
  {
64
64
  url: ForemanRhCloud.cert_base_url + request_path.sub('/redhat_access/r/insights/platform', '/api'),
65
65
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
66
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
66
+ ssl_client_key: OpenSSL::PKey.read(certs[:key]),
67
67
  }
68
68
  when connection_test_request?
69
69
  {
70
70
  url: ForemanRhCloud.cert_base_url + '/api/apicast-tests/ping',
71
71
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
72
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
72
+ ssl_client_key: OpenSSL::PKey.read(certs[:key]),
73
73
  }
74
74
  else # Legacy insights API
75
75
  {
76
76
  url: ForemanRhCloud.legacy_insights_url + request_path.sub('/redhat_access/r/insights', '/r/insights'),
77
77
  ssl_client_cert: OpenSSL::X509::Certificate.new(certs[:cert]),
78
- ssl_client_key: OpenSSL::PKey::RSA.new(certs[:key]),
78
+ ssl_client_key: OpenSSL::PKey.read(certs[:key]),
79
79
  ssl_ca_file: ForemanRhCloud.legacy_insights_ca,
80
80
  }
81
81
  end