foreman_rh_cloud 3.0.19 → 4.0.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -5
  3. data/app/controllers/insights_cloud/api/machine_telemetries_controller.rb +17 -7
  4. data/app/controllers/insights_cloud/hits_controller.rb +37 -0
  5. data/app/controllers/insights_cloud/settings_controller.rb +1 -1
  6. data/app/controllers/insights_cloud/tasks_controller.rb +1 -2
  7. data/app/models/insights_client_report_status.rb +58 -0
  8. data/app/models/inventory_sync/inventory_status.rb +6 -0
  9. data/app/models/setting/rh_cloud.rb +5 -5
  10. data/app/services/foreman_rh_cloud/cloud_auth.rb +12 -0
  11. data/app/services/foreman_rh_cloud/cloud_connector.rb +1 -1
  12. data/app/services/foreman_rh_cloud/cloud_request.rb +14 -0
  13. data/app/services/foreman_rh_cloud/cloud_request_forwarder.rb +1 -6
  14. data/app/services/foreman_rh_cloud/remediations_retriever.rb +75 -0
  15. data/app/services/foreman_rh_cloud/template_renderer_helper.rb +22 -0
  16. data/app/subscribers/foreman_rh_cloud/insights_subscriber.rb +9 -0
  17. data/app/views/job_templates/rh_cloud_remediations.erb +14 -0
  18. data/config/routes.rb +1 -0
  19. data/db/migrate/20210404000001_change_resolutions.foreman_rh_cloud.rb +10 -0
  20. data/db/seeds.d/179_ui_notifications.rb +11 -0
  21. data/db/seeds.d/50_job_templates.rb +14 -0
  22. data/lib/foreman_inventory_upload.rb +5 -1
  23. data/lib/foreman_inventory_upload/async/generate_all_reports_job.rb +8 -2
  24. data/lib/foreman_inventory_upload/generators/fact_helpers.rb +19 -0
  25. data/lib/foreman_inventory_upload/generators/queries.rb +3 -2
  26. data/lib/foreman_inventory_upload/generators/slice.rb +6 -6
  27. data/lib/foreman_inventory_upload/generators/tags.rb +8 -6
  28. data/lib/foreman_rh_cloud.rb +18 -0
  29. data/lib/foreman_rh_cloud/engine.rb +36 -2
  30. data/lib/foreman_rh_cloud/version.rb +1 -1
  31. data/lib/insights_cloud.rb +12 -0
  32. data/lib/insights_cloud/async/insights_full_sync.rb +31 -22
  33. data/lib/insights_cloud/async/insights_generate_notifications.rb +58 -0
  34. data/lib/insights_cloud/async/insights_resolutions_sync.rb +66 -0
  35. data/lib/insights_cloud/async/insights_rules_sync.rb +15 -24
  36. data/lib/insights_cloud/async/insights_scheduled_sync.rb +1 -1
  37. data/lib/inventory_sync/async/inventory_full_sync.rb +2 -1
  38. data/lib/inventory_sync/async/inventory_scheduled_sync.rb +25 -0
  39. data/lib/inventory_sync/async/query_inventory_job.rb +1 -4
  40. data/lib/tasks/insights.rake +4 -12
  41. data/lib/tasks/rh_cloud_inventory.rake +18 -4
  42. data/package.json +1 -1
  43. data/test/factories/insights_factories.rb +22 -0
  44. data/test/factories/inventory_upload_factories.rb +1 -1
  45. data/test/jobs/insights_full_sync_test.rb +17 -8
  46. data/test/jobs/insights_resolutions_sync_test.rb +77 -0
  47. data/test/jobs/insights_rules_sync_test.rb +8 -3
  48. data/test/jobs/inventory_full_sync_test.rb +4 -1
  49. data/test/models/insights_client_report_status_test.rb +77 -0
  50. data/test/test_plugin_helper.rb +0 -1
  51. data/test/unit/rh_cloud_http_proxy_test.rb +4 -4
  52. data/test/unit/services/foreman_rh_cloud/remediations_retriever_test.rb +49 -0
  53. data/test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb +28 -0
  54. data/test/unit/slice_generator_test.rb +66 -29
  55. data/test/unit/tags_generator_test.rb +10 -0
  56. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModal.js +1 -1
  57. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/__tests__/__snapshots__/FullScreenModal.test.js.snap +1 -1
  58. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/fullScreenModal.scss +14 -16
  59. data/webpack/ForemanInventoryUpload/Components/InventorySettings/AdvancedSetting/AdvancedSettingsConstants.js +5 -3
  60. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/PageDescription.js +15 -2
  61. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/PageDescription/__tests__/__snapshots__/PageDescription.test.js.snap +13 -2
  62. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonActions.js +28 -63
  63. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/integrations.test.js.snap +2 -3
  64. data/webpack/ForemanInventoryUpload/Components/Terminal/Terminal.js +1 -1
  65. data/webpack/ForemanInventoryUpload/Components/Terminal/__tests__/Terminal.test.js +1 -1
  66. data/webpack/ForemanInventoryUpload/Components/Terminal/__tests__/__snapshots__/Terminal.test.js.snap +2 -2
  67. data/webpack/ForemanInventoryUpload/Components/Terminal/terminal.scss +25 -27
  68. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTable.js +1 -1
  69. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableActions.js +19 -19
  70. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableSelectors.js +3 -0
  71. data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/__snapshots__/InsightsTableActions.test.js.snap +14 -14
  72. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediateButton.js +59 -0
  73. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationActions.js +12 -0
  74. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationHelpers.js +43 -0
  75. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.js +101 -0
  76. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.scss +9 -0
  77. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModalFooter.js +43 -0
  78. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationTableConstants.js +38 -0
  79. data/webpack/InsightsCloudSync/Components/RemediationModal/Resolutions.js +55 -0
  80. data/webpack/InsightsCloudSync/Components/RemediationModal/index.js +34 -0
  81. data/webpack/InsightsCloudSync/InsightsCloudSync.js +11 -3
  82. data/webpack/InsightsCloudSync/InsightsCloudSync.scss +5 -0
  83. data/webpack/InsightsCloudSync/InsightsCloudSyncActions.js +44 -20
  84. data/webpack/InsightsCloudSync/InsightsCloudSyncConstants.js +2 -0
  85. data/webpack/InsightsCloudSync/__snapshots__/InsightsCloudSync.test.js.snap +9 -6
  86. data/webpack/InsightsCloudSync/__tests__/__snapshots__/InsightsCloudSyncActions.test.js.snap +11 -7
  87. data/webpack/common/ForemanTasks/ForemanTasksActions.js +64 -0
  88. data/webpack/common/ForemanTasks/ForemanTasksHelpers.js +7 -0
  89. data/webpack/common/ForemanTasks/index.js +1 -0
  90. data/webpack/{InsightsCloudSync/Components/InsightsTable/components → common/table}/EmptyState.js +0 -0
  91. data/webpack/common/table/helpers.js +7 -0
  92. metadata +38 -4
@@ -6,10 +6,12 @@ import PageLayout from 'foremanReact/routes/common/PageLayout/PageLayout';
6
6
  import InsightsHeader from './Components/InsightsHeader';
7
7
  import { NoTokenEmptyState } from './Components/NoTokenEmptyState';
8
8
  import InsightsTable from './Components/InsightsTable';
9
+ import RemediationModal from './Components/RemediationModal';
9
10
  import {
10
11
  INSIGHTS_SYNC_PAGE_TITLE,
11
12
  INSIGHTS_SEARCH_PROPS,
12
13
  } from './InsightsCloudSyncConstants';
14
+ import './InsightsCloudSync.scss';
13
15
 
14
16
  const InsightsCloudSync = ({
15
17
  syncInsights,
@@ -32,9 +34,15 @@ const InsightsCloudSync = ({
32
34
  onSearch={nextQuery => fetchInsights({ query: nextQuery, page: 1 })}
33
35
  header={INSIGHTS_SYNC_PAGE_TITLE}
34
36
  toolbarButtons={
35
- <Button variant="primary" onClick={syncInsights}>
36
- {__('Start recommendations sync')}
37
- </Button>
37
+ <>
38
+ <RemediationModal />
39
+ <Button
40
+ variant="secondary"
41
+ onClick={() => syncInsights(fetchInsights, query)}
42
+ >
43
+ {__('Start recommendations sync')}
44
+ </Button>
45
+ </>
38
46
  }
39
47
  searchQuery={query}
40
48
  beforeToolbarComponent={<InsightsHeader />}
@@ -0,0 +1,5 @@
1
+ .rh-cloud-insights {
2
+ .btn-toolbar {
3
+ display: inherit;
4
+ }
5
+ }
@@ -1,25 +1,49 @@
1
- import React from 'react';
2
1
  import { post } from 'foremanReact/redux/API';
3
2
  import { translate as __ } from 'foremanReact/common/I18n';
4
3
  import { insightsCloudUrl } from './InsightsCloudSyncHelpers';
5
- import { INSIGHTS_CLOUD_SYNC } from './InsightsCloudSyncConstants';
6
- import { foremanUrl } from '../ForemanRhCloudHelpers';
4
+ import {
5
+ INSIGHTS_CLOUD_SYNC,
6
+ INSIGHTS_CLOUD_SYNC_TASK,
7
+ } from './InsightsCloudSyncConstants';
8
+ import { setupTaskPolling, taskRelatedToast } from '../common/ForemanTasks';
7
9
 
8
- export const syncInsights = () =>
9
- post({
10
- key: INSIGHTS_CLOUD_SYNC,
11
- url: insightsCloudUrl('tasks'),
12
- successToast: response => (
13
- <span>
14
- {__('Recommendation sync has started: ')}
15
- <a
16
- target="_blank"
17
- rel="noopener noreferrer"
18
- href={foremanUrl(`/foreman_tasks/tasks/${response.data?.task?.id}`)}
19
- >
20
- {__('view the task in progress')}
21
- </a>
22
- </span>
23
- ),
24
- errorToast: error => `${__('Recommendation sync has failed: ')} ${error}`,
10
+ export const syncInsights = (fetchInsights, query) => dispatch =>
11
+ dispatch(
12
+ post({
13
+ key: INSIGHTS_CLOUD_SYNC,
14
+ url: insightsCloudUrl('tasks'),
15
+ handleSuccess: ({
16
+ data: {
17
+ task: { id },
18
+ },
19
+ }) => {
20
+ dispatch(syncInsightsStartedToast(id));
21
+ dispatch(setupInsightsTaskPolling(id, fetchInsights, query, dispatch));
22
+ },
23
+ errorToast: error => syncInsightsError(error),
24
+ })
25
+ );
26
+
27
+ const syncInsightsError = error =>
28
+ `${__('Recommendation sync has failed: ')} ${error}`;
29
+
30
+ const syncInsightsStartedToast = taskId =>
31
+ taskRelatedToast(taskId, 'info', __('Recommendation sync has started: '));
32
+
33
+ const setupInsightsTaskPolling = (taskId, fetchInsights, query, dispatch) =>
34
+ setupTaskPolling({
35
+ taskId,
36
+ key: INSIGHTS_CLOUD_SYNC_TASK,
37
+ onTaskSuccess: () => {
38
+ fetchInsights({ query, page: 1 });
39
+ dispatch(
40
+ taskRelatedToast(
41
+ taskId,
42
+ 'success',
43
+ __('Recommendations synced successfully')
44
+ )
45
+ );
46
+ },
47
+ taskErrorMessage: data => syncInsightsError(data.humanized.errors),
48
+ dispatch,
25
49
  });
@@ -4,6 +4,8 @@ import { foremanUrl } from '../ForemanRhCloudHelpers';
4
4
 
5
5
  export const INSIGHTS_CLOUD_SYNC = 'INSIGHTS_CLOUD_SYNC';
6
6
 
7
+ export const INSIGHTS_CLOUD_SYNC_TASK = 'INSIGHTS_CLOUD_SYNC_TASK';
8
+
7
9
  export const INSIGHTS_SYNC_PAGE_TITLE = __('Red Hat Insights');
8
10
 
9
11
  export const INSIGHTS_PATH = foremanUrl('/foreman_rh_cloud/insights_cloud');
@@ -27,12 +27,15 @@ exports[`InsightsCloudSync render 1`] = `
27
27
  searchQuery=""
28
28
  searchable={true}
29
29
  toolbarButtons={
30
- <Button
31
- onClick={[Function]}
32
- variant="primary"
33
- >
34
- Start recommendations sync
35
- </Button>
30
+ <React.Fragment>
31
+ <UNDEFINED />
32
+ <Button
33
+ onClick={[Function]}
34
+ variant="secondary"
35
+ >
36
+ Start recommendations sync
37
+ </Button>
38
+ </React.Fragment>
36
39
  }
37
40
  >
38
41
  <Connect(InsightsTable) />
@@ -1,11 +1,15 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`Insights cloud sync actions should syncInsights 1`] = `
4
- Object {
5
- "errorToast": [Function],
6
- "key": "INSIGHTS_CLOUD_SYNC",
7
- "successToast": [Function],
8
- "type": "post-some-type",
9
- "url": "/insights_cloud/tasks",
10
- }
4
+ Array [
5
+ Array [
6
+ Object {
7
+ "errorToast": [Function],
8
+ "handleSuccess": [Function],
9
+ "key": "INSIGHTS_CLOUD_SYNC",
10
+ "type": "post-some-type",
11
+ "url": "/insights_cloud/tasks",
12
+ },
13
+ ],
14
+ ]
11
15
  `;
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import { get } from 'foremanReact/redux/API';
3
+ import { withInterval } from 'foremanReact/redux/middlewares/IntervalMiddleware';
4
+ import { addToast } from 'foremanReact/redux/actions/toasts';
5
+ import { translate as __ } from 'foremanReact/common/I18n';
6
+ import { foremanTaskDetailsUrl } from './ForemanTasksHelpers';
7
+ import { foremanUrl } from '../../ForemanRhCloudHelpers';
8
+
9
+ export const setupTaskPolling = ({
10
+ taskId,
11
+ key,
12
+ onTaskSuccess,
13
+ onTaskError,
14
+ taskErrorMessage,
15
+ dispatch,
16
+ }) =>
17
+ withInterval(
18
+ get({
19
+ key,
20
+ url: foremanTaskDetailsUrl(taskId),
21
+ handleSuccess: ({ data }, stopTaskInterval) => {
22
+ if (data.result === 'success') {
23
+ stopTaskInterval();
24
+ onTaskSuccess(data, dispatch);
25
+ }
26
+ if (data.result === 'error') {
27
+ stopTaskInterval();
28
+ if (taskErrorMessage === undefined) {
29
+ taskErrorMessage = errorData =>
30
+ `${__('The task failed with the following error:')} ${
31
+ errorData.humanized.errors
32
+ }`;
33
+ }
34
+ if (onTaskError === undefined) {
35
+ onTaskError = errorData =>
36
+ dispatch(defaultTaskErrorHandler(errorData, taskErrorMessage));
37
+ }
38
+ onTaskError(data, dispatch);
39
+ }
40
+ },
41
+ errorToast: error => `Could not get task details: ${error}`,
42
+ })
43
+ );
44
+
45
+ export const taskRelatedToast = (taskID, type, message) =>
46
+ addToast({
47
+ type,
48
+ message: (
49
+ <span>
50
+ {message}
51
+ <br />
52
+ <a
53
+ target="_blank"
54
+ rel="noopener noreferrer"
55
+ href={foremanUrl(`/foreman_tasks/tasks/${taskID}`)}
56
+ >
57
+ {__('view the task page for more details')}
58
+ </a>
59
+ </span>
60
+ ),
61
+ });
62
+
63
+ const defaultTaskErrorHandler = (data, taskErrorMessage) =>
64
+ taskRelatedToast(data.id, 'error', taskErrorMessage(data));
@@ -0,0 +1,7 @@
1
+ import { foremanUrl } from '../../ForemanRhCloudHelpers';
2
+
3
+ export const foremanTasksApiPath = path =>
4
+ foremanUrl(`/foreman_tasks/api/tasks/${path}`);
5
+
6
+ export const foremanTaskDetailsUrl = id =>
7
+ foremanTasksApiPath(`${id}/details?include_permissions`);
@@ -0,0 +1 @@
1
+ export { setupTaskPolling, taskRelatedToast } from './ForemanTasksActions';
@@ -0,0 +1,7 @@
1
+ export const getPerPageOptions = (urlPerPage, appPerPage) => {
2
+ const initialValues = new Set([5, 10, 15, 25, 50]);
3
+ initialValues.add(appPerPage);
4
+ urlPerPage && initialValues.add(urlPerPage);
5
+ const options = [...initialValues].sort((a, b) => a - b);
6
+ return options.map(value => ({ title: value.toString(), value }));
7
+ };
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: 3.0.19
4
+ version: 4.0.22
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-04-01 00:00:00.000000000 Z
11
+ date: 2021-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: katello
@@ -160,6 +160,7 @@ files:
160
160
  - app/helpers/foreman_inventory_upload_helper.rb
161
161
  - app/helpers/foreman_inventory_upload_host_helper.rb
162
162
  - app/models/concerns/rh_cloud_host.rb
163
+ - app/models/insights_client_report_status.rb
163
164
  - app/models/insights_facet.rb
164
165
  - app/models/insights_hit.rb
165
166
  - app/models/insights_resolution.rb
@@ -171,8 +172,13 @@ files:
171
172
  - app/services/foreman_rh_cloud/branch_info.rb
172
173
  - app/services/foreman_rh_cloud/cloud_auth.rb
173
174
  - app/services/foreman_rh_cloud/cloud_connector.rb
175
+ - app/services/foreman_rh_cloud/cloud_request.rb
174
176
  - app/services/foreman_rh_cloud/cloud_request_forwarder.rb
177
+ - app/services/foreman_rh_cloud/remediations_retriever.rb
178
+ - app/services/foreman_rh_cloud/template_renderer_helper.rb
179
+ - app/subscribers/foreman_rh_cloud/insights_subscriber.rb
175
180
  - app/views/hosts/_insights_tab.html.erb
181
+ - app/views/job_templates/rh_cloud_remediations.erb
176
182
  - app/views/layouts/foreman_rh_cloud/application.html.erb
177
183
  - config/Gemfile.lock.gh_test
178
184
  - config/database.yml.example
@@ -186,6 +192,9 @@ files:
186
192
  - db/migrate/20210214000001_create_rules_and_resolutions.foreman_rh_cloud.rb
187
193
  - db/migrate/20210214000002_add_rule_id_to_hits.foreman_rh_cloud.rb
188
194
  - db/migrate/20210307000001_add_unique_to_insights_facet.foreman_rh_cloud.rb
195
+ - db/migrate/20210404000001_change_resolutions.foreman_rh_cloud.rb
196
+ - db/seeds.d/179_ui_notifications.rb
197
+ - db/seeds.d/50_job_templates.rb
189
198
  - lib/foreman_inventory_upload.rb
190
199
  - lib/foreman_inventory_upload/async/async_helpers.rb
191
200
  - lib/foreman_inventory_upload/async/generate_all_reports_job.rb
@@ -208,12 +217,15 @@ files:
208
217
  - lib/foreman_rh_cloud/version.rb
209
218
  - lib/insights_cloud.rb
210
219
  - lib/insights_cloud/async/insights_full_sync.rb
220
+ - lib/insights_cloud/async/insights_generate_notifications.rb
221
+ - lib/insights_cloud/async/insights_resolutions_sync.rb
211
222
  - lib/insights_cloud/async/insights_rules_sync.rb
212
223
  - lib/insights_cloud/async/insights_scheduled_sync.rb
213
224
  - lib/insights_cloud/async/rules_result.rb
214
225
  - lib/inventory_sync/async/host_result.rb
215
226
  - lib/inventory_sync/async/inventory_full_sync.rb
216
227
  - lib/inventory_sync/async/inventory_hosts_sync.rb
228
+ - lib/inventory_sync/async/inventory_scheduled_sync.rb
217
229
  - lib/inventory_sync/async/query_inventory_job.rb
218
230
  - lib/tasks/foreman_rh_cloud_tasks.rake
219
231
  - lib/tasks/insights.rake
@@ -232,9 +244,11 @@ files:
232
244
  - test/factories/insights_factories.rb
233
245
  - test/factories/inventory_upload_factories.rb
234
246
  - test/jobs/insights_full_sync_test.rb
247
+ - test/jobs/insights_resolutions_sync_test.rb
235
248
  - test/jobs/insights_rules_sync_test.rb
236
249
  - test/jobs/inventory_full_sync_test.rb
237
250
  - test/jobs/upload_report_job_test.rb
251
+ - test/models/insights_client_report_status_test.rb
238
252
  - test/test_plugin_helper.rb
239
253
  - test/unit/archived_report_generator_test.rb
240
254
  - test/unit/fact_helpers_test.rb
@@ -243,6 +257,8 @@ files:
243
257
  - test/unit/rh_cloud_http_proxy_test.rb
244
258
  - test/unit/services/foreman_rh_cloud/branch_info_test.rb
245
259
  - test/unit/services/foreman_rh_cloud/cloud_request_forwarder_test.rb
260
+ - test/unit/services/foreman_rh_cloud/remediations_retriever_test.rb
261
+ - test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb
246
262
  - test/unit/shell_process_job_test.rb
247
263
  - test/unit/slice_generator_test.rb
248
264
  - test/unit/tags_generator_test.rb
@@ -538,15 +554,24 @@ files:
538
554
  - webpack/InsightsCloudSync/Components/InsightsTable/__tests__/__snapshots__/InsightsTableActions.test.js.snap
539
555
  - webpack/InsightsCloudSync/Components/InsightsTable/__tests__/__snapshots__/InsightsTableSelectors.test.js.snap
540
556
  - webpack/InsightsCloudSync/Components/InsightsTable/__tests__/fixtures.js
541
- - webpack/InsightsCloudSync/Components/InsightsTable/components/EmptyState.js
542
557
  - webpack/InsightsCloudSync/Components/InsightsTable/index.js
543
558
  - webpack/InsightsCloudSync/Components/InsightsTable/table.scss
544
559
  - webpack/InsightsCloudSync/Components/NoTokenEmptyState.js
560
+ - webpack/InsightsCloudSync/Components/RemediationModal/RemediateButton.js
561
+ - webpack/InsightsCloudSync/Components/RemediationModal/RemediationActions.js
562
+ - webpack/InsightsCloudSync/Components/RemediationModal/RemediationHelpers.js
563
+ - webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.js
564
+ - webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.scss
565
+ - webpack/InsightsCloudSync/Components/RemediationModal/RemediationModalFooter.js
566
+ - webpack/InsightsCloudSync/Components/RemediationModal/RemediationTableConstants.js
567
+ - webpack/InsightsCloudSync/Components/RemediationModal/Resolutions.js
568
+ - webpack/InsightsCloudSync/Components/RemediationModal/index.js
545
569
  - webpack/InsightsCloudSync/Components/__tests__/InsightsHeader.test.js
546
570
  - webpack/InsightsCloudSync/Components/__tests__/NoTokenEmptyState.test.js
547
571
  - webpack/InsightsCloudSync/Components/__tests__/__snapshots__/InsightsHeader.test.js.snap
548
572
  - webpack/InsightsCloudSync/Components/__tests__/__snapshots__/NoTokenEmptyState.test.js.snap
549
573
  - webpack/InsightsCloudSync/InsightsCloudSync.js
574
+ - webpack/InsightsCloudSync/InsightsCloudSync.scss
550
575
  - webpack/InsightsCloudSync/InsightsCloudSync.test.js
551
576
  - webpack/InsightsCloudSync/InsightsCloudSyncActions.js
552
577
  - webpack/InsightsCloudSync/InsightsCloudSyncConstants.js
@@ -596,6 +621,9 @@ files:
596
621
  - webpack/__tests__/__snapshots__/ForemanRhCloudHelpers.test.js.snap
597
622
  - webpack/__tests__/__snapshots__/ForemanRhCloudSelectors.test.js.snap
598
623
  - webpack/__tests__/__snapshots__/ForemanRhCloudTestHelpers.test.js.snap
624
+ - webpack/common/ForemanTasks/ForemanTasksActions.js
625
+ - webpack/common/ForemanTasks/ForemanTasksHelpers.js
626
+ - webpack/common/ForemanTasks/index.js
599
627
  - webpack/common/Switcher/HelpLabel.js
600
628
  - webpack/common/Switcher/SwitcherPF4.js
601
629
  - webpack/common/Switcher/SwitcherPF4.scss
@@ -604,6 +632,8 @@ files:
604
632
  - webpack/common/Switcher/__tests__/__snapshots__/HelpLabel.test.js.snap
605
633
  - webpack/common/Switcher/__tests__/__snapshots__/SwitcherPF4.test.js.snap
606
634
  - webpack/common/Switcher/index.js
635
+ - webpack/common/table/EmptyState.js
636
+ - webpack/common/table/helpers.js
607
637
  - webpack/global_index.js
608
638
  - webpack/index.js
609
639
  homepage: https://github.com/theforeman/foreman_rh_cloud
@@ -625,7 +655,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
625
655
  - !ruby/object:Gem::Version
626
656
  version: '0'
627
657
  requirements: []
628
- rubygems_version: 3.1.4
658
+ rubygems_version: 3.2.3
629
659
  signing_key:
630
660
  specification_version: 4
631
661
  summary: Summary of ForemanRhCloud.
@@ -639,9 +669,11 @@ test_files:
639
669
  - test/factories/insights_factories.rb
640
670
  - test/factories/inventory_upload_factories.rb
641
671
  - test/jobs/insights_full_sync_test.rb
672
+ - test/jobs/insights_resolutions_sync_test.rb
642
673
  - test/jobs/insights_rules_sync_test.rb
643
674
  - test/jobs/inventory_full_sync_test.rb
644
675
  - test/jobs/upload_report_job_test.rb
676
+ - test/models/insights_client_report_status_test.rb
645
677
  - test/test_plugin_helper.rb
646
678
  - test/unit/archived_report_generator_test.rb
647
679
  - test/unit/fact_helpers_test.rb
@@ -650,6 +682,8 @@ test_files:
650
682
  - test/unit/rh_cloud_http_proxy_test.rb
651
683
  - test/unit/services/foreman_rh_cloud/branch_info_test.rb
652
684
  - test/unit/services/foreman_rh_cloud/cloud_request_forwarder_test.rb
685
+ - test/unit/services/foreman_rh_cloud/remediations_retriever_test.rb
686
+ - test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb
653
687
  - test/unit/shell_process_job_test.rb
654
688
  - test/unit/slice_generator_test.rb
655
689
  - test/unit/tags_generator_test.rb