foreman_rh_cloud 8.0.46 → 8.0.48

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/rh_cloud/inventory_controller.rb +23 -0
  3. data/app/controllers/foreman_inventory_upload/missing_hosts_controller.rb +22 -0
  4. data/app/controllers/foreman_inventory_upload/uploads_settings_controller.rb +1 -0
  5. data/app/models/insights_missing_host.rb +7 -0
  6. data/config/package-lock.json.plugin +3701 -16609
  7. data/config/routes.rb +3 -0
  8. data/db/migrate/20230515140211_add_missing_hosts_table.foreman_rh_cloud.rb +13 -0
  9. data/lib/foreman_inventory_upload/async/remove_insights_hosts_job.rb +68 -0
  10. data/lib/foreman_inventory_upload/generators/fact_helpers.rb +1 -1
  11. data/lib/foreman_inventory_upload.rb +6 -1
  12. data/lib/foreman_rh_cloud/engine.rb +5 -2
  13. data/lib/foreman_rh_cloud/settings.rb +1 -0
  14. data/lib/foreman_rh_cloud/version.rb +1 -1
  15. data/lib/inventory_sync/async/host_result.rb +5 -0
  16. data/lib/inventory_sync/async/inventory_hosts_sync.rb +30 -1
  17. data/lib/inventory_sync/async/inventory_scheduled_sync.rb +13 -2
  18. data/lib/tasks/hybrid_cloud.rake +6 -5
  19. data/package.json +2 -6
  20. data/test/factories/insights_factories.rb +8 -0
  21. data/test/jobs/inventory_hosts_sync_test.rb +32 -0
  22. data/test/jobs/inventory_scheduled_sync_test.rb +12 -0
  23. data/test/jobs/remove_insights_hosts_job_test.rb +90 -0
  24. data/test/test_plugin_helper.rb +11 -0
  25. data/test/unit/slice_generator_test.rb +1 -0
  26. data/test/unit/tags_generator_test.rb +1 -0
  27. data/webpack/ForemanInventoryUpload/Components/InventorySettings/AdvancedSetting/AdvancedSettingsConstants.js +7 -0
  28. data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettingsSelectors.js +3 -0
  29. data/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap +4 -0
  30. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageTitle.test.js.snap +1 -1
  31. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/PageDescription.js +25 -9
  32. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/__tests__/__snapshots__/PageDescription.test.js.snap +28 -5
  33. data/webpack/ForemanInventoryUpload/ForemanInventoryHelpers.js +1 -1
  34. data/webpack/ForemanInventoryUpload/__tests__/__snapshots__/ForemanInventoryHelpers.test.js.snap +1 -1
  35. metadata +8 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8db662f6cd6809ba5dd5b183ec76330b4a1d4eb6db931136c8e34dcdf53c796c
4
- data.tar.gz: e410219ca7fcbd0555d157f05123cc7c7618b29531157de42a3e3413d9d96eb4
3
+ metadata.gz: e5aaa9176ddc41ce5b0d3877b0f84d4da1e7646095d9552c0b4e2c268d6cff2b
4
+ data.tar.gz: 323a006184c5e0f989ef81ac8a010a2e493eb8cd69dc35b93ecb30a2e807dcec
5
5
  SHA512:
6
- metadata.gz: 601501b2ec41be00150bbc9797ad9fe7c93a92aea619ca1781ef3df88224e3f6fb04b2c16e2c2e974832ef67926794108d3c8f2c7654d52056e25a218887cd55
7
- data.tar.gz: 6a7ca4b57eb655c5d4c3a880f0deac4af3f86c6a4b71ddd4ff02b7adc4aa9bf5c0cb2a70731f5472ce763b841a75f755835e0674d489c6b5d51759ee9d1c85f3
6
+ metadata.gz: 4758b21705294f7bc5628878fbcf101e081f7a662426fb50501ad9909b09d7c33959ec316e3b790f248587a0ba85933782c5822c70fe9ec434ab57f070b0b0ca
7
+ data.tar.gz: e67bebbc9e8d478fa32778037d1fd4172b8633ff0c845bda2fa554c9e51cc74f94eca21ded5b9c7826a0622aa2842908e5abf70f1ffe2472fdecb6c6cf2f7d11
@@ -28,6 +28,29 @@ module Api
28
28
  }, status: :ok
29
29
  end
30
30
 
31
+ api :GET, "/organizations/:organization_id/rh_cloud/missing_hosts", N_("Grab hosts that are missing in RH Cloud")
32
+ param :organization_id, Integer, required: true, desc: N_("Set the current organization context for the request")
33
+ def get_hosts
34
+ organization_id = params[:organization_id]
35
+ payload = InsightsMissingHosts.where(organization_id: organization_id)
36
+
37
+ render :json => payload
38
+ end
39
+
40
+ api :POST, "/organizations/:organization_id/rh_cloud/missing_hosts", N_("Grab hosts that are missing in RH Cloud")
41
+ param :organization_id, Integer, required: true, desc: N_("Set the current organization context for the request")
42
+ param :search_term, String, required: true, desc: N_("Scoped search string for host removal")
43
+ def remove_hosts
44
+ organization_id = params[:organization_id]
45
+ search_term = params[:search_term]
46
+
47
+ task = ForemanTasks.async_task(ForemanInventoryUpload::Async::RemoveInsightsHostsJob, search_term, organization_id)
48
+
49
+ render json: {
50
+ task: task,
51
+ }, status: :ok
52
+ end
53
+
31
54
  api :POST, "/organizations/:organization_id/rh_cloud/inventory_sync", N_("Start inventory synchronization")
32
55
  param :organization_id, Integer, required: true, desc: N_("Set the current organization context for the request")
33
56
  def sync_inventory_status
@@ -0,0 +1,22 @@
1
+ module ForemanInventoryUpload
2
+ class MissingHostsController < ::ApplicationController
3
+ def index
4
+ organizations = Organization.current || User.current.my_organizations
5
+ organization_id = organizations.pluck(:id)
6
+ payload = InsightsMissingHosts.where(organization_id: organization_id)
7
+
8
+ render :json => payload
9
+ end
10
+
11
+ def remove_hosts
12
+ organization_id = params[:organization_id]
13
+ search_term = params[:search_term]
14
+
15
+ task = ForemanTasks.async_task(ForemanInventoryUpload::Async::RemoveInsightsHostsJob, search_term, organization_id)
16
+
17
+ render json: {
18
+ task: task,
19
+ }, status: :ok
20
+ end
21
+ end
22
+ end
@@ -6,6 +6,7 @@ module ForemanInventoryUpload
6
6
  hostObfuscationEnabled: Setting[:obfuscate_inventory_hostnames],
7
7
  ipsObfuscationEnabled: Setting[:obfuscate_inventory_ips],
8
8
  excludePackagesEnabled: Setting[:exclude_installed_packages],
9
+ allowAutoInsightsMismatchDelete: Setting[:allow_auto_insights_mismatch_delete],
9
10
  CloudConnectorStatus: ForemanInventoryUpload::UploadsSettingsController.cloud_connector_status,
10
11
  lastSyncTask: last_successful_inventory_sync_task,
11
12
  }, status: :ok
@@ -0,0 +1,7 @@
1
+ class InsightsMissingHost < ApplicationRecord
2
+ belongs_to :organization
3
+
4
+ scoped_search on: [:name, :insights_id, :rhsm_id, :ip_address]
5
+ validates :organization_id, presence: true
6
+ validates :name, presence: true
7
+ end