foreman_leapp 4.2.0 → 4.3.0

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/foreman_leapp/locale/de/foreman_leapp.js +2 -2
  3. data/app/assets/javascripts/foreman_leapp/locale/en/foreman_leapp.js +1 -1
  4. data/app/assets/javascripts/foreman_leapp/locale/fr/foreman_leapp.js +12 -12
  5. data/app/assets/javascripts/foreman_leapp/locale/ja/foreman_leapp.js +12 -12
  6. data/app/assets/javascripts/foreman_leapp/locale/ka/foreman_leapp.js +1 -1
  7. data/app/assets/javascripts/foreman_leapp/locale/ko/foreman_leapp.js +13 -13
  8. data/app/assets/javascripts/foreman_leapp/locale/zh_CN/foreman_leapp.js +12 -12
  9. data/app/controllers/api/v2/preupgrade_report_entries_controller.rb +17 -29
  10. data/app/controllers/concerns/foreman_leapp/preupgrade_report_entry_bulk_remediate.rb +69 -0
  11. data/config/routes.rb +1 -2
  12. data/lib/foreman_leapp/engine.rb +1 -12
  13. data/lib/foreman_leapp/version.rb +1 -1
  14. data/locale/de/LC_MESSAGES/foreman_leapp.mo +0 -0
  15. data/locale/de/foreman_leapp.po +3 -3
  16. data/locale/en/LC_MESSAGES/foreman_leapp.mo +0 -0
  17. data/locale/en/foreman_leapp.po +1 -1
  18. data/locale/foreman_leapp.pot +2 -2
  19. data/locale/fr/LC_MESSAGES/foreman_leapp.mo +0 -0
  20. data/locale/fr/foreman_leapp.po +13 -13
  21. data/locale/ja/LC_MESSAGES/foreman_leapp.mo +0 -0
  22. data/locale/ja/foreman_leapp.po +13 -13
  23. data/locale/ka/LC_MESSAGES/foreman_leapp.mo +0 -0
  24. data/locale/ka/foreman_leapp.po +1 -1
  25. data/locale/ko/LC_MESSAGES/foreman_leapp.mo +0 -0
  26. data/locale/ko/foreman_leapp.po +15 -16
  27. data/locale/zh_CN/LC_MESSAGES/foreman_leapp.mo +0 -0
  28. data/locale/zh_CN/foreman_leapp.po +13 -13
  29. data/package.json +0 -1
  30. data/test/functional/api/v2/preupgrade_report_entries_controller_test.rb +64 -0
  31. data/webpack/components/PreupgradeReportsTable/PreupgradeReportsTableHelpers.js +43 -16
  32. data/webpack/components/PreupgradeReportsTable/__tests__/PreupgradeReportsTable.test.js +41 -8
  33. data/webpack/components/PreupgradeReportsTable/index.js +64 -71
  34. data/webpack/index.js +0 -13
  35. metadata +3 -66
  36. data/app/controllers/preupgrade_reports_controller.rb +0 -17
  37. data/app/views/job_invocations/_leapp_preupgrade_report.html.erb +0 -11
  38. data/app/views/preupgrade_report_entries/base.json.rabl +0 -4
  39. data/app/views/preupgrade_reports/index.json.rabl +0 -3
  40. data/app/views/preupgrade_reports/show.json.rabl +0 -7
  41. data/test/functional/preupgrade_reports_controller_test.rb +0 -39
  42. data/webpack/components/PreupgradeReports/PreupgradeReports.js +0 -154
  43. data/webpack/components/PreupgradeReports/PreupgradeReportsActions.js +0 -31
  44. data/webpack/components/PreupgradeReports/PreupgradeReportsHelpers.js +0 -152
  45. data/webpack/components/PreupgradeReports/PreupgradeReportsReducer.js +0 -37
  46. data/webpack/components/PreupgradeReports/PreupgradeReportsSelectors.js +0 -18
  47. data/webpack/components/PreupgradeReports/__tests__/PreupgradeReports.fixtures.js +0 -129
  48. data/webpack/components/PreupgradeReports/__tests__/PreupgradeReports.test.js +0 -159
  49. data/webpack/components/PreupgradeReports/__tests__/PreupgradeReportsHelpers.test.js +0 -78
  50. data/webpack/components/PreupgradeReports/__tests__/PreupgradeReportsReducer.test.js +0 -44
  51. data/webpack/components/PreupgradeReports/__tests__/PreupgradeReportsSelectors.test.js +0 -28
  52. data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsHelpers.test.js.snap +0 -489
  53. data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsReducer.test.js.snap +0 -102
  54. data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsSelectors.test.js.snap +0 -76
  55. data/webpack/components/PreupgradeReports/components/EntriesFilter.js +0 -121
  56. data/webpack/components/PreupgradeReports/components/EntriesFilter.scss +0 -3
  57. data/webpack/components/PreupgradeReports/components/EntriesFilter.test.js +0 -30
  58. data/webpack/components/PreupgradeReports/components/FixSelectedButton.js +0 -35
  59. data/webpack/components/PreupgradeReports/components/FixSelectedButton.test.js +0 -15
  60. data/webpack/components/PreupgradeReports/components/NoReports.js +0 -35
  61. data/webpack/components/PreupgradeReports/components/NoReports.test.js +0 -29
  62. data/webpack/components/PreupgradeReports/components/UpgradeAllButton.js +0 -28
  63. data/webpack/components/PreupgradeReports/components/UpgradeAllButton.test.js +0 -17
  64. data/webpack/components/PreupgradeReports/components/__snapshots__/EntriesFilter.test.js.snap +0 -330
  65. data/webpack/components/PreupgradeReports/components/__snapshots__/FixSelectedButton.test.js.snap +0 -40
  66. data/webpack/components/PreupgradeReports/components/__snapshots__/UpgradeAllButton.test.js.snap +0 -41
  67. data/webpack/components/PreupgradeReports/index.js +0 -57
  68. data/webpack/components/PreupgradeReportsList/PreupgradeReportList.scss +0 -37
  69. data/webpack/components/PreupgradeReportsList/__tests__/PreupgradeReportsList.test.js +0 -124
  70. data/webpack/components/PreupgradeReportsList/components/EmptyInfoItem.js +0 -16
  71. data/webpack/components/PreupgradeReportsList/components/InfoItem.js +0 -34
  72. data/webpack/components/PreupgradeReportsList/components/InhibitorInfoItem.js +0 -33
  73. data/webpack/components/PreupgradeReportsList/components/PreupgradeReportEntry.js +0 -64
  74. data/webpack/components/PreupgradeReportsList/components/PreupgradeReportsListHeader.js +0 -56
  75. data/webpack/components/PreupgradeReportsList/components/SortableHeaderItem.js +0 -50
  76. data/webpack/components/PreupgradeReportsList/components/__tests__/EmptyInfoItem.test.js +0 -13
  77. data/webpack/components/PreupgradeReportsList/components/__tests__/InhibitorInfoItem.test.js +0 -27
  78. data/webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.fixtures.js +0 -38
  79. data/webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.test.js +0 -14
  80. data/webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportsListHeader.test.js +0 -14
  81. data/webpack/components/PreupgradeReportsList/components/__tests__/SortableHeaderItem.test.js +0 -29
  82. data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/EmptyInfoItem.test.js.snap +0 -8
  83. data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/InhibitorInfoItem.test.js.snap +0 -32
  84. data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/PreupgradeReportEntry.test.js.snap +0 -134
  85. data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/PreupgradeReportsListHeader.test.js.snap +0 -113
  86. data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/SortableHeaderItem.test.js.snap +0 -36
  87. data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/helpers.test.js.snap +0 -197
  88. data/webpack/components/PreupgradeReportsList/components/__tests__/helpers.test.js +0 -28
  89. data/webpack/components/PreupgradeReportsList/components/foreman_leapp.scss +0 -15
  90. data/webpack/components/PreupgradeReportsList/components/helpers.js +0 -186
  91. data/webpack/components/PreupgradeReportsList/components/images/i_severity-critical.svg +0 -61
  92. data/webpack/components/PreupgradeReportsList/components/images/i_severity-high.svg +0 -61
  93. data/webpack/components/PreupgradeReportsList/components/images/i_severity-low.svg +0 -62
  94. data/webpack/components/PreupgradeReportsList/components/images/i_severity-med.svg +0 -62
  95. data/webpack/components/PreupgradeReportsList/index.js +0 -61
  96. data/webpack/consts.js +0 -3
  97. data/webpack/csrf.js +0 -4
  98. data/webpack/reducer.js +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc0a9fdcb091a6edc60464a8d1819a45e5ef2ca0e21f9a2d5a6d68cb322e0ab5
4
- data.tar.gz: 5a44eb7a911be46ee9fc7c9fc5b9f2ec0e42c774a633dd35ea060a97bb336388
3
+ metadata.gz: 2b21b7465db5f87cfccd517c018e30bb3aa5f6c7878cbef6e314c981b5c21870
4
+ data.tar.gz: dd0f2a71a7d5c5858aa3c6336d4d92fafb6ebd3c890404265262491ce2311057
5
5
  SHA512:
6
- metadata.gz: bb41f56f9d47d45699583927cb72bac902ed25b6e910342ed03d044dc3b8434821d7b28b0d93147f6c0bc7dd68d9b33286394cdba00aa70b7a74f88f786f87a0
7
- data.tar.gz: 16ba388d07310604677c9a833554efc5efa92a097954a0aee81f9accbbc753d855e12eacc68a742e7c375ff06e9da169ce06b012ab6b19d92fc325eb70a4448e
6
+ metadata.gz: c6e3d0c62affb53415a88dc5fd5ab55f44a9a3dfa601964a8fdf85bf7264f6a3e41622e63f8a213547197f7f23b5bcb139ed3f034df27ac25e564c915c0a622e
7
+ data.tar.gz: 021af94cf62a318c7aadace3ed71f8171862f2820a5f7d67dcd800ffc8d52ef0caeb4df53be11a8a7bad4c722db43486095e1f10184234f7c8b84c873a8764da
@@ -6,7 +6,7 @@
6
6
  "Project-Id-Version": "foreman_leapp 4.1.2",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2022-10-12 12:00+0000",
9
- "Last-Translator": "Bryan Kearney <bryan.kearney@gmail.com>, 2023",
9
+ "Last-Translator": "Bryan Kearney <bryan.kearney@gmail.com>, 2026",
10
10
  "Language-Team": "German (https://app.transifex.com/foreman/teams/114/de/)",
11
11
  "MIME-Version": "1.0",
12
12
  "Content-Type": "text/plain; charset=UTF-8",
@@ -141,7 +141,7 @@
141
141
  ""
142
142
  ],
143
143
  "Search string": [
144
- ""
144
+ "Suchbegriff"
145
145
  ],
146
146
  "Show Preupgrade report": [
147
147
  ""
@@ -5,7 +5,7 @@
5
5
  "": {
6
6
  "Project-Id-Version": "foreman_leapp 1.0.0",
7
7
  "Report-Msgid-Bugs-To": "",
8
- "PO-Revision-Date": "2026-09-22 17:30+0000",
8
+ "PO-Revision-Date": "2026-09-29 11:07+0000",
9
9
  "Last-Translator": "FULL NAME <EMAIL@ADDRESS>",
10
10
  "Language-Team": "LANGUAGE <LL@li.org>",
11
11
  "Language": "",
@@ -24,10 +24,10 @@
24
24
  "Tout"
25
25
  ],
26
26
  "An unexpected error occurred while creating the remediation job.": [
27
- ""
27
+ "Une erreur inattendue s'est produite lors de la création de la tâche de correction."
28
28
  ],
29
29
  "Array of excluded entry IDs": [
30
- ""
30
+ "Tableau des identifiants des entrées exclues"
31
31
  ],
32
32
  "Command": [
33
33
  "Commande"
@@ -63,7 +63,7 @@
63
63
  "Hôte"
64
64
  ],
65
65
  "ID of the preupgrade report": [
66
- ""
66
+ "ID du rapport de pré-mise à niveau"
67
67
  ],
68
68
  "Info": [
69
69
  "Info"
@@ -87,10 +87,10 @@
87
87
  "Liste des rapports de pré-mise à niveau pour l'invocation du job"
88
88
  ],
89
89
  "List all preupgrade report entries": [
90
- ""
90
+ "Liste de toutes les entrées du rapport de pré-mise à niveau"
91
91
  ],
92
92
  "List entries for a specific preupgrade report": [
93
- ""
93
+ "Liste des entrées pour un rapport de pré-mise à niveau spécifique"
94
94
  ],
95
95
  "Low": [
96
96
  "Faible"
@@ -114,10 +114,10 @@
114
114
  "Aucun rapport de pré-mise à niveau disponible"
115
115
  ],
116
116
  "No fixable entries found matching the selection.": [
117
- ""
117
+ "Aucune entrée corrigible ne correspond à la sélection."
118
118
  ],
119
119
  "No results found for your search.": [
120
- ""
120
+ "Aucun résultat trouvé pour votre recherche."
121
121
  ],
122
122
  "Preupgrade check with Leapp": [
123
123
  "Contrôle pré-mise à niveau avec Leapp"
@@ -138,10 +138,10 @@
138
138
  "Mettre à niveau"
139
139
  ],
140
140
  "Search autocomplete for preupgrade report entries": [
141
- ""
141
+ "Saisie semi-automatique de la recherche pour les entrées du rapport de pré-mise à niveau"
142
142
  ],
143
143
  "Search string": [
144
- ""
144
+ "Rechercher une chaîne"
145
145
  ],
146
146
  "Show Preupgrade report": [
147
147
  "Afficher le rapport de pré-mise à niveau"
@@ -168,13 +168,13 @@
168
168
  "Titre"
169
169
  ],
170
170
  "Trigger a remediation job for selected preupgrade report entries": [
171
- ""
171
+ "Déclencher une tâche de correction pour les entrées de rapport de pré-mise à niveau sélectionnées"
172
172
  ],
173
173
  "Unknown fix_type value '%s' for search_fix_type": [
174
- ""
174
+ "Valeur fix_type inconnue '%s' pour le type de correction de recherche"
175
175
  ],
176
176
  "Unknown search key '%s' for search_yes_no_fields": [
177
- ""
177
+ "Clé de recherche inconnue '%s' pour les champs de recherche oui/non"
178
178
  ],
179
179
  "Upgrade with Leapp": [
180
180
  "Mise à niveau avec Leapp"
@@ -24,10 +24,10 @@
24
24
  "すべて"
25
25
  ],
26
26
  "An unexpected error occurred while creating the remediation job.": [
27
- ""
27
+ "修復ジョブの作成中に予期せぬエラーが発生しました。"
28
28
  ],
29
29
  "Array of excluded entry IDs": [
30
- ""
30
+ "除外されたエントリー ID の配列"
31
31
  ],
32
32
  "Command": [
33
33
  "コマンド"
@@ -63,7 +63,7 @@
63
63
  "ホスト"
64
64
  ],
65
65
  "ID of the preupgrade report": [
66
- ""
66
+ "アップグレード前レポートの ID"
67
67
  ],
68
68
  "Info": [
69
69
  "情報"
@@ -87,10 +87,10 @@
87
87
  "ジョブ呼び出しの事前アップグレードレポートの一覧表示"
88
88
  ],
89
89
  "List all preupgrade report entries": [
90
- ""
90
+ "アップグレード前のレポートエントリーをすべてリスト表示する"
91
91
  ],
92
92
  "List entries for a specific preupgrade report": [
93
- ""
93
+ "特定のアップグレード前レポートのエントリーをリスト表示する"
94
94
  ],
95
95
  "Low": [
96
96
  "低"
@@ -114,10 +114,10 @@
114
114
  "アップグレード前のレポートはありません"
115
115
  ],
116
116
  "No fixable entries found matching the selection.": [
117
- ""
117
+ "選択に一致する修正可能なエントリーが見つかりませんでした。"
118
118
  ],
119
119
  "No results found for your search.": [
120
- ""
120
+ "検索結果が見つかりませんでした。"
121
121
  ],
122
122
  "Preupgrade check with Leapp": [
123
123
  "Leapp によるアップグレード前のチェック"
@@ -138,10 +138,10 @@
138
138
  "アップグレードの実行"
139
139
  ],
140
140
  "Search autocomplete for preupgrade report entries": [
141
- ""
141
+ "アップグレード前レポートのエントリーを自動補完検索する"
142
142
  ],
143
143
  "Search string": [
144
- ""
144
+ "検索文字列"
145
145
  ],
146
146
  "Show Preupgrade report": [
147
147
  "アップグレード前のレポートの表示"
@@ -168,13 +168,13 @@
168
168
  "タイトル"
169
169
  ],
170
170
  "Trigger a remediation job for selected preupgrade report entries": [
171
- ""
171
+ "選択したアップグレード前レポートのエントリーに対して修復ジョブをトリガーする"
172
172
  ],
173
173
  "Unknown fix_type value '%s' for search_fix_type": [
174
- ""
174
+ "search_fix_type の不明な fix_type 値 '%s'"
175
175
  ],
176
176
  "Unknown search key '%s' for search_yes_no_fields": [
177
- ""
177
+ "search_yes_no_fields の不明な検索キー '%s'"
178
178
  ],
179
179
  "Upgrade with Leapp": [
180
180
  "Leapp によるアップグレード"
@@ -141,7 +141,7 @@
141
141
  ""
142
142
  ],
143
143
  "Search string": [
144
- ""
144
+ "საძებნი სტრიქონი"
145
145
  ],
146
146
  "Show Preupgrade report": [
147
147
  "განახლებისწინა ანგარიშის ჩვენება"
@@ -6,7 +6,7 @@
6
6
  "Project-Id-Version": "foreman_leapp 4.1.2",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2022-10-12 12:00+0000",
9
- "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2026",
9
+ "Last-Translator": "Ondřej Gajdušek, 2026",
10
10
  "Language-Team": "Korean (https://app.transifex.com/foreman/teams/114/ko/)",
11
11
  "MIME-Version": "1.0",
12
12
  "Content-Type": "text/plain; charset=UTF-8",
@@ -24,10 +24,10 @@
24
24
  "모두"
25
25
  ],
26
26
  "An unexpected error occurred while creating the remediation job.": [
27
- ""
27
+ "복구 작업을 생성하는 동안 예기치 않은 오류가 발생했습니다."
28
28
  ],
29
29
  "Array of excluded entry IDs": [
30
- ""
30
+ "제외된 항목 ID 배열"
31
31
  ],
32
32
  "Command": [
33
33
  "명령어"
@@ -63,7 +63,7 @@
63
63
  "호스트 "
64
64
  ],
65
65
  "ID of the preupgrade report": [
66
- ""
66
+ "업그레이드 전 보고서의 ID"
67
67
  ],
68
68
  "Info": [
69
69
  "정보 "
@@ -87,10 +87,10 @@
87
87
  "작업 호출을 위한 사전 업그레이드 보고서 목록"
88
88
  ],
89
89
  "List all preupgrade report entries": [
90
- ""
90
+ "모든 업그레이드 전 보고서 항목 나열"
91
91
  ],
92
92
  "List entries for a specific preupgrade report": [
93
- ""
93
+ "특정 업그레이드 전 보고서의 항목 나열"
94
94
  ],
95
95
  "Low": [
96
96
  "낮음"
@@ -114,10 +114,10 @@
114
114
  "사전 업그레이드 보고서가 없습니다"
115
115
  ],
116
116
  "No fixable entries found matching the selection.": [
117
- ""
117
+ "선택한 조건과 일치하는 수정 가능한 항목이 없습니다."
118
118
  ],
119
119
  "No results found for your search.": [
120
- ""
120
+ "검색 결과를 찾을 수 없습니다."
121
121
  ],
122
122
  "Preupgrade check with Leapp": [
123
123
  "Leapp으로 업그레이드 전 확인"
@@ -138,10 +138,10 @@
138
138
  "업그레이드 실행"
139
139
  ],
140
140
  "Search autocomplete for preupgrade report entries": [
141
- ""
141
+ "업그레이드 전 보고서 항목 검색 자동 완성"
142
142
  ],
143
143
  "Search string": [
144
- ""
144
+ "검색 문자열"
145
145
  ],
146
146
  "Show Preupgrade report": [
147
147
  "사전 업그레이드 보고서 표시"
@@ -168,13 +168,13 @@
168
168
  "제목"
169
169
  ],
170
170
  "Trigger a remediation job for selected preupgrade report entries": [
171
- ""
171
+ "선택한 업그레이드 전 보고서 항목에 대한 복구 작업 시작"
172
172
  ],
173
173
  "Unknown fix_type value '%s' for search_fix_type": [
174
- ""
174
+ "search_fix_type에 대한 알 수 없는 fix_type 값 '%s'"
175
175
  ],
176
176
  "Unknown search key '%s' for search_yes_no_fields": [
177
- ""
177
+ "search_yes_no_fields에 대한 알 수 없는 검색 키 '%s'"
178
178
  ],
179
179
  "Upgrade with Leapp": [
180
180
  "Leapp으로 업그레이드"
@@ -24,10 +24,10 @@
24
24
  "全部"
25
25
  ],
26
26
  "An unexpected error occurred while creating the remediation job.": [
27
- ""
27
+ "创建补救作业时会出现意外错误。"
28
28
  ],
29
29
  "Array of excluded entry IDs": [
30
- ""
30
+ "排除的条目 ID 数组"
31
31
  ],
32
32
  "Command": [
33
33
  "命令"
@@ -63,7 +63,7 @@
63
63
  "主机"
64
64
  ],
65
65
  "ID of the preupgrade report": [
66
- ""
66
+ "预升级报告的 ID"
67
67
  ],
68
68
  "Info": [
69
69
  "Info"
@@ -87,10 +87,10 @@
87
87
  "列出作业调用的预升级报告"
88
88
  ],
89
89
  "List all preupgrade report entries": [
90
- ""
90
+ "列出所有预升级报告条目"
91
91
  ],
92
92
  "List entries for a specific preupgrade report": [
93
- ""
93
+ "列出特定预升级报告的条目"
94
94
  ],
95
95
  "Low": [
96
96
  "低"
@@ -114,10 +114,10 @@
114
114
  "没有可用的预升级报告"
115
115
  ],
116
116
  "No fixable entries found matching the selection.": [
117
- ""
117
+ "未找到与选择匹配的可修复条目。"
118
118
  ],
119
119
  "No results found for your search.": [
120
- ""
120
+ "没有找到您的搜索结果。"
121
121
  ],
122
122
  "Preupgrade check with Leapp": [
123
123
  "使用 Leapp 的预升级检查"
@@ -138,10 +138,10 @@
138
138
  "运行升级"
139
139
  ],
140
140
  "Search autocomplete for preupgrade report entries": [
141
- ""
141
+ "搜索自动补全预升级报告条目"
142
142
  ],
143
143
  "Search string": [
144
- ""
144
+ "搜索字符串"
145
145
  ],
146
146
  "Show Preupgrade report": [
147
147
  "显示预升级报告"
@@ -168,13 +168,13 @@
168
168
  "提示"
169
169
  ],
170
170
  "Trigger a remediation job for selected preupgrade report entries": [
171
- ""
171
+ "为所选预升级报告条目触发补救任务"
172
172
  ],
173
173
  "Unknown fix_type value '%s' for search_fix_type": [
174
- ""
174
+ "search_fix_type 的未知的 fix_type 值 '%s'"
175
175
  ],
176
176
  "Unknown search key '%s' for search_yes_no_fields": [
177
- ""
177
+ "search_yes_no_fields 的未知搜索键 '%s'"
178
178
  ],
179
179
  "Upgrade with Leapp": [
180
180
  "使用 Leapp 升级"
@@ -5,6 +5,7 @@ module Api
5
5
  class PreupgradeReportEntriesController < ::Api::V2::BaseController
6
6
  include ApiAuthorizer
7
7
  include Foreman::Controller::AutoCompleteSearch
8
+ include ForemanLeapp::PreupgradeReportEntryBulkRemediate
8
9
 
9
10
  skip_before_action :store_redirect_to_url, :reset_redirect_to_url, raise: false
10
11
  before_action :find_preupgrade_report, if: -> { params[:preupgrade_report_id].present? }
@@ -25,29 +26,23 @@ module Api
25
26
  N_('Search autocomplete for preupgrade report entries')
26
27
  param :search, String, required: false, desc: N_('Search string')
27
28
  param :preupgrade_report_id, :identifier, required: false, desc: N_('ID of the preupgrade report')
29
+ param :job_invocation_id, :identifier, required: false, desc: N_('ID of the job invocation')
28
30
 
31
+ api :POST, '/preupgrade_report_entries/bulk_remediate',
32
+ N_('Trigger a remediation job for selected preupgrade report entries')
29
33
  api :POST, '/preupgrade_reports/:preupgrade_report_id/preupgrade_report_entries/bulk_remediate',
30
34
  N_('Trigger a remediation job for selected preupgrade report entries')
35
+ param :ids, Array, of: :number, required: false,
36
+ desc: N_('IDs of fixable preupgrade report entries to remediate')
31
37
  param :search, String, required: false, desc: N_('Search string')
32
38
  param :excluded_ids, Array, required: false, desc: N_('Array of excluded entry IDs')
33
39
  def bulk_remediate
34
- entries = filtered_remediation_entries
35
- remediation_ids = entries.pluck(:id)
36
-
37
- if remediation_ids.empty?
38
- return render json: { error: _('No fixable entries found matching the selection.') },
39
- status: :unprocessable_entity
40
- end
40
+ job_id = perform_bulk_remediate
41
+ return if performed?
41
42
 
42
- composer = JobInvocationComposer.for_feature(
43
- 'leapp_remediation_plan',
44
- target_host_ids(entries),
45
- { 'remediation_ids' => remediation_ids.join(',') }
46
- )
47
- composer.trigger!
48
- job_invocation = composer.job_invocation
49
-
50
- render json: { id: job_invocation.id }
43
+ render json: { id: job_id }
44
+ rescue Foreman::Exception => e
45
+ render_exception(e, status: :unprocessable_entity)
51
46
  rescue StandardError => e
52
47
  Foreman::Logging.exception('Failed to trigger bulk remediation job', e)
53
48
  render json: { error: _('An unexpected error occurred while creating the remediation job.') },
@@ -63,6 +58,12 @@ module Api
63
58
  def resource_scope(_options = {})
64
59
  scope = if @preupgrade_report
65
60
  @preupgrade_report.preupgrade_report_entries
61
+ elsif params[:job_invocation_id].present?
62
+ PreupgradeReportEntry.where(
63
+ preupgrade_report_id: PreupgradeReport.where(
64
+ job_invocation_id: params[:job_invocation_id]
65
+ ).select(:id)
66
+ )
66
67
  else
67
68
  PreupgradeReportEntry
68
69
  end
@@ -82,19 +83,6 @@ module Api
82
83
 
83
84
  private
84
85
 
85
- def filtered_remediation_entries
86
- combined_search = [params[:search].presence, 'fix_type = command'].compact.join(' AND ')
87
- entries = resource_scope.search_for(combined_search)
88
- entries = entries.where.not(id: params[:excluded_ids]) if params[:excluded_ids].present?
89
- entries
90
- end
91
-
92
- def target_host_ids(entries)
93
- host_ids = entries.pluck(:host_id).uniq.compact
94
- host_ids = [@preupgrade_report.host_id].compact if host_ids.empty? && @preupgrade_report
95
- host_ids
96
- end
97
-
98
86
  def find_preupgrade_report
99
87
  @preupgrade_report = PreupgradeReport
100
88
  .joins(:host)
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ForemanLeapp
4
+ module PreupgradeReportEntryBulkRemediate
5
+ extend ActiveSupport::Concern
6
+
7
+ def perform_bulk_remediate
8
+ entries = filtered_remediation_entries
9
+ remediation_ids = entries.pluck(:id)
10
+
11
+ if remediation_ids.empty?
12
+ render json: { error: _('No fixable entries found matching the selection.') },
13
+ status: :unprocessable_entity
14
+ return
15
+ end
16
+
17
+ composer = JobInvocationComposer.for_feature(
18
+ 'leapp_remediation_plan',
19
+ target_host_ids(entries),
20
+ { 'remediation_ids' => remediation_ids.join(',') }
21
+ )
22
+ composer.trigger!
23
+ composer.job_invocation.id
24
+ end
25
+
26
+ private
27
+
28
+ def filtered_remediation_entries
29
+ fixable_remediation_scope(scope_for_bulk_selection)
30
+ end
31
+
32
+ def scope_for_bulk_selection
33
+ return resource_scope.where(id: params[:ids]) if params[:ids].present?
34
+
35
+ unless scoped_to_report_or_job?
36
+ raise Foreman::Exception,
37
+ N_('Either ids, preupgrade_report_id or job_invocation_id must be provided')
38
+ end
39
+
40
+ apply_excluded_ids(search_fixable_entries)
41
+ end
42
+
43
+ def scoped_to_report_or_job?
44
+ @preupgrade_report.present? || params[:job_invocation_id].present?
45
+ end
46
+
47
+ def search_fixable_entries
48
+ combined_search = [params[:search].presence, 'fix_type = command'].compact.join(' AND ')
49
+ resource_scope.search_for(combined_search)
50
+ end
51
+
52
+ def apply_excluded_ids(entries)
53
+ return entries.where.not(id: params[:excluded_ids]) if params[:excluded_ids].present?
54
+
55
+ entries
56
+ end
57
+
58
+ def fixable_remediation_scope(scope)
59
+ scope.search_for('fix_type = command')
60
+ end
61
+
62
+ def target_host_ids(entries)
63
+ host_ids = entries.pluck(:host_id).uniq.compact
64
+ return [@preupgrade_report.host_id].compact if host_ids.empty? && @preupgrade_report
65
+
66
+ host_ids
67
+ end
68
+ end
69
+ end
data/config/routes.rb CHANGED
@@ -1,14 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  Rails.application.routes.draw do
4
- resources :preupgrade_reports, only: %i[index]
5
-
6
4
  namespace :api, defaults: { format: 'json' } do
7
5
  scope '(:apiv)', module: :v2, defaults: { apiv: 'v2' }, apiv: /v2/,
8
6
  constraints: ApiConstraints.new(version: 2, default: true) do
9
7
  resources :preupgrade_report_entries, only: %i[index] do
10
8
  collection do
11
9
  get :auto_complete_search
10
+ post :bulk_remediate
12
11
  end
13
12
  end
14
13
 
@@ -26,19 +26,8 @@ module ForemanLeapp
26
26
  extend_rabl_template 'api/v2/job_invocations/main',
27
27
  'api/v2/job_invocations/leapp_preupgrade_report'
28
28
 
29
- extend_page 'job_invocations/show' do |cx|
30
- cx.add_pagelet :main_tabs,
31
- partial: 'job_invocations/leapp_preupgrade_report',
32
- name: _('Leapp preupgrade report'),
33
- id: 'leapp_preupgrade_report',
34
- onlyif: proc { |subject|
35
- ::Helpers::JobHelper.with_leapp_report(subject)
36
- }
37
- end
38
-
39
29
  security_block :foreman_leapp do
40
- permission :view_job_invocations, { :preupgrade_reports => %i[index show job_invocation],
41
- 'api/v2/preupgrade_reports' => %i[index show job_invocation] },
30
+ permission :view_job_invocations, { 'api/v2/preupgrade_reports' => %i[index show job_invocation] },
42
31
  :resource_type => 'JobInvocation'
43
32
  end
44
33
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanLeapp
4
- VERSION = '4.2.0'
4
+ VERSION = '4.3.0'
5
5
  end
Binary file
@@ -8,14 +8,14 @@
8
8
  # Ettore Atalan <atalanttore@googlemail.com>, 2022
9
9
  # Wiederoder <stefanwiederoder@googlemail.com>, 2022
10
10
  # Lukas Kallies <github.com@luke-web.de>, 2022
11
- # Bryan Kearney <bryan.kearney@gmail.com>, 2023
11
+ # Bryan Kearney <bryan.kearney@gmail.com>, 2026
12
12
  #
13
13
  msgid ""
14
14
  msgstr ""
15
15
  "Project-Id-Version: foreman_leapp 4.1.2\n"
16
16
  "Report-Msgid-Bugs-To: \n"
17
17
  "PO-Revision-Date: 2022-10-12 12:00+0000\n"
18
- "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>, 2023\n"
18
+ "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>, 2026\n"
19
19
  "Language-Team: German (https://app.transifex.com/foreman/teams/114/de/)\n"
20
20
  "MIME-Version: 1.0\n"
21
21
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -147,7 +147,7 @@ msgid "Search autocomplete for preupgrade report entries"
147
147
  msgstr ""
148
148
 
149
149
  msgid "Search string"
150
- msgstr ""
150
+ msgstr "Suchbegriff"
151
151
 
152
152
  msgid "Show Preupgrade report"
153
153
  msgstr ""
Binary file
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_leapp 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "PO-Revision-Date: 2026-09-22 17:30+0000\n"
11
+ "PO-Revision-Date: 2026-09-29 11:07+0000\n"
12
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
14
  "Language: \n"
@@ -8,8 +8,8 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_leapp 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2026-09-22 17:30+0000\n"
12
- "PO-Revision-Date: 2026-09-22 17:30+0000\n"
11
+ "POT-Creation-Date: 2026-09-29 11:07+0000\n"
12
+ "PO-Revision-Date: 2026-09-29 11:07+0000\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
Binary file