foreman_rh_cloud 3.0.17 → 3.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +20 -5
- data/app/controllers/foreman_inventory_upload/accounts_controller.rb +3 -15
- data/app/controllers/foreman_inventory_upload/tasks_controller.rb +14 -3
- data/app/controllers/foreman_inventory_upload/uploads_controller.rb +0 -48
- data/app/controllers/foreman_inventory_upload/uploads_settings_controller.rb +34 -0
- data/app/controllers/insights_cloud/api/machine_telemetries_controller.rb +17 -7
- data/app/controllers/insights_cloud/hits_controller.rb +38 -1
- data/app/controllers/insights_cloud/settings_controller.rb +1 -1
- data/app/controllers/insights_cloud/tasks_controller.rb +1 -2
- data/app/models/insights_client_report_status.rb +58 -0
- data/app/models/insights_resolution.rb +1 -1
- data/app/models/inventory_sync/inventory_status.rb +6 -0
- data/app/models/setting/rh_cloud.rb +5 -5
- data/app/services/foreman_rh_cloud/branch_info.rb +3 -14
- data/app/services/foreman_rh_cloud/cloud_connector.rb +12 -7
- data/app/services/foreman_rh_cloud/cloud_request_forwarder.rb +32 -19
- data/app/services/foreman_rh_cloud/remediations_retriever.rb +78 -0
- data/app/services/foreman_rh_cloud/template_renderer_helper.rb +22 -0
- data/app/subscribers/foreman_rh_cloud/insights_subscriber.rb +9 -0
- data/app/views/job_templates/rh_cloud_remediations.erb +14 -0
- data/config/routes.rb +4 -6
- data/db/migrate/20210307000001_add_unique_to_insights_facet.foreman_rh_cloud.rb +11 -0
- data/db/migrate/20210404000001_change_resolutions.foreman_rh_cloud.rb +10 -0
- data/db/seeds.d/179_ui_notifications.rb +11 -0
- data/db/seeds.d/50_job_templates.rb +14 -0
- data/lib/foreman_inventory_upload.rb +11 -1
- data/lib/foreman_inventory_upload/async/generate_all_reports_job.rb +8 -2
- data/lib/foreman_inventory_upload/generators/json_stream.rb +1 -1
- data/lib/foreman_inventory_upload/generators/queries.rb +3 -2
- data/lib/foreman_inventory_upload/generators/slice.rb +14 -21
- data/lib/foreman_inventory_upload/generators/tags.rb +61 -0
- data/lib/foreman_inventory_upload/scripts/uploader.sh.erb +5 -1
- data/lib/foreman_rh_cloud.rb +22 -0
- data/lib/foreman_rh_cloud/engine.rb +34 -2
- data/lib/foreman_rh_cloud/version.rb +1 -1
- data/lib/insights_cloud.rb +12 -0
- data/lib/insights_cloud/async/insights_full_sync.rb +39 -24
- data/lib/insights_cloud/async/insights_generate_notifications.rb +58 -0
- data/lib/insights_cloud/async/insights_resolutions_sync.rb +69 -0
- data/lib/insights_cloud/async/insights_rules_sync.rb +13 -17
- data/lib/insights_cloud/async/insights_scheduled_sync.rb +1 -1
- data/lib/inventory_sync/async/host_result.rb +11 -6
- data/lib/inventory_sync/async/inventory_full_sync.rb +24 -41
- data/lib/inventory_sync/async/inventory_hosts_sync.rb +34 -0
- data/lib/inventory_sync/async/inventory_scheduled_sync.rb +17 -0
- data/lib/inventory_sync/async/query_inventory_job.rb +54 -0
- data/lib/tasks/insights.rake +4 -12
- data/lib/tasks/rh_cloud_inventory.rake +12 -4
- data/package.json +1 -1
- data/test/controllers/accounts_controller_test.rb +1 -5
- data/test/controllers/insights_cloud/api/machine_telemetries_controller_test.rb +12 -0
- data/test/controllers/uploads_controller_test.rb +0 -13
- data/test/controllers/uploads_settings_controller_test.rb +31 -0
- data/test/factories/insights_factories.rb +22 -0
- data/test/jobs/insights_full_sync_test.rb +25 -15
- data/test/jobs/insights_resolutions_sync_test.rb +74 -0
- data/test/jobs/insights_rules_sync_test.rb +5 -3
- data/test/jobs/inventory_full_sync_test.rb +182 -12
- data/test/models/insights_client_report_status_test.rb +77 -0
- data/test/test_plugin_helper.rb +13 -0
- data/test/unit/rh_cloud_http_proxy_test.rb +4 -4
- data/test/unit/services/foreman_rh_cloud/branch_info_test.rb +5 -5
- data/test/unit/services/foreman_rh_cloud/cloud_request_forwarder_test.rb +39 -4
- data/test/unit/services/foreman_rh_cloud/remediations_retriever_test.rb +49 -0
- data/test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb +28 -0
- data/test/unit/slice_generator_test.rb +7 -2
- data/test/unit/tags_generator_test.rb +70 -0
- data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.fixtures.js +4 -19
- data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.js +7 -7
- data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListHelper.js +6 -6
- data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListReducer.js +0 -34
- data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListSelectors.js +0 -14
- data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyResults/emptyResults.scss +6 -4
- data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyState/emptyState.scss +6 -4
- data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ErrorState/errorState.scss +14 -12
- data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/ListItem.fixtures.js +10 -1
- data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/ListItem.js +7 -7
- data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/__tests__/__snapshots__/ListItem.test.js.snap +12 -9
- data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListHelper.test.js +3 -3
- data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListReducer.test.js +0 -30
- data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListSelectors.test.js +1 -23
- data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountList.test.js.snap +6 -6
- data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListActions.test.js.snap +3 -8
- data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListReducer.test.js.snap +3 -35
- data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListSelectors.test.js.snap +6 -18
- data/webpack/ForemanInventoryUpload/Components/AccountList/accountList.scss +24 -22
- data/webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.fixtures.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/FileDownload/FileDownload.js +2 -1
- data/webpack/ForemanInventoryUpload/Components/FileDownload/fileDownload.scss +4 -2
- data/webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModal.js +2 -1
- data/webpack/ForemanInventoryUpload/Components/FullScreenModal/fullScreenModal.scss +16 -14
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/Components/ClearButton/ClearButton.js +2 -1
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilter.fixtures.js +2 -1
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilter.js +30 -16
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilterReducer.js +1 -24
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/InventoryFilter.test.js +8 -2
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/InventoryFilterReducer.test.js +1 -17
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/InventoryFilter.test.js.snap +4 -9
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/InventoryFilterReducer.test.js.snap +0 -12
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/integration.test.js.snap +2 -3
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/integration.test.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/index.js +2 -0
- data/webpack/ForemanInventoryUpload/Components/InventoryFilter/inventoryFilter.scss +1 -1
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/AdvancedSetting/AdvancedSettingActions.js +7 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/AdvancedSetting/AdvancedSettingsConstants.js +28 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/AdvancedSetting/__tests__/AdvancedSettingActions.test.js +9 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/AdvancedSetting/__tests__/__snapshots__/AdvancedSettingActions.test.js.snap +18 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/AdvancedSetting/index.js +29 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.js +7 -8
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.scss +15 -9
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettingsActions.js +23 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettingsConstants.js +9 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettingsSelectors.js +19 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/InventorySettingsActions.test.js +14 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap +16 -4
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettingsActions.test.js.snap +26 -0
- data/webpack/ForemanInventoryUpload/Components/InventorySettings/index.js +16 -1
- data/webpack/ForemanInventoryUpload/Components/NavContainer/NavContainer.fixtures.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/NavContainer/navContainer.scss +7 -5
- data/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.scss +1 -1
- data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap +1 -1
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/PageDescription.js +15 -2
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/__tests__/__snapshots__/PageDescription.test.js.snap +13 -2
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SettingsWarning/index.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonActions.js +81 -46
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonConstants.js +3 -3
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonSelectors.js +6 -12
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButton.test.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonFixtures.js +1 -9
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonSelectors.test.js +18 -27
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButtonSelectors.test.js.snap +1 -16
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/integrations.test.js.snap +58 -0
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/integrations.test.js +51 -0
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/Modal.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/modal.scss +1 -1
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/index.js +3 -6
- data/webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerate.fixtures.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerate.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUpload.fixtures.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUpload.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/ScheduledRun/index.js +1 -1
- data/webpack/ForemanInventoryUpload/Components/ScheduledRun/scheduledRun.scss +8 -6
- data/webpack/ForemanInventoryUpload/Components/StatusChart/statusChart.scss +9 -7
- data/webpack/ForemanInventoryUpload/Components/TabBody/tabBody.scss +4 -2
- data/webpack/ForemanInventoryUpload/Components/TabContainer/tabContainer.scss +7 -5
- data/webpack/ForemanInventoryUpload/Components/TabHeader/TabHeader.js +2 -1
- data/webpack/ForemanInventoryUpload/Components/TabHeader/tabHeader.scss +15 -13
- data/webpack/ForemanInventoryUpload/Components/Terminal/terminal.scss +27 -25
- data/webpack/ForemanInventoryUpload/ForemanInventoryUpload.js +1 -1
- data/webpack/ForemanInventoryUpload/ForemanInventoryUploadReducers.js +0 -2
- data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/InventoryAutoUpload.js +13 -8
- data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/__tests__/InventoryAutoUpload.test.js +3 -3
- data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/components/AdvancedSettings/AdvancedSettings.js +21 -9
- data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/components/AdvancedSettings/index.js +3 -8
- data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/index.js +6 -4
- data/webpack/ForemanInventoryUpload/__tests__/__snapshots__/ForemanInventoryUpload.test.js.snap +1 -1
- data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/InsightsSettings.test.js +1 -1
- data/webpack/InsightsCloudSync/Components/InsightsSyncSwitcher/__tests__/InsightsSyncSwitcher.test.js +1 -1
- data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTable.js +1 -1
- data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableSelectors.js +3 -0
- data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/__snapshots__/InsightsTable.test.js.snap +2 -0
- data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/fixtures.js +1 -1
- data/webpack/InsightsCloudSync/Components/RemediationModal/RemediateButton.js +59 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationActions.js +12 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationHelpers.js +43 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.js +101 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.scss +9 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModalFooter.js +43 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationTableConstants.js +38 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/Resolutions.js +55 -0
- data/webpack/InsightsCloudSync/Components/RemediationModal/index.js +34 -0
- data/webpack/InsightsCloudSync/InsightsCloudSync.js +8 -3
- data/webpack/InsightsCloudSync/InsightsCloudSync.scss +5 -0
- data/webpack/InsightsCloudSync/InsightsCloudSync.test.js +1 -1
- data/webpack/InsightsCloudSync/__snapshots__/InsightsCloudSync.test.js.snap +9 -6
- data/webpack/InsightsHostDetailsTab/InsightsTab.js +2 -1
- data/webpack/__mocks__/foremanReact/components/Layout/LayoutSelectors.js +1 -0
- data/webpack/__mocks__/foremanReact/redux/API/APISelectors.js +1 -1
- data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware.js +4 -0
- data/webpack/common/Switcher/SwitcherPF4.scss +1 -1
- data/webpack/{InsightsCloudSync/Components/InsightsTable/components → common/table}/EmptyState.js +0 -0
- data/webpack/common/table/helpers.js +7 -0
- metadata +86 -62
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcher.fixtures.js +0 -3
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcher.js +0 -29
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcherActions.js +0 -29
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcherConstants.js +0 -1
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcher.test.js +0 -14
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcherActions.test.js +0 -24
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/__snapshots__/AutoUploadSwitcher.test.js.snap +0 -15
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/__snapshots__/AutoUploadSwitcherActions.test.js.snap +0 -31
- data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/index.js +0 -17
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/ExcludePackagesSwitcher.fixtures.js +0 -1
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/ExcludePackagesSwitcher.js +0 -27
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/ExcludePackagesSwitcherActions.js +0 -29
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/ExcludePackagesSwitcherConstants.js +0 -1
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/ExcludePackagesSwitcher.test.js +0 -13
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/ExcludePackagesSwitcherActions.test.js +0 -21
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/__snapshots__/ExcludePackagesSwitcher.test.js.snap +0 -15
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/__snapshots__/ExcludePackagesSwitcherActions.test.js.snap +0 -31
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/__snapshots__/integration.test.js.snap +0 -46
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/integration.test.js +0 -36
- data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/index.js +0 -20
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcher.fixtures.js +0 -2
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcher.js +0 -27
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcherActions.js +0 -29
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcherConstants.js +0 -1
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/HostObfuscationSwitcher.test.js +0 -14
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/HostObfuscationSwitcherActions.test.js +0 -24
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/__snapshots__/HostObfuscationSwitcher.test.js.snap +0 -15
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/__snapshots__/HostObfuscationSwitcherActions.test.js.snap +0 -31
- data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/index.js +0 -20
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/IpsObfuscationSwitcher.fixtures.js +0 -1
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/IpsObfuscationSwitcher.js +0 -27
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/IpsObfuscationSwitcherActions.js +0 -29
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/IpsObfuscationSwitcherConstants.js +0 -1
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/__tests__/IpsObfuscationSwitcher.test.js +0 -13
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/__tests__/IpsObfuscationSwitcherActions.test.js +0 -21
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/__tests__/__snapshots__/IpsObfuscationSwitcher.test.js.snap +0 -15
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/__tests__/__snapshots__/IpsObfuscationSwitcherActions.test.js.snap +0 -31
- data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/index.js +0 -20
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonReducer.js +0 -36
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonActions.test.js +0 -31
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonReducer.test.js +0 -26
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButtonActions.test.js.snap +0 -98
- data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButtonReducer.test.js.snap +0 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f19ab6e45bf75f915a43c8db5e829f77fe6e5e7b62998d42fe4207ce37dcc062
|
|
4
|
+
data.tar.gz: c2bf184dcdfaefe41c1d13116ede5236c381c1f0bc8e71353d2875eee9cb289e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7f2e16294caeae0098b8b8367082d75af4a706f74022dba22c040d9f545b4c99ca3c31be0d3db568c2a2dfc3de5509590a9602b026caad6ea0fb1b53a3ccc9f2
|
|
7
|
+
data.tar.gz: 9cc8d2349b5879d84bb9d2e95157c3eaafbff04823ea6704889b2678dc9a6a1f8fe300f09d28eef47c62cbbeccd94d96b0bbd7518969f8edbdbfb338a2fff1c7
|
data/README.md
CHANGED
|
@@ -42,7 +42,7 @@ In UI: Configure -> Insights -> Sync now
|
|
|
42
42
|
|
|
43
43
|
From command-line:
|
|
44
44
|
|
|
45
|
-
/usr/sbin/foreman-rake
|
|
45
|
+
/usr/sbin/foreman-rake rh_cloud_insights:sync
|
|
46
46
|
|
|
47
47
|
#### Synchronize inventory status
|
|
48
48
|
|
|
@@ -51,16 +51,32 @@ In UI: Configure -> Inventory Upload -> Sync inventory status
|
|
|
51
51
|
From command-line:
|
|
52
52
|
|
|
53
53
|
# all organizations
|
|
54
|
-
/usr/sbin/foreman-rake
|
|
55
|
-
|
|
54
|
+
/usr/sbin/foreman-rake rh_cloud_inventory:sync
|
|
55
|
+
|
|
56
56
|
# specific organization with id 1
|
|
57
57
|
export organization_id=1
|
|
58
|
-
/usr/sbin/foreman-rake
|
|
58
|
+
/usr/sbin/foreman-rake rh_cloud_inventory:sync
|
|
59
59
|
|
|
60
60
|
## TODO
|
|
61
61
|
|
|
62
62
|
*Todo list here*
|
|
63
63
|
|
|
64
|
+
## Design
|
|
65
|
+
|
|
66
|
+
### Endpoints
|
|
67
|
+
|
|
68
|
+
| purpose | url | ENV setting for the **bold** part
|
|
69
|
+
| ------------------------------| -------| -----------
|
|
70
|
+
| Inventory uploads | **https://cert.cloud.redhat.com/api/ingress/v1/upload** | SATELLITE_INVENTORY_UPLOAD_URL
|
|
71
|
+
| Query inventory hosts list | **https://cloud.redhat.com** /api/inventory/v1/hosts?tags= | SATELLITE_RH_CLOUD_URL
|
|
72
|
+
| Query insights hits | **https://cloud.redhat.com** /api/insights/v1/export/hits/ | SATELLITE_RH_CLOUD_URL
|
|
73
|
+
| Query insights rules | **https://cloud.redhat.com** /api/insights/v1/rule/?impacting=true&rule_status=enabled&has_playbook=true&limit=&offset= | SATELLITE_RH_CLOUD_URL
|
|
74
|
+
| Query insights resolutions | **https://cloud.redhat.com** /api/remediations/v1/resolutions| SATELLITE_RH_CLOUD_URL
|
|
75
|
+
| Forward insights-client `/static` requests | **https://cloud.redhat.com** /api/static | SATELLITE_RH_CLOUD_URL
|
|
76
|
+
| Forward insights-client legacy `/platform` requests | **https://cert.cloud.redhat.com** /api | SATELLITE_CERT_RH_CLOUD_URL
|
|
77
|
+
| Forward insights-client legacy `/redhat_access/r/insights` requests | **https://cert-api.access.redhat.com** /r/insights | SATELLITE_LEGACY_INSIGHTS_URL
|
|
78
|
+
|
|
79
|
+
|
|
64
80
|
## Contributing
|
|
65
81
|
|
|
66
82
|
Fork and send a Pull Request. Thanks!
|
|
@@ -81,4 +97,3 @@ GNU General Public License for more details.
|
|
|
81
97
|
|
|
82
98
|
You should have received a copy of the GNU General Public License
|
|
83
99
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
84
|
-
|
|
@@ -10,36 +10,24 @@ module ForemanInventoryUpload
|
|
|
10
10
|
upload_report_status = status_for(id, ForemanInventoryUpload::Async::UploadReportJob)
|
|
11
11
|
|
|
12
12
|
[
|
|
13
|
-
|
|
13
|
+
label,
|
|
14
14
|
{
|
|
15
15
|
generate_report_status: generate_report_status,
|
|
16
16
|
upload_report_status: upload_report_status,
|
|
17
|
-
|
|
17
|
+
id: id,
|
|
18
18
|
},
|
|
19
19
|
]
|
|
20
20
|
end
|
|
21
21
|
]
|
|
22
22
|
|
|
23
23
|
render json: {
|
|
24
|
-
autoUploadEnabled: Setting[:allow_auto_inventory_upload],
|
|
25
|
-
hostObfuscationEnabled: Setting[:obfuscate_inventory_hostnames],
|
|
26
|
-
ipsObfuscationEnabled: Setting[:obfuscate_inventory_ips],
|
|
27
|
-
cloudToken: !Setting[:rh_cloud_token].empty?,
|
|
28
|
-
excludePackages: Setting[:exclude_installed_packages],
|
|
29
24
|
accounts: accounts,
|
|
30
|
-
CloudConnectorStatus: cloud_connector_status,
|
|
25
|
+
CloudConnectorStatus: ForemanInventoryUpload::UploadsSettingsController.cloud_connector_status,
|
|
31
26
|
}, status: :ok
|
|
32
27
|
end
|
|
33
28
|
|
|
34
29
|
private
|
|
35
30
|
|
|
36
|
-
def cloud_connector_status
|
|
37
|
-
cloud_connector = ForemanRhCloud::CloudConnector.new
|
|
38
|
-
job = cloud_connector&.latest_job
|
|
39
|
-
return nil unless job
|
|
40
|
-
{ id: job.id, task: ForemanTasks::Task.where(:id => job.task_id).first }
|
|
41
|
-
end
|
|
42
|
-
|
|
43
31
|
def status_for(label, job_class)
|
|
44
32
|
label = job_class.output_label(label)
|
|
45
33
|
ForemanInventoryUpload::Async::ProgressOutput.get(label)&.status
|
|
@@ -13,12 +13,23 @@ module ForemanInventoryUpload
|
|
|
13
13
|
message: N_('Nothing to sync, there are no hosts with subscription for this organization.'),
|
|
14
14
|
}, status: :method_not_allowed
|
|
15
15
|
else
|
|
16
|
-
|
|
16
|
+
task = ForemanTasks.async_task(InventorySync::Async::InventoryFullSync, selected_org)
|
|
17
17
|
end
|
|
18
|
+
return render json: { message: N_('there was an issue triggering the task') }, status: :internal_server_error unless task
|
|
18
19
|
|
|
19
20
|
render json: {
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
task: task,
|
|
22
|
+
}, status: :ok
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def show
|
|
26
|
+
task = ForemanTasks::Task.find_by(id: params[:id])
|
|
27
|
+
return render json: { message: N_('No task was found') }, status: :internal_server_error unless task
|
|
28
|
+
|
|
29
|
+
render json: {
|
|
30
|
+
endedAt: task.ended_at,
|
|
31
|
+
output: task.output,
|
|
32
|
+
result: task.result,
|
|
22
33
|
}, status: :ok
|
|
23
34
|
end
|
|
24
35
|
end
|
|
@@ -21,53 +21,5 @@ module ForemanInventoryUpload
|
|
|
21
21
|
cloud_connector = ForemanRhCloud::CloudConnector.new
|
|
22
22
|
render json: cloud_connector.install.to_json
|
|
23
23
|
end
|
|
24
|
-
|
|
25
|
-
def auto_upload
|
|
26
|
-
Setting[:allow_auto_inventory_upload] = auto_upload_params
|
|
27
|
-
render_setting(:autoUploadEnabled, :allow_auto_inventory_upload)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def show_auto_upload
|
|
31
|
-
render_setting(:autoUploadEnabled, :allow_auto_inventory_upload)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def auto_upload_params
|
|
35
|
-
ActiveModel::Type::Boolean.new.cast(params.require(:value))
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def host_obfuscation
|
|
39
|
-
Setting[:obfuscate_inventory_hostnames] = host_obfuscation_params
|
|
40
|
-
render_setting(:hostObfuscationEnabled, :obfuscate_inventory_hostnames)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def host_obfuscation_params
|
|
44
|
-
ActiveModel::Type::Boolean.new.cast(params.require(:value))
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def installed_packages_inclusion
|
|
48
|
-
Setting[:exclude_installed_packages] = host_obfuscation_params
|
|
49
|
-
render_setting(:excludePackages, :exclude_installed_packages)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def installed_packages_inclusion_params
|
|
53
|
-
ActiveModel::Type::Boolean.new.cast(params.require(:value))
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def ips_obfuscation
|
|
57
|
-
Setting[:obfuscate_inventory_ips] = ips_obfuscation_params
|
|
58
|
-
render_setting(:ipsObfuscationEnabled, :obfuscate_inventory_ips)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def ips_obfuscation_params
|
|
62
|
-
ActiveModel::Type::Boolean.new.cast(params.require(:value))
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
private
|
|
66
|
-
|
|
67
|
-
def render_setting(node_name, setting)
|
|
68
|
-
render json: {
|
|
69
|
-
node_name => Setting[setting],
|
|
70
|
-
}
|
|
71
|
-
end
|
|
72
24
|
end
|
|
73
25
|
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module ForemanInventoryUpload
|
|
2
|
+
class UploadsSettingsController < ::ApplicationController
|
|
3
|
+
def index
|
|
4
|
+
render json: {
|
|
5
|
+
autoUploadEnabled: Setting[:allow_auto_inventory_upload],
|
|
6
|
+
hostObfuscationEnabled: Setting[:obfuscate_inventory_hostnames],
|
|
7
|
+
ipsObfuscationEnabled: Setting[:obfuscate_inventory_ips],
|
|
8
|
+
excludePackagesEnabled: Setting[:exclude_installed_packages],
|
|
9
|
+
CloudConnectorStatus: ForemanInventoryUpload::UploadsSettingsController.cloud_connector_status,
|
|
10
|
+
cloudToken: !Setting[:rh_cloud_token].empty?,
|
|
11
|
+
lastSyncTask: last_successful_inventory_sync_task,
|
|
12
|
+
}, status: :ok
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def set_advanced_setting
|
|
16
|
+
Setting[params.require(:setting)] = ActiveModel::Type::Boolean.new.cast(params.require(:value))
|
|
17
|
+
index
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def self.cloud_connector_status
|
|
21
|
+
cloud_connector = ForemanRhCloud::CloudConnector.new
|
|
22
|
+
job = cloud_connector&.latest_job
|
|
23
|
+
return nil unless job
|
|
24
|
+
{ id: job.id, task: ForemanTasks::Task.where(:id => job.task_id).first }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def last_successful_inventory_sync_task
|
|
28
|
+
task = ForemanTasks::Task.where(label: 'InventorySync::Async::InventoryFullSync', result: 'success')
|
|
29
|
+
.reorder('ended_at desc').first
|
|
30
|
+
return nil unless task
|
|
31
|
+
{ output: task.output, endedAt: task.ended_at }
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -10,27 +10,28 @@ module InsightsCloud::Api
|
|
|
10
10
|
|
|
11
11
|
skip_after_action :log_response_body, :only => [:forward_request]
|
|
12
12
|
skip_before_action :check_media_type, :only => [:forward_request]
|
|
13
|
+
after_action :update_host_insights_status, only: [:forward_request]
|
|
13
14
|
|
|
14
15
|
# The method that "proxies" requests over to Cloud
|
|
15
16
|
def forward_request
|
|
16
17
|
certs = candlepin_id_cert @organization
|
|
17
|
-
cloud_response = ::ForemanRhCloud::CloudRequestForwarder.new.forward_request(request, controller_name, @branch_id, certs)
|
|
18
|
+
@cloud_response = ::ForemanRhCloud::CloudRequestForwarder.new.forward_request(request, controller_name, @branch_id, certs)
|
|
18
19
|
|
|
19
|
-
if cloud_response.code == 401
|
|
20
|
+
if @cloud_response.code == 401
|
|
20
21
|
return render json: {
|
|
21
22
|
:message => 'Authentication to the Insights Service failed.',
|
|
22
23
|
:headers => {},
|
|
23
24
|
}, status: :bad_gateway
|
|
24
25
|
end
|
|
25
26
|
|
|
26
|
-
if cloud_response.headers[:content_disposition]
|
|
27
|
-
return send_data cloud_response, disposition: cloud_response.headers[:content_disposition], type: cloud_response.headers[:content_type]
|
|
27
|
+
if @cloud_response.headers[:content_disposition]
|
|
28
|
+
return send_data @cloud_response, disposition: @cloud_response.headers[:content_disposition], type: @cloud_response.headers[:content_type]
|
|
28
29
|
end
|
|
29
30
|
|
|
30
|
-
assign_header(response, cloud_response, :x_resource_count, true)
|
|
31
|
-
assign_header(response, cloud_response, :x_rh_insights_request_id, false)
|
|
31
|
+
assign_header(response, @cloud_response, :x_resource_count, true)
|
|
32
|
+
assign_header(response, @cloud_response, :x_rh_insights_request_id, false)
|
|
32
33
|
|
|
33
|
-
render json: cloud_response, status: cloud_response.code
|
|
34
|
+
render json: @cloud_response, status: @cloud_response.code
|
|
34
35
|
end
|
|
35
36
|
|
|
36
37
|
def branch_info
|
|
@@ -69,5 +70,14 @@ module InsightsCloud::Api
|
|
|
69
70
|
@branch_id = cp_owner_id(@organization)
|
|
70
71
|
return render_message "Branch ID not found for organization #{@organization.title}", :status => 400 unless @branch_id
|
|
71
72
|
end
|
|
73
|
+
|
|
74
|
+
def update_host_insights_status
|
|
75
|
+
return unless request.path == '/redhat_access/r/insights/platform/ingress/v1/upload' ||
|
|
76
|
+
request.path.include?('/redhat_access/r/insights/uploads/')
|
|
77
|
+
|
|
78
|
+
data = @cloud_response.code.to_s.start_with?('2')
|
|
79
|
+
host_status = @host.get_status(InsightsClientReportStatus)
|
|
80
|
+
host_status.update(reported_at: Time.now.utc, status: host_status.to_status(data: data))
|
|
81
|
+
end
|
|
72
82
|
end
|
|
73
83
|
end
|
|
@@ -3,12 +3,13 @@ module InsightsCloud
|
|
|
3
3
|
include Foreman::Controller::AutoCompleteSearch
|
|
4
4
|
|
|
5
5
|
def index
|
|
6
|
-
hits = resource_base_search_and_page.preload(:host, :rule)
|
|
6
|
+
hits = resource_base_search_and_page.where(host: Host.authorized).preload(:host, :rule)
|
|
7
7
|
|
|
8
8
|
render json: {
|
|
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],
|
|
12
13
|
}, status: :ok
|
|
13
14
|
end
|
|
14
15
|
|
|
@@ -20,6 +21,21 @@ module InsightsCloud
|
|
|
20
21
|
}, status: :ok
|
|
21
22
|
end
|
|
22
23
|
|
|
24
|
+
def resolutions
|
|
25
|
+
if remediation_all_selected_param
|
|
26
|
+
hits = InsightsHit.with_playbook.search_for(params[:query])
|
|
27
|
+
else
|
|
28
|
+
hits = resource_base_search_and_page.where(id: remediation_ids_param)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
hits.preload(:host, rule: :resolutions)
|
|
32
|
+
|
|
33
|
+
render json: {
|
|
34
|
+
hits: hits.map { |hit| hit.attributes.merge(hostname: hit.host&.name, resolutions: hit.rule.resolutions.map(&:attributes), reboot: hit.rule.reboot_required) },
|
|
35
|
+
itemCount: hits.count,
|
|
36
|
+
}, status: :ok
|
|
37
|
+
end
|
|
38
|
+
|
|
23
39
|
def model_of_controller
|
|
24
40
|
::InsightsHit
|
|
25
41
|
end
|
|
@@ -32,10 +48,31 @@ module InsightsCloud
|
|
|
32
48
|
:insights_hits
|
|
33
49
|
end
|
|
34
50
|
|
|
51
|
+
def action_permission
|
|
52
|
+
case params[:action]
|
|
53
|
+
when 'resolutions'
|
|
54
|
+
'view'
|
|
55
|
+
else
|
|
56
|
+
super
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
35
60
|
private
|
|
36
61
|
|
|
37
62
|
def host_id_param
|
|
38
63
|
params.require(:host_id)
|
|
39
64
|
end
|
|
65
|
+
|
|
66
|
+
def remediation_request_params
|
|
67
|
+
params.permit(remediations: [:hit_id, :remediation_id]).require(:remediations)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def remediation_ids_param
|
|
71
|
+
params.require(:ids).map(&:to_i)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def remediation_all_selected_param
|
|
75
|
+
ActiveModel::Type::Boolean.new.cast(params[:isAllSelected])
|
|
76
|
+
end
|
|
40
77
|
end
|
|
41
78
|
end
|
|
@@ -13,7 +13,7 @@ module InsightsCloud
|
|
|
13
13
|
token = Setting::RhCloud.find_by_name("rh_cloud_token")
|
|
14
14
|
token.value = params.require(:value)
|
|
15
15
|
token.save!
|
|
16
|
-
InsightsCloud::Async::InsightsFullSync
|
|
16
|
+
ForemanTasks.sync_task(InsightsCloud::Async::InsightsFullSync)
|
|
17
17
|
redirect_to(:controller => "hits", :action => 'index')
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
module InsightsCloud
|
|
2
2
|
class TasksController < ::ApplicationController
|
|
3
3
|
def create
|
|
4
|
-
|
|
5
|
-
task = ForemanTasks::Task.find_by(external_id: job.provider_job_id)
|
|
4
|
+
task = ForemanTasks.async_task(InsightsCloud::Async::InsightsFullSync)
|
|
6
5
|
|
|
7
6
|
render json: {
|
|
8
7
|
task: task,
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
class InsightsClientReportStatus < HostStatus::Status
|
|
2
|
+
REPORT_INTERVAL = 48.hours
|
|
3
|
+
|
|
4
|
+
REPORTING = 0 # host_registration_insights = true & getting data
|
|
5
|
+
NO_REPORT = 1 # host_registration_insights = true & not getting data
|
|
6
|
+
NOT_MANAGED = 2 # host_registration_insights = false
|
|
7
|
+
NOT_MANAGED_WITH_DATA = 3 # host_registration_insights = false & getting data
|
|
8
|
+
|
|
9
|
+
def self.status_name
|
|
10
|
+
N_('Insights')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def to_label(_options = {})
|
|
14
|
+
case status
|
|
15
|
+
when REPORTING
|
|
16
|
+
N_('Reporting')
|
|
17
|
+
when NO_REPORT
|
|
18
|
+
N_('Not reporting')
|
|
19
|
+
when NOT_MANAGED
|
|
20
|
+
N_('Not reporting (not set by registration)')
|
|
21
|
+
when NOT_MANAGED_WITH_DATA
|
|
22
|
+
N_('Reporting (not set by registration)')
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def to_global(_options = {})
|
|
27
|
+
case status
|
|
28
|
+
when REPORTING
|
|
29
|
+
::HostStatus::Global::OK
|
|
30
|
+
when NO_REPORT
|
|
31
|
+
::HostStatus::Global::ERROR
|
|
32
|
+
when NOT_MANAGED
|
|
33
|
+
::HostStatus::Global::OK
|
|
34
|
+
when NOT_MANAGED_WITH_DATA
|
|
35
|
+
::HostStatus::Global::WARN
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def to_status(data: false)
|
|
40
|
+
if insights_param
|
|
41
|
+
return REPORTING if data
|
|
42
|
+
return in_interval? ? REPORTING : NO_REPORT
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
data ? NOT_MANAGED_WITH_DATA : NOT_MANAGED
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
def in_interval?
|
|
51
|
+
return false unless reported_at
|
|
52
|
+
(Time.now.utc - reported_at).to_i < REPORT_INTERVAL.to_i
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def insights_param
|
|
56
|
+
host.host_params_hash.dig('host_registration_insights', :value)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -26,5 +26,11 @@ module InventorySync
|
|
|
26
26
|
N_('Successfully uploaded to your RH cloud inventory')
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
|
+
|
|
30
|
+
def to_status(options = {})
|
|
31
|
+
# this method used to calculate status.
|
|
32
|
+
# Since the calculation is done externally we should return the previously calculated status
|
|
33
|
+
status
|
|
34
|
+
end
|
|
29
35
|
end
|
|
30
36
|
end
|
|
@@ -14,12 +14,12 @@ class Setting::RhCloud < Setting
|
|
|
14
14
|
def self.default_settings
|
|
15
15
|
return unless ActiveRecord::Base.connection.table_exists?('settings')
|
|
16
16
|
[
|
|
17
|
-
set('allow_auto_inventory_upload', N_('
|
|
18
|
-
set('allow_auto_insights_sync', N_('
|
|
19
|
-
set('obfuscate_inventory_hostnames', N_('Obfuscate host names sent to Red Hat cloud'), false, N_('Obfuscate host names')),
|
|
20
|
-
set('obfuscate_inventory_ips', N_('Obfuscate
|
|
17
|
+
set('allow_auto_inventory_upload', N_('Enable automatic upload of your host inventory to the Red Hat cloud'), true, N_('Automatic inventory upload')),
|
|
18
|
+
set('allow_auto_insights_sync', N_('Enable automatic synchronization of Insights recommendations from the Red Hat cloud'), false, N_('Synchronize recommendations Automatically')),
|
|
19
|
+
set('obfuscate_inventory_hostnames', N_('Obfuscate host names sent to the Red Hat cloud'), false, N_('Obfuscate host names')),
|
|
20
|
+
set('obfuscate_inventory_ips', N_('Obfuscate ipv4 addresses sent to the Red Hat cloud'), false, N_('Obfuscate host ipv4 addresses')),
|
|
21
21
|
set('rh_cloud_token', N_('Authentication token to Red Hat cloud services. Used to authenticate requests to cloud APIs'), nil, N_('Red Hat Cloud token'), nil, encrypted: true),
|
|
22
|
-
set('exclude_installed_packages', N_('Exclude installed packages from Red Hat cloud
|
|
22
|
+
set('exclude_installed_packages', N_('Exclude installed packages from being uploaded to the Red Hat cloud'), false, N_("Exclude installed Packages")),
|
|
23
23
|
set('include_parameter_tags', N_('Should import include parameter tags from Foreman?'), false, N_('Include parameters in insights-client reports')),
|
|
24
24
|
]
|
|
25
25
|
end
|