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
@@ -4,12 +4,12 @@
4
4
  # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
5
  #
6
6
  # Translators:
7
- # Bryan Kearney <bryan.kearney@gmail.com>, 2022
8
7
  # Claer <transiblu@claer.hammock.fr>, 2022
9
8
  # Pierre-Emmanuel Dutang <dutangp@gmail.com>, 2022
10
9
  # 21966816214bc546c1fc8a185e75ca1c, 2022
11
10
  # Amit Upadhye <aupadhye@redhat.com>, 2023
12
11
  # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2023
12
+ # Bryan Kearney <bryan.kearney@gmail.com>, 2026
13
13
  # Ondřej Gajdušek, 2026
14
14
  #
15
15
  msgid ""
@@ -33,10 +33,10 @@ msgid "All"
33
33
  msgstr "Tout"
34
34
 
35
35
  msgid "An unexpected error occurred while creating the remediation job."
36
- msgstr ""
36
+ msgstr "Une erreur inattendue s'est produite lors de la création de la tâche de correction."
37
37
 
38
38
  msgid "Array of excluded entry IDs"
39
- msgstr ""
39
+ msgstr "Tableau des identifiants des entrées exclues"
40
40
 
41
41
  msgid "Command"
42
42
  msgstr "Commande"
@@ -72,7 +72,7 @@ msgid "Host"
72
72
  msgstr "Hôte"
73
73
 
74
74
  msgid "ID of the preupgrade report"
75
- msgstr ""
75
+ msgstr "ID du rapport de pré-mise à niveau"
76
76
 
77
77
  msgid "Info"
78
78
  msgstr "Info"
@@ -96,10 +96,10 @@ msgid "List Preupgrade reports for Job invocation"
96
96
  msgstr "Liste des rapports de pré-mise à niveau pour l'invocation du job"
97
97
 
98
98
  msgid "List all preupgrade report entries"
99
- msgstr ""
99
+ msgstr "Liste de toutes les entrées du rapport de pré-mise à niveau"
100
100
 
101
101
  msgid "List entries for a specific preupgrade report"
102
- msgstr ""
102
+ msgstr "Liste des entrées pour un rapport de pré-mise à niveau spécifique"
103
103
 
104
104
  msgid "Low"
105
105
  msgstr "Faible"
@@ -123,10 +123,10 @@ msgid "No Preupgrade Report Available"
123
123
  msgstr "Aucun rapport de pré-mise à niveau disponible"
124
124
 
125
125
  msgid "No fixable entries found matching the selection."
126
- msgstr ""
126
+ msgstr "Aucune entrée corrigible ne correspond à la sélection."
127
127
 
128
128
  msgid "No results found for your search."
129
- msgstr ""
129
+ msgstr "Aucun résultat trouvé pour votre recherche."
130
130
 
131
131
  msgid "Preupgrade check with Leapp"
132
132
  msgstr "Contrôle pré-mise à niveau avec Leapp"
@@ -147,10 +147,10 @@ msgid "Run Upgrade"
147
147
  msgstr "Mettre à niveau"
148
148
 
149
149
  msgid "Search autocomplete for preupgrade report entries"
150
- msgstr ""
150
+ msgstr "Saisie semi-automatique de la recherche pour les entrées du rapport de pré-mise à niveau"
151
151
 
152
152
  msgid "Search string"
153
- msgstr ""
153
+ msgstr "Rechercher une chaîne"
154
154
 
155
155
  msgid "Show Preupgrade report"
156
156
  msgstr "Afficher le rapport de pré-mise à niveau"
@@ -177,13 +177,13 @@ msgid "Title"
177
177
  msgstr "Titre"
178
178
 
179
179
  msgid "Trigger a remediation job for selected preupgrade report entries"
180
- msgstr ""
180
+ msgstr "Déclencher une tâche de correction pour les entrées de rapport de pré-mise à niveau sélectionnées"
181
181
 
182
182
  msgid "Unknown fix_type value '%s' for search_fix_type"
183
- msgstr ""
183
+ msgstr "Valeur fix_type inconnue '%s' pour le type de correction de recherche"
184
184
 
185
185
  msgid "Unknown search key '%s' for search_yes_no_fields"
186
- msgstr ""
186
+ msgstr "Clé de recherche inconnue '%s' pour les champs de recherche oui/non"
187
187
 
188
188
  msgid "Upgrade with Leapp"
189
189
  msgstr "Mise à niveau avec Leapp"
Binary file
@@ -8,7 +8,7 @@
8
8
  # mhulan <mhulan@redhat.com>, 2022
9
9
  # Amit Upadhye <aupadhye@redhat.com>, 2022
10
10
  # Bryan Kearney <bryan.kearney@gmail.com>, 2023
11
- # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2023
11
+ # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2026
12
12
  # Ondřej Gajdušek, 2026
13
13
  #
14
14
  msgid ""
@@ -31,10 +31,10 @@ msgid "All"
31
31
  msgstr "すべて"
32
32
 
33
33
  msgid "An unexpected error occurred while creating the remediation job."
34
- msgstr ""
34
+ msgstr "修復ジョブの作成中に予期せぬエラーが発生しました。"
35
35
 
36
36
  msgid "Array of excluded entry IDs"
37
- msgstr ""
37
+ msgstr "除外されたエントリー ID の配列"
38
38
 
39
39
  msgid "Command"
40
40
  msgstr "コマンド"
@@ -70,7 +70,7 @@ msgid "Host"
70
70
  msgstr "ホスト"
71
71
 
72
72
  msgid "ID of the preupgrade report"
73
- msgstr ""
73
+ msgstr "アップグレード前レポートの ID"
74
74
 
75
75
  msgid "Info"
76
76
  msgstr "情報"
@@ -94,10 +94,10 @@ msgid "List Preupgrade reports for Job invocation"
94
94
  msgstr "ジョブ呼び出しの事前アップグレードレポートの一覧表示"
95
95
 
96
96
  msgid "List all preupgrade report entries"
97
- msgstr ""
97
+ msgstr "アップグレード前のレポートエントリーをすべてリスト表示する"
98
98
 
99
99
  msgid "List entries for a specific preupgrade report"
100
- msgstr ""
100
+ msgstr "特定のアップグレード前レポートのエントリーをリスト表示する"
101
101
 
102
102
  msgid "Low"
103
103
  msgstr "低"
@@ -121,10 +121,10 @@ msgid "No Preupgrade Report Available"
121
121
  msgstr "アップグレード前のレポートはありません"
122
122
 
123
123
  msgid "No fixable entries found matching the selection."
124
- msgstr ""
124
+ msgstr "選択に一致する修正可能なエントリーが見つかりませんでした。"
125
125
 
126
126
  msgid "No results found for your search."
127
- msgstr ""
127
+ msgstr "検索結果が見つかりませんでした。"
128
128
 
129
129
  msgid "Preupgrade check with Leapp"
130
130
  msgstr "Leapp によるアップグレード前のチェック"
@@ -145,10 +145,10 @@ msgid "Run Upgrade"
145
145
  msgstr "アップグレードの実行"
146
146
 
147
147
  msgid "Search autocomplete for preupgrade report entries"
148
- msgstr ""
148
+ msgstr "アップグレード前レポートのエントリーを自動補完検索する"
149
149
 
150
150
  msgid "Search string"
151
- msgstr ""
151
+ msgstr "検索文字列"
152
152
 
153
153
  msgid "Show Preupgrade report"
154
154
  msgstr "アップグレード前のレポートの表示"
@@ -175,13 +175,13 @@ msgid "Title"
175
175
  msgstr "タイトル"
176
176
 
177
177
  msgid "Trigger a remediation job for selected preupgrade report entries"
178
- msgstr ""
178
+ msgstr "選択したアップグレード前レポートのエントリーに対して修復ジョブをトリガーする"
179
179
 
180
180
  msgid "Unknown fix_type value '%s' for search_fix_type"
181
- msgstr ""
181
+ msgstr "search_fix_type の不明な fix_type 値 '%s'"
182
182
 
183
183
  msgid "Unknown search key '%s' for search_yes_no_fields"
184
- msgstr ""
184
+ msgstr "search_yes_no_fields の不明な検索キー '%s'"
185
185
 
186
186
  msgid "Upgrade with Leapp"
187
187
  msgstr "Leapp によるアップグレード"
Binary file
@@ -143,7 +143,7 @@ msgid "Search autocomplete for preupgrade report entries"
143
143
  msgstr ""
144
144
 
145
145
  msgid "Search string"
146
- msgstr ""
146
+ msgstr "საძებნი სტრიქონი"
147
147
 
148
148
  msgid "Show Preupgrade report"
149
149
  msgstr "განახლებისწინა ანგარიშის ჩვენება"
Binary file
@@ -5,17 +5,16 @@
5
5
  #
6
6
  # Translators:
7
7
  # 0868a4d1af5275b3f70b0a6dac4c99a4, 2022
8
- # Bryan Kearney <bryan.kearney@gmail.com>, 2022
8
+ # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
9
+ # Bryan Kearney <bryan.kearney@gmail.com>, 2026
9
10
  # Ondřej Gajdušek, 2026
10
- # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2026
11
11
  #
12
12
  msgid ""
13
13
  msgstr ""
14
14
  "Project-Id-Version: foreman_leapp 4.1.2\n"
15
15
  "Report-Msgid-Bugs-To: \n"
16
16
  "PO-Revision-Date: 2022-10-12 12:00+0000\n"
17
- "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarde"
18
- "n.nl>, 2026\n"
17
+ "Last-Translator: Ondřej Gajdušek, 2026\n"
19
18
  "Language-Team: Korean (https://app.transifex.com/foreman/teams/114/ko/)\n"
20
19
  "MIME-Version: 1.0\n"
21
20
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -30,10 +29,10 @@ msgid "All"
30
29
  msgstr "모두"
31
30
 
32
31
  msgid "An unexpected error occurred while creating the remediation job."
33
- msgstr ""
32
+ msgstr "복구 작업을 생성하는 동안 예기치 않은 오류가 발생했습니다."
34
33
 
35
34
  msgid "Array of excluded entry IDs"
36
- msgstr ""
35
+ msgstr "제외된 항목 ID 배열"
37
36
 
38
37
  msgid "Command"
39
38
  msgstr "명령어"
@@ -69,7 +68,7 @@ msgid "Host"
69
68
  msgstr "호스트 "
70
69
 
71
70
  msgid "ID of the preupgrade report"
72
- msgstr ""
71
+ msgstr "업그레이드 전 보고서의 ID"
73
72
 
74
73
  msgid "Info"
75
74
  msgstr "정보 "
@@ -93,10 +92,10 @@ msgid "List Preupgrade reports for Job invocation"
93
92
  msgstr "작업 호출을 위한 사전 업그레이드 보고서 목록"
94
93
 
95
94
  msgid "List all preupgrade report entries"
96
- msgstr ""
95
+ msgstr "모든 업그레이드 전 보고서 항목 나열"
97
96
 
98
97
  msgid "List entries for a specific preupgrade report"
99
- msgstr ""
98
+ msgstr "특정 업그레이드 전 보고서의 항목 나열"
100
99
 
101
100
  msgid "Low"
102
101
  msgstr "낮음"
@@ -120,10 +119,10 @@ msgid "No Preupgrade Report Available"
120
119
  msgstr "사전 업그레이드 보고서가 없습니다"
121
120
 
122
121
  msgid "No fixable entries found matching the selection."
123
- msgstr ""
122
+ msgstr "선택한 조건과 일치하는 수정 가능한 항목이 없습니다."
124
123
 
125
124
  msgid "No results found for your search."
126
- msgstr ""
125
+ msgstr "검색 결과를 찾을 수 없습니다."
127
126
 
128
127
  msgid "Preupgrade check with Leapp"
129
128
  msgstr "Leapp으로 업그레이드 전 확인"
@@ -144,10 +143,10 @@ msgid "Run Upgrade"
144
143
  msgstr "업그레이드 실행"
145
144
 
146
145
  msgid "Search autocomplete for preupgrade report entries"
147
- msgstr ""
146
+ msgstr "업그레이드 전 보고서 항목 검색 자동 완성"
148
147
 
149
148
  msgid "Search string"
150
- msgstr ""
149
+ msgstr "검색 문자열"
151
150
 
152
151
  msgid "Show Preupgrade report"
153
152
  msgstr "사전 업그레이드 보고서 표시"
@@ -174,13 +173,13 @@ msgid "Title"
174
173
  msgstr "제목"
175
174
 
176
175
  msgid "Trigger a remediation job for selected preupgrade report entries"
177
- msgstr ""
176
+ msgstr "선택한 업그레이드 전 보고서 항목에 대한 복구 작업 시작"
178
177
 
179
178
  msgid "Unknown fix_type value '%s' for search_fix_type"
180
- msgstr ""
179
+ msgstr "search_fix_type에 대한 알 수 없는 fix_type 값 '%s'"
181
180
 
182
181
  msgid "Unknown search key '%s' for search_yes_no_fields"
183
- msgstr ""
182
+ msgstr "search_yes_no_fields에 대한 알 수 없는 검색 키 '%s'"
184
183
 
185
184
  msgid "Upgrade with Leapp"
186
185
  msgstr "Leapp으로 업그레이드"
@@ -5,8 +5,8 @@
5
5
  #
6
6
  # Translators:
7
7
  # Bryan Kearney <bryan.kearney@gmail.com>, 2022
8
- # Amit Upadhye <aupadhye@redhat.com>, 2023
9
8
  # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2023
9
+ # Amit Upadhye <aupadhye@redhat.com>, 2026
10
10
  # Ondřej Gajdušek, 2026
11
11
  #
12
12
  msgid ""
@@ -30,10 +30,10 @@ msgid "All"
30
30
  msgstr "全部"
31
31
 
32
32
  msgid "An unexpected error occurred while creating the remediation job."
33
- msgstr ""
33
+ msgstr "创建补救作业时会出现意外错误。"
34
34
 
35
35
  msgid "Array of excluded entry IDs"
36
- msgstr ""
36
+ msgstr "排除的条目 ID 数组"
37
37
 
38
38
  msgid "Command"
39
39
  msgstr "命令"
@@ -69,7 +69,7 @@ msgid "Host"
69
69
  msgstr "主机"
70
70
 
71
71
  msgid "ID of the preupgrade report"
72
- msgstr ""
72
+ msgstr "预升级报告的 ID"
73
73
 
74
74
  msgid "Info"
75
75
  msgstr "Info"
@@ -93,10 +93,10 @@ msgid "List Preupgrade reports for Job invocation"
93
93
  msgstr "列出作业调用的预升级报告"
94
94
 
95
95
  msgid "List all preupgrade report entries"
96
- msgstr ""
96
+ msgstr "列出所有预升级报告条目"
97
97
 
98
98
  msgid "List entries for a specific preupgrade report"
99
- msgstr ""
99
+ msgstr "列出特定预升级报告的条目"
100
100
 
101
101
  msgid "Low"
102
102
  msgstr "低"
@@ -120,10 +120,10 @@ msgid "No Preupgrade Report Available"
120
120
  msgstr "没有可用的预升级报告"
121
121
 
122
122
  msgid "No fixable entries found matching the selection."
123
- msgstr ""
123
+ msgstr "未找到与选择匹配的可修复条目。"
124
124
 
125
125
  msgid "No results found for your search."
126
- msgstr ""
126
+ msgstr "没有找到您的搜索结果。"
127
127
 
128
128
  msgid "Preupgrade check with Leapp"
129
129
  msgstr "使用 Leapp 的预升级检查"
@@ -144,10 +144,10 @@ msgid "Run Upgrade"
144
144
  msgstr "运行升级"
145
145
 
146
146
  msgid "Search autocomplete for preupgrade report entries"
147
- msgstr ""
147
+ msgstr "搜索自动补全预升级报告条目"
148
148
 
149
149
  msgid "Search string"
150
- msgstr ""
150
+ msgstr "搜索字符串"
151
151
 
152
152
  msgid "Show Preupgrade report"
153
153
  msgstr "显示预升级报告"
@@ -174,13 +174,13 @@ msgid "Title"
174
174
  msgstr "提示"
175
175
 
176
176
  msgid "Trigger a remediation job for selected preupgrade report entries"
177
- msgstr ""
177
+ msgstr "为所选预升级报告条目触发补救任务"
178
178
 
179
179
  msgid "Unknown fix_type value '%s' for search_fix_type"
180
- msgstr ""
180
+ msgstr "search_fix_type 的未知的 fix_type 值 '%s'"
181
181
 
182
182
  msgid "Unknown search key '%s' for search_yes_no_fields"
183
- msgstr ""
183
+ msgstr "search_yes_no_fields 的未知搜索键 '%s'"
184
184
 
185
185
  msgid "Upgrade with Leapp"
186
186
  msgstr "使用 Leapp 升级"
data/package.json CHANGED
@@ -33,7 +33,6 @@
33
33
  "@theforeman/vendor-dev": ">= 12.0.1",
34
34
  "babel-eslint": "^10.0.0",
35
35
  "eslint": "^6.8.0",
36
- "jest-svg-transformer": "^1.0.0",
37
36
  "prettier": "^1.19.1"
38
37
  }
39
38
  }
@@ -39,6 +39,24 @@ module Api
39
39
  assert_response :not_found
40
40
  end
41
41
 
42
+ test ':index scopes entries to job_invocation_id across multiple reports' do
43
+ host2 = FactoryBot.create(:host)
44
+ report2 = FactoryBot.create(:preupgrade_report, host: host2, job_invocation: @job_invocation)
45
+ entry2 = FactoryBot.create(:preupgrade_report_entry, host: host2, preupgrade_report: report2)
46
+
47
+ other_job = FactoryBot.create(:job_invocation)
48
+ other_report = FactoryBot.create(:preupgrade_report, host: @host, job_invocation: other_job)
49
+ FactoryBot.create(:preupgrade_report_entry, host: @host, preupgrade_report: other_report)
50
+
51
+ get :index, params: { job_invocation_id: @job_invocation.id }
52
+ assert_response :success
53
+
54
+ ids = JSON.parse(@response.body)['results'].map { |e| e['id'] }
55
+ assert_includes ids, @entry.id
56
+ assert_includes ids, entry2.id
57
+ assert_equal 2, ids.size
58
+ end
59
+
42
60
  test ':index does not return entries belonging to a different report' do
43
61
  other_report = FactoryBot.create(:preupgrade_report, host: @host,
44
62
  job_invocation: @job_invocation)
@@ -226,6 +244,19 @@ module Api
226
244
  assert_equal @dummy_job.id, json['id']
227
245
  end
228
246
 
247
+ test 'remediates only fixable entries when ids are given' do
248
+ JobInvocationComposer.expects(:for_feature)
249
+ .with('leapp_remediation_plan', [@host.id],
250
+ { 'remediation_ids' => @entry2.id.to_s })
251
+ .returns(@composer)
252
+
253
+ post :bulk_remediate, params: {
254
+ preupgrade_report_id: @report.id,
255
+ ids: [@entry2.id, @unfixable.id],
256
+ }
257
+ assert_response :success
258
+ end
259
+
229
260
  test 'respects the excluded_ids parameter' do
230
261
  expected_ids = [@entry1.id, @entry3.id].join(',')
231
262
 
@@ -240,6 +271,15 @@ module Api
240
271
  assert_response :success
241
272
  end
242
273
 
274
+ test 'requires report or job scope when not remediating by entry ids' do
275
+ JobInvocationComposer.expects(:for_feature).never
276
+
277
+ post :bulk_remediate
278
+ assert_response :unprocessable_entity
279
+ json = ActiveSupport::JSON.decode(response.body)
280
+ assert_match(/Either ids, preupgrade_report_id or job_invocation_id must be provided/, json['message'])
281
+ end
282
+
243
283
  test 'returns error if no fixable entries match' do
244
284
  JobInvocationComposer.expects(:for_feature).never
245
285
 
@@ -251,6 +291,30 @@ module Api
251
291
  json = ActiveSupport::JSON.decode(response.body)
252
292
  assert_equal 'No fixable entries found matching the selection.', json['error']
253
293
  end
294
+
295
+ test 'triggers job for fixable entries across all reports for a job invocation' do
296
+ job_invocation = FactoryBot.create(:job_invocation)
297
+ host2 = FactoryBot.create(:host)
298
+ report2 = FactoryBot.create(:preupgrade_report, host: host2, job_invocation: job_invocation)
299
+ @report.update!(job_invocation: job_invocation)
300
+
301
+ fixable_detail = { 'remediations' => [{ 'type' => 'command', 'context' => ['yum', 'update'] }] }
302
+ entry_host2 = FactoryBot.create(:preupgrade_report_entry,
303
+ preupgrade_report: report2, host: host2, detail: fixable_detail)
304
+
305
+ expected_entry_ids = [@entry1.id, @entry2.id, @entry3.id, entry_host2.id].sort
306
+
307
+ JobInvocationComposer.expects(:for_feature)
308
+ .with do |feature, host_ids, inputs|
309
+ feature == 'leapp_remediation_plan' &&
310
+ host_ids.sort == [@host.id, host2.id].sort &&
311
+ inputs['remediation_ids'].split(',').map(&:to_i).sort == expected_entry_ids
312
+ end
313
+ .returns(@composer)
314
+
315
+ post :bulk_remediate, params: { job_invocation_id: job_invocation.id }
316
+ assert_response :success
317
+ end
254
318
  end
255
319
  end
256
320
  # rubocop:enable Metrics/ClassLength
@@ -12,7 +12,7 @@ export const usePreupgradeTableState = (data, isExpanded) => {
12
12
 
13
13
  const [status, setStatus] = useState(STATUS.RESOLVED);
14
14
  const [error, setError] = useState(null);
15
- const [reportId, setReportId] = useState(null);
15
+ const [hasReports, setHasReports] = useState(false);
16
16
  const [rows, setRows] = useState([]);
17
17
  const [totalCount, setTotalCount] = useState(0);
18
18
  const [searchValue, setSearchValue] = useState('');
@@ -30,8 +30,9 @@ export const usePreupgradeTableState = (data, isExpanded) => {
30
30
 
31
31
  useEffect(() => {
32
32
  const fetchKey = `${data.id}:${jobStatusLabel}`;
33
- if (!isLeappJob || !isExpanded || lastFetchedKeyRef.current === fetchKey)
33
+ if (!isLeappJob || !isExpanded || lastFetchedKeyRef.current === fetchKey) {
34
34
  return undefined;
35
+ }
35
36
 
36
37
  let ignore = false;
37
38
  setStatus(STATUS.PENDING);
@@ -41,22 +42,29 @@ export const usePreupgradeTableState = (data, isExpanded) => {
41
42
  key: `GET_LEAPP_REPORT_LIST_${data.id}`,
42
43
  url: `/api/v2/job_invocations/${data.id}/preupgrade_reports`,
43
44
  handleSuccess: res => {
44
- if (ignore) return;
45
+ if (ignore) {
46
+ return;
47
+ }
48
+
45
49
  lastFetchedKeyRef.current = fetchKey;
46
50
  const payload = res.data || res;
47
51
  const rawResults = payload.results;
48
52
  const resultsArray = rawResults ? [].concat(rawResults) : [];
49
53
 
50
- if (resultsArray[0]?.id) {
51
- setReportId(resultsArray[0].id);
54
+ if (resultsArray.length > 0) {
55
+ setHasReports(true);
52
56
  } else {
57
+ setHasReports(false);
53
58
  setRows([]);
54
59
  setTotalCount(0);
55
60
  setStatus(STATUS.RESOLVED);
56
61
  }
57
62
  },
58
63
  handleError: err => {
59
- if (ignore) return;
64
+ if (ignore) {
65
+ return;
66
+ }
67
+
60
68
  setError(err);
61
69
  setStatus(STATUS.ERROR);
62
70
  },
@@ -69,10 +77,15 @@ export const usePreupgradeTableState = (data, isExpanded) => {
69
77
  }, [isExpanded, data.id, isLeappJob, dispatch, jobStatusLabel]);
70
78
 
71
79
  useEffect(() => {
72
- if (!isLeappJob || !isExpanded || !reportId) return undefined;
80
+ if (!isLeappJob || !isExpanded || !hasReports || !data.id) {
81
+ return undefined;
82
+ }
83
+
84
+ const entriesFetchKey = `${data.id}_P${pagination.page}_PP${pagination.perPage}_S${searchValue}_O${sortBy.index}${sortBy.direction}_J${jobStatusLabel}`;
73
85
 
74
- const entriesFetchKey = `${reportId}_P${pagination.page}_PP${pagination.perPage}_S${searchValue}_O${sortBy.index}${sortBy.direction}_J${jobStatusLabel}`;
75
- if (lastEntriesFetchKeyRef.current === entriesFetchKey) return undefined;
86
+ if (lastEntriesFetchKeyRef.current === entriesFetchKey) {
87
+ return undefined;
88
+ }
76
89
 
77
90
  let ignore = false;
78
91
  setStatus(STATUS.PENDING);
@@ -84,15 +97,19 @@ export const usePreupgradeTableState = (data, isExpanded) => {
84
97
  dispatch(
85
98
  APIActions.get({
86
99
  key: `GET_LEAPP_REPORT_ENTRIES_${entriesFetchKey}`,
87
- url: `/api/v2/preupgrade_reports/${reportId}/preupgrade_report_entries`,
100
+ url: '/api/v2/preupgrade_report_entries',
88
101
  params: {
89
102
  page: pagination.page,
90
103
  per_page: pagination.perPage,
104
+ job_invocation_id: data.id,
91
105
  ...(searchValue && { search: searchValue }),
92
106
  ...(orderParam && { order: orderParam }),
93
107
  },
94
108
  handleSuccess: res => {
95
- if (ignore) return;
109
+ if (ignore) {
110
+ return;
111
+ }
112
+
96
113
  lastEntriesFetchKeyRef.current = entriesFetchKey;
97
114
  const payload = res.data || res;
98
115
  const fetchedResults = payload.results;
@@ -102,7 +119,10 @@ export const usePreupgradeTableState = (data, isExpanded) => {
102
119
  setExpandedRowIds(new Set());
103
120
  },
104
121
  handleError: err => {
105
- if (ignore) return;
122
+ if (ignore) {
123
+ return;
124
+ }
125
+
106
126
  setError(err);
107
127
  setStatus(STATUS.ERROR);
108
128
  },
@@ -115,7 +135,8 @@ export const usePreupgradeTableState = (data, isExpanded) => {
115
135
  }, [
116
136
  isExpanded,
117
137
  isLeappJob,
118
- reportId,
138
+ hasReports,
139
+ data.id,
119
140
  searchValue,
120
141
  pagination.page,
121
142
  pagination.perPage,
@@ -137,8 +158,13 @@ export const usePreupgradeTableState = (data, isExpanded) => {
137
158
  const toggleRowExpansion = (id, isOpen) => {
138
159
  setExpandedRowIds(prev => {
139
160
  const next = new Set(prev);
140
- if (isOpen) next.add(id);
141
- else next.delete(id);
161
+
162
+ if (isOpen) {
163
+ next.add(id);
164
+ } else {
165
+ next.delete(id);
166
+ }
167
+
142
168
  return next;
143
169
  });
144
170
  };
@@ -147,7 +173,8 @@ export const usePreupgradeTableState = (data, isExpanded) => {
147
173
  isLeappJob,
148
174
  status,
149
175
  error,
150
- reportId,
176
+ hasReports,
177
+ jobInvocationId: data.id,
151
178
  rows,
152
179
  totalCount,
153
180
  pagination,