foreman_rh_cloud 13.0.9 → 13.0.11

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.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/inventory_upload/report_actions.rb +8 -1
  3. data/app/controllers/foreman_inventory_upload/accounts_controller.rb +82 -7
  4. data/app/controllers/foreman_inventory_upload/api/tasks_controller.rb +110 -0
  5. data/app/controllers/foreman_inventory_upload/reports_controller.rb +41 -17
  6. data/app/controllers/foreman_inventory_upload/uploads_controller.rb +0 -9
  7. data/config/routes.rb +4 -2
  8. data/db/migrate/20251209163012_drop_task_output_tables.foreman_rh_cloud.rb +24 -0
  9. data/lib/foreman_inventory_upload/async/generate_all_reports_job.rb +1 -1
  10. data/lib/foreman_inventory_upload/async/host_inventory_report_job.rb +39 -0
  11. data/lib/foreman_inventory_upload/async/upload_report_direct_job.rb +28 -57
  12. data/lib/foreman_rh_cloud/plugin.rb +2 -1
  13. data/lib/foreman_rh_cloud/version.rb +1 -1
  14. data/lib/tasks/rh_cloud_inventory.rake +4 -2
  15. data/package.json +1 -1
  16. data/test/controllers/accounts_controller_test.rb +10 -11
  17. data/test/controllers/insights_cloud/api/cloud_request_controller_test.rb +1 -2
  18. data/test/jobs/host_inventory_report_job_test.rb +161 -97
  19. data/test/jobs/single_host_report_job_test.rb +36 -54
  20. data/test/jobs/upload_report_direct_job_test.rb +132 -132
  21. data/test/unit/rh_cloud_permissions_test.rb +2 -0
  22. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.fixtures.js +6 -6
  23. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.js +49 -34
  24. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListActions.js +2 -2
  25. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/ListItem.fixtures.js +2 -2
  26. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/ListItem.js +15 -9
  27. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/__tests__/__snapshots__/ListItem.test.js.snap +6 -5
  28. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/ListItemStatus.fixtures.js +2 -2
  29. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/ListItemStatus.js +10 -14
  30. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/ListItemStatusHelper.js +9 -4
  31. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/__tests__/__snapshots__/ListItemStatus.test.js.snap +4 -4
  32. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountList.test.js.snap +15 -9
  33. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListActions.test.js.snap +7 -7
  34. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListReducer.test.js.snap +6 -6
  35. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListSelectors.test.js.snap +12 -12
  36. data/webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.js +36 -132
  37. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/Dashboard.test.js +60 -17
  38. data/webpack/ForemanInventoryUpload/Components/Dashboard/index.js +1 -34
  39. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/integration.test.js.snap +0 -1
  40. data/webpack/ForemanInventoryUpload/Components/NavContainer/NavContainer.js +1 -26
  41. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageTitle.test.js.snap +2 -2
  42. data/webpack/ForemanInventoryUpload/Components/TabHeader/TabHeader.js +22 -9
  43. data/webpack/ForemanInventoryUpload/Components/TabHeader/__tests__/TabHeader.test.js +67 -4
  44. data/webpack/ForemanInventoryUpload/Components/TaskHistory/TaskHistory.js +140 -0
  45. data/webpack/ForemanInventoryUpload/Components/TaskHistory/index.js +1 -0
  46. data/webpack/ForemanInventoryUpload/Components/TaskHistory/taskHistory.scss +40 -0
  47. data/webpack/ForemanInventoryUpload/Components/TaskProgress/TaskProgress.js +340 -0
  48. data/webpack/ForemanInventoryUpload/Components/TaskProgress/index.js +1 -0
  49. data/webpack/ForemanInventoryUpload/Components/TaskProgress/taskProgress.scss +8 -0
  50. data/webpack/ForemanInventoryUpload/ForemanInventoryHelpers.js +2 -2
  51. data/webpack/ForemanInventoryUpload/ForemanInventoryUploadReducers.js +0 -2
  52. data/webpack/ForemanInventoryUpload/__tests__/__snapshots__/ForemanInventoryHelpers.test.js.snap +1 -1
  53. data/webpack/ForemanRhCloudPages.js +0 -1
  54. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationHelpers.js +1 -2
  55. data/webpack/InsightsCloudSync/Components/RemediationModal/RemediationModal.js +2 -4
  56. data/webpack/__mocks__/foremanReact/components/common/dates/RelativeDateTime.js +14 -0
  57. data/webpack/__tests__/ForemanRhCloudHelpers.test.js +5 -1
  58. metadata +11 -62
  59. data/app/models/task_output_line.rb +0 -2
  60. data/app/models/task_output_status.rb +0 -2
  61. data/lib/foreman_inventory_upload/async/generate_report_job.rb +0 -61
  62. data/lib/foreman_inventory_upload/async/progress_output.rb +0 -38
  63. data/lib/foreman_inventory_upload/async/shell_process.rb +0 -77
  64. data/test/controllers/reports_controller_test.rb +0 -21
  65. data/test/controllers/uploads_controller_test.rb +0 -21
  66. data/test/jobs/generate_report_job_test.rb +0 -146
  67. data/test/unit/shell_process_job_test.rb +0 -29
  68. data/webpack/ForemanInventoryUpload/Components/Dashboard/DashboardActions.js +0 -88
  69. data/webpack/ForemanInventoryUpload/Components/Dashboard/DashboardConstants.js +0 -9
  70. data/webpack/ForemanInventoryUpload/Components/Dashboard/DashboardReducer.js +0 -68
  71. data/webpack/ForemanInventoryUpload/Components/Dashboard/DashboardSelectors.js +0 -17
  72. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardActions.test.js +0 -51
  73. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardIntegration.test.js +0 -17
  74. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardReducer.test.js +0 -64
  75. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardSelectors.test.js +0 -46
  76. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/Dashboard.test.js.snap +0 -36
  77. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/DashboardActions.test.js.snap +0 -76
  78. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/DashboardReducer.test.js.snap +0 -44
  79. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/DashboardSelectors.test.js.snap +0 -42
  80. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModal.fixtures.js +0 -0
  81. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModal.js +0 -55
  82. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModalHelper.js +0 -0
  83. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/__tests__/FullScreenModal.test.js +0 -13
  84. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/__tests__/__snapshots__/FullScreenModal.test.js.snap +0 -65
  85. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/fullScreenModal.scss +0 -20
  86. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/index.js +0 -1
  87. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerate.fixtures.js +0 -18
  88. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerate.js +0 -65
  89. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerateHelper.js +0 -0
  90. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/__tests__/ReportGenerate.test.js +0 -14
  91. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/__tests__/__snapshots__/ReportGenerate.test.js.snap +0 -47
  92. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/index.js +0 -1
  93. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/reportGenerate.scss +0 -0
  94. data/webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUpload.fixtures.js +0 -18
  95. data/webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUpload.js +0 -46
  96. data/webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUploadHelper.js +0 -0
  97. data/webpack/ForemanInventoryUpload/Components/ReportUpload/__tests__/ReportUpload.test.js +0 -14
  98. data/webpack/ForemanInventoryUpload/Components/ReportUpload/__tests__/__snapshots__/ReportUpload.test.js.snap +0 -47
  99. data/webpack/ForemanInventoryUpload/Components/ReportUpload/index.js +0 -1
  100. data/webpack/ForemanInventoryUpload/Components/ReportUpload/reportUpload.scss +0 -0
  101. data/webpack/ForemanInventoryUpload/Components/TabBody/TabBody.fixtures.js +0 -0
  102. data/webpack/ForemanInventoryUpload/Components/TabBody/TabBody.js +0 -31
  103. data/webpack/ForemanInventoryUpload/Components/TabBody/TabBodyHelper.js +0 -0
  104. data/webpack/ForemanInventoryUpload/Components/TabBody/__tests__/TabBody.test.js +0 -13
  105. data/webpack/ForemanInventoryUpload/Components/TabBody/__tests__/__snapshots__/TabBody.test.js.snap +0 -19
  106. data/webpack/ForemanInventoryUpload/Components/TabBody/index.js +0 -1
  107. data/webpack/ForemanInventoryUpload/Components/TabBody/tabBody.scss +0 -5
  108. data/webpack/ForemanInventoryUpload/Components/Terminal/Terminal.fixtures.js +0 -10
  109. data/webpack/ForemanInventoryUpload/Components/Terminal/Terminal.js +0 -110
  110. data/webpack/ForemanInventoryUpload/Components/Terminal/TerminalHelper.js +0 -6
  111. data/webpack/ForemanInventoryUpload/Components/Terminal/__tests__/Terminal.test.js +0 -34
  112. data/webpack/ForemanInventoryUpload/Components/Terminal/__tests__/__snapshots__/Terminal.test.js.snap +0 -98
  113. data/webpack/ForemanInventoryUpload/Components/Terminal/index.js +0 -1
  114. data/webpack/ForemanInventoryUpload/Components/Terminal/terminal.scss +0 -32
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_rh_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.0.9
4
+ version: 13.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foreman Red Hat Cloud team
@@ -106,6 +106,7 @@ files:
106
106
  - app/controllers/concerns/inventory_upload/report_actions.rb
107
107
  - app/controllers/concerns/inventory_upload/task_actions.rb
108
108
  - app/controllers/foreman_inventory_upload/accounts_controller.rb
109
+ - app/controllers/foreman_inventory_upload/api/tasks_controller.rb
109
110
  - app/controllers/foreman_inventory_upload/cloud_status_controller.rb
110
111
  - app/controllers/foreman_inventory_upload/missing_hosts_controller.rb
111
112
  - app/controllers/foreman_inventory_upload/reports_controller.rb
@@ -130,8 +131,6 @@ files:
130
131
  - app/models/insights_resolution.rb
131
132
  - app/models/insights_rule.rb
132
133
  - app/models/inventory_sync/inventory_status.rb
133
- - app/models/task_output_line.rb
134
- - app/models/task_output_status.rb
135
134
  - app/overrides/layouts/base/styles.html.erb.deface
136
135
  - app/services/foreman_rh_cloud/branch_info.rb
137
136
  - app/services/foreman_rh_cloud/cert_auth.rb
@@ -179,6 +178,7 @@ files:
179
178
  - db/migrate/20230515140211_add_missing_hosts_table.foreman_rh_cloud.rb
180
179
  - db/migrate/20241217190624_add_unique_index_to_rule_id_and_host_id_in_insights_hits.rb
181
180
  - db/migrate/20241220184900_change_sync_insights_recommendations_to_true.rb
181
+ - db/migrate/20251209163012_drop_task_output_tables.foreman_rh_cloud.rb
182
182
  - db/seeds.d/179_ui_notifications.rb
183
183
  - db/seeds.d/189_add_host_inventory_param.rb
184
184
  - db/seeds.d/200_features.rb
@@ -189,12 +189,9 @@ files:
189
189
  - lib/foreman_inventory_upload/async/delayed_start.rb
190
190
  - lib/foreman_inventory_upload/async/generate_all_reports_job.rb
191
191
  - lib/foreman_inventory_upload/async/generate_host_report.rb
192
- - lib/foreman_inventory_upload/async/generate_report_job.rb
193
192
  - lib/foreman_inventory_upload/async/host_inventory_report_job.rb
194
- - lib/foreman_inventory_upload/async/progress_output.rb
195
193
  - lib/foreman_inventory_upload/async/queue_for_upload_job.rb
196
194
  - lib/foreman_inventory_upload/async/remove_insights_hosts_job.rb
197
- - lib/foreman_inventory_upload/async/shell_process.rb
198
195
  - lib/foreman_inventory_upload/async/single_host_report_job.rb
199
196
  - lib/foreman_inventory_upload/async/upload_report_direct_job.rb
200
197
  - lib/foreman_inventory_upload/generators/archived_report.rb
@@ -255,8 +252,6 @@ files:
255
252
  - test/controllers/insights_sync/settings_controller_test.rb
256
253
  - test/controllers/inventory_upload/api/inventory_controller_test.rb
257
254
  - test/controllers/inventory_upload/cloud_status_controller_test.rb
258
- - test/controllers/reports_controller_test.rb
259
- - test/controllers/uploads_controller_test.rb
260
255
  - test/controllers/uploads_settings_controller_test.rb
261
256
  - test/factories/insights_factories.rb
262
257
  - test/factories/inventory_upload_factories.rb
@@ -265,7 +260,6 @@ files:
265
260
  - test/jobs/create_missing_insights_facets_test.rb
266
261
  - test/jobs/exponential_backoff_test.rb
267
262
  - test/jobs/generate_host_report_test.rb
268
- - test/jobs/generate_report_job_test.rb
269
263
  - test/jobs/host_inventory_report_job_test.rb
270
264
  - test/jobs/insights_client_status_aging_test.rb
271
265
  - test/jobs/insights_full_sync_test.rb
@@ -302,7 +296,6 @@ files:
302
296
  - test/unit/services/foreman_rh_cloud/tags_auth_test.rb
303
297
  - test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb
304
298
  - test/unit/services/foreman_rh_cloud/url_remediations_retriever_test.rb
305
- - test/unit/shell_process_job_test.rb
306
299
  - test/unit/slice_generator_test.rb
307
300
  - test/unit/tags_generator_test.rb
308
301
  - webpack/CVEsHostDetailsTab/CVEsHostDetailsTab.js
@@ -367,20 +360,8 @@ files:
367
360
  - webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.fixtures.js
368
361
  - webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.js
369
362
  - webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.stories.js
370
- - webpack/ForemanInventoryUpload/Components/Dashboard/DashboardActions.js
371
- - webpack/ForemanInventoryUpload/Components/Dashboard/DashboardConstants.js
372
363
  - webpack/ForemanInventoryUpload/Components/Dashboard/DashboardHelper.js
373
- - webpack/ForemanInventoryUpload/Components/Dashboard/DashboardReducer.js
374
- - webpack/ForemanInventoryUpload/Components/Dashboard/DashboardSelectors.js
375
364
  - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/Dashboard.test.js
376
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardActions.test.js
377
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardIntegration.test.js
378
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardReducer.test.js
379
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardSelectors.test.js
380
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/Dashboard.test.js.snap
381
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/DashboardActions.test.js.snap
382
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/DashboardReducer.test.js.snap
383
- - webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/__snapshots__/DashboardSelectors.test.js.snap
384
365
  - webpack/ForemanInventoryUpload/Components/Dashboard/dashboard.scss
385
366
  - webpack/ForemanInventoryUpload/Components/Dashboard/index.js
386
367
  - webpack/ForemanInventoryUpload/Components/FileDownload/FileDownload.fixtures.js
@@ -390,13 +371,6 @@ files:
390
371
  - webpack/ForemanInventoryUpload/Components/FileDownload/__tests__/__snapshots__/FileDownload.test.js.snap
391
372
  - webpack/ForemanInventoryUpload/Components/FileDownload/fileDownload.scss
392
373
  - webpack/ForemanInventoryUpload/Components/FileDownload/index.js
393
- - webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModal.fixtures.js
394
- - webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModal.js
395
- - webpack/ForemanInventoryUpload/Components/FullScreenModal/FullScreenModalHelper.js
396
- - webpack/ForemanInventoryUpload/Components/FullScreenModal/__tests__/FullScreenModal.test.js
397
- - webpack/ForemanInventoryUpload/Components/FullScreenModal/__tests__/__snapshots__/FullScreenModal.test.js.snap
398
- - webpack/ForemanInventoryUpload/Components/FullScreenModal/fullScreenModal.scss
399
- - webpack/ForemanInventoryUpload/Components/FullScreenModal/index.js
400
374
  - webpack/ForemanInventoryUpload/Components/InventoryFilter/Components/ClearButton/ClearButton.js
401
375
  - webpack/ForemanInventoryUpload/Components/InventoryFilter/Components/ClearButton/index.js
402
376
  - webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilter.fixtures.js
@@ -478,20 +452,6 @@ files:
478
452
  - webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/index.js
479
453
  - webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/toolbarButtons.scss
480
454
  - webpack/ForemanInventoryUpload/Components/PageHeader/index.js
481
- - webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerate.fixtures.js
482
- - webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerate.js
483
- - webpack/ForemanInventoryUpload/Components/ReportGenerate/ReportGenerateHelper.js
484
- - webpack/ForemanInventoryUpload/Components/ReportGenerate/__tests__/ReportGenerate.test.js
485
- - webpack/ForemanInventoryUpload/Components/ReportGenerate/__tests__/__snapshots__/ReportGenerate.test.js.snap
486
- - webpack/ForemanInventoryUpload/Components/ReportGenerate/index.js
487
- - webpack/ForemanInventoryUpload/Components/ReportGenerate/reportGenerate.scss
488
- - webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUpload.fixtures.js
489
- - webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUpload.js
490
- - webpack/ForemanInventoryUpload/Components/ReportUpload/ReportUploadHelper.js
491
- - webpack/ForemanInventoryUpload/Components/ReportUpload/__tests__/ReportUpload.test.js
492
- - webpack/ForemanInventoryUpload/Components/ReportUpload/__tests__/__snapshots__/ReportUpload.test.js.snap
493
- - webpack/ForemanInventoryUpload/Components/ReportUpload/index.js
494
- - webpack/ForemanInventoryUpload/Components/ReportUpload/reportUpload.scss
495
455
  - webpack/ForemanInventoryUpload/Components/ScheduledRun/ScheduledRun.fixtures.js
496
456
  - webpack/ForemanInventoryUpload/Components/ScheduledRun/ScheduledRun.js
497
457
  - webpack/ForemanInventoryUpload/Components/ScheduledRun/ScheduledRunHelper.js
@@ -506,13 +466,6 @@ files:
506
466
  - webpack/ForemanInventoryUpload/Components/StatusChart/__tests__/__snapshots__/StatusChart.test.js.snap
507
467
  - webpack/ForemanInventoryUpload/Components/StatusChart/index.js
508
468
  - webpack/ForemanInventoryUpload/Components/StatusChart/statusChart.scss
509
- - webpack/ForemanInventoryUpload/Components/TabBody/TabBody.fixtures.js
510
- - webpack/ForemanInventoryUpload/Components/TabBody/TabBody.js
511
- - webpack/ForemanInventoryUpload/Components/TabBody/TabBodyHelper.js
512
- - webpack/ForemanInventoryUpload/Components/TabBody/__tests__/TabBody.test.js
513
- - webpack/ForemanInventoryUpload/Components/TabBody/__tests__/__snapshots__/TabBody.test.js.snap
514
- - webpack/ForemanInventoryUpload/Components/TabBody/index.js
515
- - webpack/ForemanInventoryUpload/Components/TabBody/tabBody.scss
516
469
  - webpack/ForemanInventoryUpload/Components/TabContainer/TabContainer.fixtures.js
517
470
  - webpack/ForemanInventoryUpload/Components/TabContainer/TabContainer.js
518
471
  - webpack/ForemanInventoryUpload/Components/TabContainer/TabContainerHelper.js
@@ -533,13 +486,12 @@ files:
533
486
  - webpack/ForemanInventoryUpload/Components/TabHeader/__tests__/TabHeader.test.js
534
487
  - webpack/ForemanInventoryUpload/Components/TabHeader/index.js
535
488
  - webpack/ForemanInventoryUpload/Components/TabHeader/tabHeader.scss
536
- - webpack/ForemanInventoryUpload/Components/Terminal/Terminal.fixtures.js
537
- - webpack/ForemanInventoryUpload/Components/Terminal/Terminal.js
538
- - webpack/ForemanInventoryUpload/Components/Terminal/TerminalHelper.js
539
- - webpack/ForemanInventoryUpload/Components/Terminal/__tests__/Terminal.test.js
540
- - webpack/ForemanInventoryUpload/Components/Terminal/__tests__/__snapshots__/Terminal.test.js.snap
541
- - webpack/ForemanInventoryUpload/Components/Terminal/index.js
542
- - webpack/ForemanInventoryUpload/Components/Terminal/terminal.scss
489
+ - webpack/ForemanInventoryUpload/Components/TaskHistory/TaskHistory.js
490
+ - webpack/ForemanInventoryUpload/Components/TaskHistory/index.js
491
+ - webpack/ForemanInventoryUpload/Components/TaskHistory/taskHistory.scss
492
+ - webpack/ForemanInventoryUpload/Components/TaskProgress/TaskProgress.js
493
+ - webpack/ForemanInventoryUpload/Components/TaskProgress/index.js
494
+ - webpack/ForemanInventoryUpload/Components/TaskProgress/taskProgress.scss
543
495
  - webpack/ForemanInventoryUpload/ForemanInventoryConstants.js
544
496
  - webpack/ForemanInventoryUpload/ForemanInventoryHelpers.js
545
497
  - webpack/ForemanInventoryUpload/ForemanInventoryUpload.js
@@ -649,6 +601,7 @@ files:
649
601
  - webpack/__mocks__/foremanReact/components/Head.js
650
602
  - webpack/__mocks__/foremanReact/components/Layout/LayoutConstants.js
651
603
  - webpack/__mocks__/foremanReact/components/ToastsList/index.js
604
+ - webpack/__mocks__/foremanReact/components/common/dates/RelativeDateTime.js
652
605
  - webpack/__mocks__/foremanReact/constants.js
653
606
  - webpack/__mocks__/foremanReact/redux/API/APISelectors.js
654
607
  - webpack/__mocks__/foremanReact/redux/API/index.js
@@ -701,7 +654,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
701
654
  - !ruby/object:Gem::Version
702
655
  version: '0'
703
656
  requirements: []
704
- rubygems_version: 3.6.9
657
+ rubygems_version: 4.0.3
705
658
  specification_version: 4
706
659
  summary: Summary of ForemanRhCloud.
707
660
  test_files:
@@ -713,8 +666,6 @@ test_files:
713
666
  - test/controllers/insights_sync/settings_controller_test.rb
714
667
  - test/controllers/inventory_upload/api/inventory_controller_test.rb
715
668
  - test/controllers/inventory_upload/cloud_status_controller_test.rb
716
- - test/controllers/reports_controller_test.rb
717
- - test/controllers/uploads_controller_test.rb
718
669
  - test/controllers/uploads_settings_controller_test.rb
719
670
  - test/factories/insights_factories.rb
720
671
  - test/factories/inventory_upload_factories.rb
@@ -723,7 +674,6 @@ test_files:
723
674
  - test/jobs/create_missing_insights_facets_test.rb
724
675
  - test/jobs/exponential_backoff_test.rb
725
676
  - test/jobs/generate_host_report_test.rb
726
- - test/jobs/generate_report_job_test.rb
727
677
  - test/jobs/host_inventory_report_job_test.rb
728
678
  - test/jobs/insights_client_status_aging_test.rb
729
679
  - test/jobs/insights_full_sync_test.rb
@@ -760,6 +710,5 @@ test_files:
760
710
  - test/unit/services/foreman_rh_cloud/tags_auth_test.rb
761
711
  - test/unit/services/foreman_rh_cloud/template_renderer_helper_test.rb
762
712
  - test/unit/services/foreman_rh_cloud/url_remediations_retriever_test.rb
763
- - test/unit/shell_process_job_test.rb
764
713
  - test/unit/slice_generator_test.rb
765
714
  - test/unit/tags_generator_test.rb
@@ -1,2 +0,0 @@
1
- class TaskOutputLine < ApplicationRecord
2
- end
@@ -1,2 +0,0 @@
1
- class TaskOutputStatus < ApplicationRecord
2
- end
@@ -1,61 +0,0 @@
1
- module ForemanInventoryUpload
2
- module Async
3
- class GenerateReportJob < ShellProcess
4
- def self.output_label(label)
5
- "report_for_#{label}"
6
- end
7
-
8
- def plan(base_folder, organization_id, disconnected = false, hosts_filter = nil)
9
- sequence do
10
- super(
11
- GenerateReportJob.output_label("#{organization_id}#{hosts_filter.empty? ? nil : "[#{hosts_filter.to_s.parameterize}]"}"),
12
- organization_id: organization_id,
13
- base_folder: base_folder,
14
- hosts_filter: hosts_filter
15
- )
16
-
17
- unless content_disconnected?(disconnected)
18
- plan_action(
19
- QueueForUploadJob,
20
- base_folder,
21
- ForemanInventoryUpload.facts_archive_name(organization_id, hosts_filter),
22
- organization_id
23
- )
24
- end
25
- end
26
- end
27
-
28
- def rake_prefix
29
- 'foreman-' unless Rails.env.development?
30
- end
31
-
32
- def command
33
- "#{rake_prefix}rake rh_cloud_inventory:report:generate"
34
- end
35
-
36
- def env
37
- super.merge(
38
- 'target' => base_folder,
39
- 'organization_id' => organization_id,
40
- 'hosts_filter' => hosts_filter
41
- )
42
- end
43
-
44
- def content_disconnected?(disconnected)
45
- disconnected || !Setting[:subscription_connection_enabled]
46
- end
47
-
48
- def base_folder
49
- input[:base_folder]
50
- end
51
-
52
- def organization_id
53
- input[:organization_id]
54
- end
55
-
56
- def hosts_filter
57
- input[:hosts_filter]
58
- end
59
- end
60
- end
61
- end
@@ -1,38 +0,0 @@
1
- module ForemanInventoryUpload
2
- module Async
3
- class ProgressOutput
4
- def self.get(label)
5
- ProgressOutput.new(label, :reader)
6
- end
7
-
8
- def self.register(label)
9
- TaskOutputLine.where(label: @label).delete_all
10
- ProgressOutput.new(label, :writer)
11
- end
12
-
13
- def initialize(label, mode)
14
- @label = label
15
- @mode = mode
16
- end
17
-
18
- def full_output
19
- TaskOutputLine.where(label: @label).order(:created_at).pluck(:line).join("\n")
20
- end
21
-
22
- def write_line(line)
23
- TaskOutputLine.create!(label: @label, line: line)
24
- end
25
-
26
- def close
27
- end
28
-
29
- def status
30
- TaskOutputStatus.where(label: @label).pluck(:status).first || ''
31
- end
32
-
33
- def status=(status)
34
- TaskOutputStatus.upsert({ label: @label, status: status }, unique_by: :label)
35
- end
36
- end
37
- end
38
- end
@@ -1,77 +0,0 @@
1
- require 'open3'
2
-
3
- module ForemanInventoryUpload
4
- module Async
5
- class ShellProcess < ::Actions::EntryAction
6
- include AsyncHelpers
7
- include ::ForemanRhCloud::Async::ExponentialBackoff
8
-
9
- def plan(instance_label, more_inputs = {})
10
- clear_task_output(instance_label)
11
- inputs = more_inputs.merge(instance_label: instance_label)
12
- plan_self(inputs)
13
- end
14
-
15
- def try_execute
16
- klass_name = self.class.name
17
- logger.debug("Starting #{klass_name} with label #{instance_label}")
18
- progress_output do |progress_output|
19
- Open3.popen2e(hash_to_s(env), *preprocess_command(command)) do |_stdin, stdout_stderr, wait_thread|
20
- progress_output.status = "Running in pid #{wait_thread.pid}"
21
-
22
- stdout_stderr.each do |out_line|
23
- progress_output.write_line(out_line)
24
- end
25
-
26
- progress_output.status = wait_thread.value.to_s
27
- end
28
- end
29
- logger.debug("Finished job #{klass_name} with label #{instance_label}")
30
-
31
- assert_task_status(ProgressOutput.get(instance_label).status)
32
- done!
33
- end
34
-
35
- def command
36
- end
37
-
38
- def progress_output
39
- progress_output = ProgressOutput.register(instance_label)
40
- yield(progress_output)
41
- ensure
42
- progress_output.close
43
- end
44
-
45
- def env
46
- {}
47
- end
48
-
49
- def logger
50
- Foreman::Logging.logger('background')
51
- end
52
-
53
- def rescue_strategy_for_self
54
- Dynflow::Action::Rescue::Fail
55
- end
56
-
57
- def clear_task_output(label)
58
- TaskOutputLine.where(label: label).delete_all
59
- TaskOutputStatus.where(label: label).delete_all
60
- end
61
-
62
- private
63
-
64
- def preprocess_command(command)
65
- command.kind_of?(Array) ? command : [command]
66
- end
67
-
68
- def instance_label
69
- input[:instance_label]
70
- end
71
-
72
- def assert_task_status(status)
73
- raise Foreman::Exception.new('Process exited with an unknown status: %{status}', status: status) unless status.match?(/pid \d+ exit 0/)
74
- end
75
- end
76
- end
77
- end
@@ -1,21 +0,0 @@
1
- require 'test_plugin_helper'
2
-
3
- class ReportsControllerTest < ActionController::TestCase
4
- tests ForemanInventoryUpload::ReportsController
5
-
6
- test 'Returns latest report generation status' do
7
- progress_output = mock('progress_output')
8
- test_org = FactoryBot.create(:organization)
9
- ForemanInventoryUpload::Async::ProgressOutput
10
- .expects(:get)
11
- .with(ForemanInventoryUpload::Async::GenerateReportJob.output_label(test_org.id))
12
- .returns(progress_output)
13
- progress_output.expects(:full_output).returns('test output')
14
-
15
- get :last, params: { organization_id: test_org.id }, session: set_session_user
16
-
17
- assert_response :success
18
- actual = JSON.parse(response.body)
19
- assert_equal 'test output', actual['output']
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- require 'test_plugin_helper'
2
-
3
- class UploadsControllerTest < ActionController::TestCase
4
- tests ForemanInventoryUpload::UploadsController
5
-
6
- test 'Returns latest upload status' do
7
- progress_output = mock('progress_output')
8
- test_org = FactoryBot.create(:organization)
9
- ForemanInventoryUpload::Async::ProgressOutput
10
- .expects(:get)
11
- .with(ForemanInventoryUpload::Async::UploadReportDirectJob.output_label(test_org.id))
12
- .returns(progress_output)
13
- progress_output.expects(:full_output).returns('test output')
14
-
15
- get :last, params: { organization_id: test_org.id }, session: set_session_user
16
-
17
- assert_response :success
18
- actual = JSON.parse(response.body)
19
- assert_equal 'test output', actual['output']
20
- end
21
- end
@@ -1,146 +0,0 @@
1
- require 'test_plugin_helper'
2
- require 'foreman_tasks/test_helpers'
3
-
4
- class GenerateReportJobTest < ActiveSupport::TestCase
5
- include Dynflow::Testing::Factories
6
- include Dynflow::Testing::Assertions
7
-
8
- let(:organization) { FactoryBot.create(:organization) }
9
- let(:base_folder) { Dir.mktmpdir }
10
-
11
- setup do
12
- # Stub settings
13
- Setting.stubs(:[]).with(:subscription_connection_enabled).returns(true)
14
- Setting.stubs(:[]).with("foreman_tasks_sync_task_timeout").returns(120)
15
- Setting.stubs(:[]).with(:content_default_http_proxy).returns(nil)
16
- Setting.stubs(:[]).with(:http_proxy).returns(nil)
17
- end
18
-
19
- teardown do
20
- FileUtils.remove_entry base_folder if Dir.exist?(base_folder)
21
- end
22
-
23
- test 'disconnected parameter defaults to false' do
24
- # When disconnected defaults to false and subscription_connection is enabled,
25
- # QueueForUploadJob should be scheduled
26
- action = create_and_plan_action(
27
- ForemanInventoryUpload::Async::GenerateReportJob,
28
- base_folder,
29
- organization.id
30
- )
31
-
32
- assert_action_planned(action, ForemanInventoryUpload::Async::QueueForUploadJob)
33
- end
34
-
35
- test 'disconnected parameter can be set to true explicitly' do
36
- # When disconnected is explicitly true, QueueForUploadJob should NOT be scheduled
37
- action = create_and_plan_action(
38
- ForemanInventoryUpload::Async::GenerateReportJob,
39
- base_folder,
40
- organization.id,
41
- true
42
- )
43
-
44
- refute_action_planned(action, ForemanInventoryUpload::Async::QueueForUploadJob)
45
- end
46
-
47
- test 'disconnected parameter can be set to false explicitly' do
48
- # When disconnected is explicitly false and subscription_connection is enabled,
49
- # QueueForUploadJob should be scheduled
50
- action = create_and_plan_action(
51
- ForemanInventoryUpload::Async::GenerateReportJob,
52
- base_folder,
53
- organization.id,
54
- false
55
- )
56
-
57
- assert_action_planned(action, ForemanInventoryUpload::Async::QueueForUploadJob)
58
- end
59
-
60
- test 'skips upload when subscription_connection_enabled is false' do
61
- Setting.stubs(:[]).with(:subscription_connection_enabled).returns(false)
62
-
63
- action = create_and_plan_action(
64
- ForemanInventoryUpload::Async::GenerateReportJob,
65
- base_folder,
66
- organization.id,
67
- false
68
- )
69
-
70
- refute_action_planned(action, ForemanInventoryUpload::Async::QueueForUploadJob)
71
- end
72
-
73
- test 'schedules upload when disconnected is false and subscription_connection is enabled' do
74
- Setting.stubs(:[]).with(:subscription_connection_enabled).returns(true)
75
-
76
- expected_archive_name = ForemanInventoryUpload.facts_archive_name(organization.id, nil)
77
- action = create_and_plan_action(
78
- ForemanInventoryUpload::Async::GenerateReportJob,
79
- base_folder,
80
- organization.id,
81
- false
82
- )
83
-
84
- assert_action_planned_with(
85
- action,
86
- ForemanInventoryUpload::Async::QueueForUploadJob,
87
- base_folder,
88
- expected_archive_name,
89
- organization.id
90
- )
91
- end
92
-
93
- test 'handles hosts_filter parameter' do
94
- hosts_filter = 'name~test'
95
- expected_archive_name = ForemanInventoryUpload.facts_archive_name(organization.id, hosts_filter)
96
-
97
- action = create_and_plan_action(
98
- ForemanInventoryUpload::Async::GenerateReportJob,
99
- base_folder,
100
- organization.id,
101
- false,
102
- hosts_filter
103
- )
104
-
105
- assert_action_planned_with(
106
- action,
107
- ForemanInventoryUpload::Async::QueueForUploadJob,
108
- base_folder,
109
- expected_archive_name,
110
- organization.id
111
- )
112
- end
113
-
114
- test 'output_label generates correct label' do
115
- label = ForemanInventoryUpload::Async::GenerateReportJob.output_label('test_org')
116
- assert_equal 'report_for_test_org', label
117
- end
118
-
119
- test 'output_label with filter includes parameterized filter' do
120
- action = create_and_plan_action(
121
- ForemanInventoryUpload::Async::GenerateReportJob,
122
- base_folder,
123
- organization.id,
124
- false,
125
- 'name~production'
126
- )
127
-
128
- # The output label should include organization id and parameterized filter
129
- expected_label = "report_for_#{organization.id}[name-production]"
130
- assert_equal expected_label, action.input[:instance_label]
131
- end
132
-
133
- test 'output_label without filter includes only organization id' do
134
- action = create_and_plan_action(
135
- ForemanInventoryUpload::Async::GenerateReportJob,
136
- base_folder,
137
- organization.id,
138
- false,
139
- ''
140
- )
141
-
142
- # The output label should include only organization id when filter is empty
143
- expected_label = "report_for_#{organization.id}"
144
- assert_equal expected_label, action.input[:instance_label]
145
- end
146
- end
@@ -1,29 +0,0 @@
1
- require 'test_plugin_helper'
2
- require 'foreman_tasks/test_helpers'
3
-
4
- class ShellProcessJobTest < ActiveSupport::TestCase
5
- class TestProcessJob < ForemanInventoryUpload::Async::ShellProcess
6
- def command
7
- 'echo testing env: $testenv'
8
- end
9
-
10
- def env
11
- super.merge(
12
- 'testenv' => 'test_val'
13
- )
14
- end
15
- end
16
-
17
- include ForemanTasks::TestHelpers::WithInThreadExecutor
18
- include FolderIsolation
19
-
20
- test 'Runs a process with environment vars' do
21
- label = Foreman.uuid
22
- ForemanTasks.sync_task(TestProcessJob, label)
23
-
24
- progress_output = ForemanInventoryUpload::Async::ProgressOutput.get(label)
25
-
26
- assert_match(/test_val/, progress_output.full_output)
27
- assert_match(/exit 0/, progress_output.status)
28
- end
29
- end