foreman_remote_execution 9.1.0 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/release.yml +14 -0
- data/.packit.yaml +40 -0
- data/.tx/config +3 -1
- data/app/assets/javascripts/foreman_remote_execution/locale/de/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/en/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/en_GB/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/es/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/fr/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/ja/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/ko/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/pt_BR/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/ru/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/zh_CN/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/locale/zh_TW/foreman_remote_execution.js +1 -0
- data/app/assets/javascripts/foreman_remote_execution/template_invocation.js +10 -1
- data/app/controllers/job_invocations_controller.rb +20 -1
- data/app/controllers/ui_job_wizard_controller.rb +0 -3
- data/app/lib/actions/remote_execution/run_host_job.rb +1 -1
- data/app/views/job_invocations/_form.html.erb +1 -1
- data/app/views/templates/script/run_command.erb +1 -0
- data/config/routes.rb +1 -0
- data/lib/foreman_remote_execution/engine.rb +8 -8
- data/lib/foreman_remote_execution/tasks/explain_proxy_selection.rake +12 -3
- data/lib/foreman_remote_execution/version.rb +1 -1
- data/locale/Makefile +6 -3
- data/locale/de/LC_MESSAGES/foreman_remote_execution.mo +0 -0
- data/locale/de/foreman_remote_execution.po +53 -8
- data/locale/en/foreman_remote_execution.po +52 -7
- data/locale/en_GB/foreman_remote_execution.po +52 -7
- data/locale/es/LC_MESSAGES/foreman_remote_execution.mo +0 -0
- data/locale/es/foreman_remote_execution.po +56 -11
- data/locale/foreman_remote_execution.pot +193 -126
- data/locale/fr/LC_MESSAGES/foreman_remote_execution.mo +0 -0
- data/locale/fr/foreman_remote_execution.po +56 -11
- data/locale/ja/LC_MESSAGES/foreman_remote_execution.mo +0 -0
- data/locale/ja/foreman_remote_execution.po +56 -11
- data/locale/ko/foreman_remote_execution.po +52 -7
- data/locale/pt_BR/LC_MESSAGES/foreman_remote_execution.mo +0 -0
- data/locale/pt_BR/foreman_remote_execution.po +56 -11
- data/locale/ru/foreman_remote_execution.po +52 -7
- data/locale/zh_CN/LC_MESSAGES/foreman_remote_execution.mo +0 -0
- data/locale/zh_CN/foreman_remote_execution.po +56 -11
- data/locale/zh_TW/foreman_remote_execution.po +52 -7
- data/webpack/JobWizard/Footer.js +104 -0
- data/webpack/JobWizard/JobWizard.js +24 -16
- data/webpack/JobWizard/JobWizard.scss +6 -17
- data/webpack/JobWizard/JobWizardConstants.js +1 -1
- data/webpack/JobWizard/JobWizardPageRerun.js +2 -0
- data/webpack/JobWizard/__tests__/fixtures.js +8 -1
- data/webpack/JobWizard/__tests__/validation.test.js +9 -0
- data/webpack/JobWizard/steps/HostsAndInputs/HostPreviewModal.js +2 -0
- data/webpack/JobWizard/steps/HostsAndInputs/SelectedChips.js +28 -14
- data/webpack/JobWizard/steps/HostsAndInputs/__tests__/HostsAndInputs.test.js +3 -3
- data/webpack/JobWizard/steps/ReviewDetails/ReviewDetails.test.js +117 -0
- data/webpack/JobWizard/steps/ReviewDetails/helpers.js +43 -0
- data/webpack/JobWizard/steps/ReviewDetails/index.js +169 -18
- data/webpack/JobWizard/steps/Schedule/QueryType.js +1 -1
- data/webpack/JobWizard/steps/Schedule/RepeatHour.js +0 -1
- data/webpack/JobWizard/steps/Schedule/RepeatWeek.js +1 -1
- data/webpack/JobWizard/steps/Schedule/__tests__/Schedule.test.js +19 -5
- data/webpack/JobWizard/steps/form/DateTimePicker.js +0 -1
- data/webpack/JobWizard/steps/form/GroupedSelectField.js +0 -1
- data/webpack/JobWizard/steps/form/SelectField.js +0 -1
- data/webpack/react_app/components/RecentJobsCard/RecentJobsCard.js +4 -4
- data/webpack/react_app/components/RecentJobsCard/RecentJobsTable.js +2 -2
- data/webpack/react_app/components/RecentJobsCard/constants.js +2 -2
- data/webpack/react_app/components/RegistrationExtension/RexPull.js +0 -2
- metadata +19 -3
@@ -29,6 +29,9 @@ msgstr "%s назад"
|
|
29
29
|
msgid "%s job has been invoked"
|
30
30
|
msgstr ""
|
31
31
|
|
32
|
+
msgid "%s more"
|
33
|
+
msgstr ""
|
34
|
+
|
32
35
|
msgid "%{description} on %{host}"
|
33
36
|
msgstr "%{description} на %{host}"
|
34
37
|
|
@@ -38,9 +41,6 @@ msgstr ""
|
|
38
41
|
msgid "'Starts before' date must in the future"
|
39
42
|
msgstr ""
|
40
43
|
|
41
|
-
msgid ", and %s more"
|
42
|
-
msgstr ""
|
43
|
-
|
44
44
|
msgid "...and %s more"
|
45
45
|
msgstr ""
|
46
46
|
|
@@ -100,6 +100,9 @@ msgstr ""
|
|
100
100
|
msgid "After"
|
101
101
|
msgstr ""
|
102
102
|
|
103
|
+
msgid "After %s occurences"
|
104
|
+
msgstr ""
|
105
|
+
|
103
106
|
msgid "All fields are required."
|
104
107
|
msgstr ""
|
105
108
|
|
@@ -157,7 +160,7 @@ msgstr "bookmark_id и search_query не могут использоваться
|
|
157
160
|
msgid "Categories list failed with:"
|
158
161
|
msgstr ""
|
159
162
|
|
160
|
-
msgid "Category and
|
163
|
+
msgid "Category and template"
|
161
164
|
msgstr ""
|
162
165
|
|
163
166
|
msgid "Choose a job template that is pre-selected in job invocation form"
|
@@ -169,7 +172,7 @@ msgstr "При добавлении входных параметров из «%
|
|
169
172
|
msgid "Cleanup working directories"
|
170
173
|
msgstr ""
|
171
174
|
|
172
|
-
msgid "Clear filters"
|
175
|
+
msgid "Clear all filters"
|
173
176
|
msgstr ""
|
174
177
|
|
175
178
|
msgid "Clear input"
|
@@ -379,6 +382,18 @@ msgstr ""
|
|
379
382
|
msgid "Evaluated at:"
|
380
383
|
msgstr "Обработано:"
|
381
384
|
|
385
|
+
msgid "Every day at %s"
|
386
|
+
msgstr ""
|
387
|
+
|
388
|
+
msgid "Every hour at minute %s"
|
389
|
+
msgstr ""
|
390
|
+
|
391
|
+
msgid "Every month on %s at %s"
|
392
|
+
msgstr ""
|
393
|
+
|
394
|
+
msgid "Every week on %s at %s"
|
395
|
+
msgstr ""
|
396
|
+
|
382
397
|
msgid "Execute the job later, at a scheduled time."
|
383
398
|
msgstr ""
|
384
399
|
|
@@ -739,6 +754,9 @@ msgstr "Организация"
|
|
739
754
|
msgid "Override the description format from the template for this invocation only"
|
740
755
|
msgstr "Переопределить формат описания из шаблона только на время этого вызова"
|
741
756
|
|
757
|
+
msgid "Override the global time to pickup interval for this invocation only"
|
758
|
+
msgstr ""
|
759
|
+
|
742
760
|
msgid "Override the timeout interval from the template for this invocation only"
|
743
761
|
msgstr ""
|
744
762
|
|
@@ -766,9 +784,24 @@ msgstr ""
|
|
766
784
|
msgid "Perform no more executions after this time"
|
767
785
|
msgstr "Остановить после указанного числа повторений"
|
768
786
|
|
787
|
+
msgid "Please enter a search query"
|
788
|
+
msgstr ""
|
789
|
+
|
790
|
+
msgid "Please go back to \\\"Schedule\\\" - \\\"Future execution\\\" step to fix the error"
|
791
|
+
msgstr ""
|
792
|
+
|
769
793
|
msgid "Please refine your search."
|
770
794
|
msgstr ""
|
771
795
|
|
796
|
+
msgid "Please select at least one host"
|
797
|
+
msgstr ""
|
798
|
+
|
799
|
+
msgid "Please select at least one host collection"
|
800
|
+
msgstr ""
|
801
|
+
|
802
|
+
msgid "Please select at least one host group"
|
803
|
+
msgstr ""
|
804
|
+
|
772
805
|
msgid "Port to use for SSH communication. Default port 22. You may override per host by setting a parameter called remote_execution_ssh_port."
|
773
806
|
msgstr ""
|
774
807
|
|
@@ -910,6 +943,12 @@ msgstr "Выполнить задание"
|
|
910
943
|
msgid "Run Puppet Once"
|
911
944
|
msgstr ""
|
912
945
|
|
946
|
+
msgid "Run Script"
|
947
|
+
msgstr ""
|
948
|
+
|
949
|
+
msgid "Run a script"
|
950
|
+
msgstr ""
|
951
|
+
|
913
952
|
msgid "Run at most N tasks at a time"
|
914
953
|
msgstr "Максимальное количество параллельно выполняемых задач"
|
915
954
|
|
@@ -1060,6 +1099,9 @@ msgstr ""
|
|
1060
1099
|
msgid "Starts"
|
1061
1100
|
msgstr "Начало"
|
1062
1101
|
|
1102
|
+
msgid "Starts Before"
|
1103
|
+
msgstr ""
|
1104
|
+
|
1063
1105
|
msgid "Starts at"
|
1064
1106
|
msgstr ""
|
1065
1107
|
|
@@ -1244,7 +1286,7 @@ msgstr "Тип"
|
|
1244
1286
|
msgid "Type has impact on when is the query evaluated to hosts."
|
1245
1287
|
msgstr ""
|
1246
1288
|
|
1247
|
-
msgid "Type has impact on when is the query evaluated to hosts.<br><ul><li><b>Static</b> - evaluates just after you submit this form</li><li><b>Dynamic</b> - evaluates just before the execution is started, so if it's
|
1289
|
+
msgid "Type has impact on when is the query evaluated to hosts.<br><ul><li><b>Static</b> - evaluates just after you submit this form</li><li><b>Dynamic</b> - evaluates just before the execution is started, so if it's planned in future, targeted hosts set may change before it</li></ul>"
|
1248
1290
|
msgstr ""
|
1249
1291
|
|
1250
1292
|
msgid "Type of execution"
|
@@ -1400,7 +1442,7 @@ msgstr "ошибка при обработке шаблонов: %s"
|
|
1400
1442
|
msgid "evaluates just after you submit this form"
|
1401
1443
|
msgstr ""
|
1402
1444
|
|
1403
|
-
msgid "evaluates just before the execution is started, so if it's
|
1445
|
+
msgid "evaluates just before the execution is started, so if it's planned in future, targeted hosts set may change before it"
|
1404
1446
|
msgstr ""
|
1405
1447
|
|
1406
1448
|
msgid "failed"
|
@@ -1484,5 +1526,8 @@ msgstr ""
|
|
1484
1526
|
msgid "using Smart Proxy"
|
1485
1527
|
msgstr ""
|
1486
1528
|
|
1529
|
+
msgid "view host names"
|
1530
|
+
msgstr ""
|
1531
|
+
|
1487
1532
|
msgid "yes"
|
1488
1533
|
msgstr "да"
|
Binary file
|
@@ -26,6 +26,9 @@ msgstr "%s 前"
|
|
26
26
|
msgid "%s job has been invoked"
|
27
27
|
msgstr "%s 任务已被调用"
|
28
28
|
|
29
|
+
msgid "%s more"
|
30
|
+
msgstr ""
|
31
|
+
|
29
32
|
msgid "%{description} on %{host}"
|
30
33
|
msgstr "%{host} 的 %{description}"
|
31
34
|
|
@@ -35,9 +38,6 @@ msgstr ""
|
|
35
38
|
msgid "'Starts before' date must in the future"
|
36
39
|
msgstr ""
|
37
40
|
|
38
|
-
msgid ", and %s more"
|
39
|
-
msgstr ", 和 %s 个更多"
|
40
|
-
|
41
41
|
msgid "...and %s more"
|
42
42
|
msgstr "...和 %s 个更多"
|
43
43
|
|
@@ -96,6 +96,9 @@ msgstr "高级项"
|
|
96
96
|
msgid "After"
|
97
97
|
msgstr ""
|
98
98
|
|
99
|
+
msgid "After %s occurences"
|
100
|
+
msgstr ""
|
101
|
+
|
99
102
|
msgid "All fields are required."
|
100
103
|
msgstr "各个项都需要。"
|
101
104
|
|
@@ -153,8 +156,8 @@ msgstr "无法同时指定 bookmark_id 和 search_query"
|
|
153
156
|
msgid "Categories list failed with:"
|
154
157
|
msgstr "类别列表失败并带有:"
|
155
158
|
|
156
|
-
msgid "Category and
|
157
|
-
msgstr "
|
159
|
+
msgid "Category and template"
|
160
|
+
msgstr ""
|
158
161
|
|
159
162
|
msgid "Choose a job template that is pre-selected in job invocation form"
|
160
163
|
msgstr "选择在作业调用表单中预先选择的作业模板"
|
@@ -165,8 +168,8 @@ msgstr "在外部输入设置中发现了循环的依赖关系 '%{template}' ->
|
|
165
168
|
msgid "Cleanup working directories"
|
166
169
|
msgstr "清理工作目录"
|
167
170
|
|
168
|
-
msgid "Clear filters"
|
169
|
-
msgstr "
|
171
|
+
msgid "Clear all filters"
|
172
|
+
msgstr ""
|
170
173
|
|
171
174
|
msgid "Clear input"
|
172
175
|
msgstr ""
|
@@ -375,6 +378,18 @@ msgstr "错误:"
|
|
375
378
|
msgid "Evaluated at:"
|
376
379
|
msgstr "评估于:"
|
377
380
|
|
381
|
+
msgid "Every day at %s"
|
382
|
+
msgstr ""
|
383
|
+
|
384
|
+
msgid "Every hour at minute %s"
|
385
|
+
msgstr ""
|
386
|
+
|
387
|
+
msgid "Every month on %s at %s"
|
388
|
+
msgstr ""
|
389
|
+
|
390
|
+
msgid "Every week on %s at %s"
|
391
|
+
msgstr ""
|
392
|
+
|
378
393
|
msgid "Execute the job later, at a scheduled time."
|
379
394
|
msgstr ""
|
380
395
|
|
@@ -735,6 +750,9 @@ msgstr "机构"
|
|
735
750
|
msgid "Override the description format from the template for this invocation only"
|
736
751
|
msgstr "只为此调用覆盖来自模板的描述格式"
|
737
752
|
|
753
|
+
msgid "Override the global time to pickup interval for this invocation only"
|
754
|
+
msgstr ""
|
755
|
+
|
738
756
|
msgid "Override the timeout interval from the template for this invocation only"
|
739
757
|
msgstr "只为此调用使用该模板覆盖超时间隔"
|
740
758
|
|
@@ -762,9 +780,24 @@ msgstr "执行一个单独 Puppet 运行"
|
|
762
780
|
msgid "Perform no more executions after this time"
|
763
781
|
msgstr "在此时间后不再执行"
|
764
782
|
|
783
|
+
msgid "Please enter a search query"
|
784
|
+
msgstr ""
|
785
|
+
|
786
|
+
msgid "Please go back to \\\"Schedule\\\" - \\\"Future execution\\\" step to fix the error"
|
787
|
+
msgstr ""
|
788
|
+
|
765
789
|
msgid "Please refine your search."
|
766
790
|
msgstr "请重新调整您的搜索。"
|
767
791
|
|
792
|
+
msgid "Please select at least one host"
|
793
|
+
msgstr ""
|
794
|
+
|
795
|
+
msgid "Please select at least one host collection"
|
796
|
+
msgstr ""
|
797
|
+
|
798
|
+
msgid "Please select at least one host group"
|
799
|
+
msgstr ""
|
800
|
+
|
768
801
|
msgid "Port to use for SSH communication. Default port 22. You may override per host by setting a parameter called remote_execution_ssh_port."
|
769
802
|
msgstr "要用于 SSH 通信的端口。默认端口 22。您可以通过设置名为 remote_execution_ssh_port 的参数来按主机进行覆盖。"
|
770
803
|
|
@@ -906,6 +939,12 @@ msgstr "运行作业"
|
|
906
939
|
msgid "Run Puppet Once"
|
907
940
|
msgstr "运行 Puppet 一次"
|
908
941
|
|
942
|
+
msgid "Run Script"
|
943
|
+
msgstr ""
|
944
|
+
|
945
|
+
msgid "Run a script"
|
946
|
+
msgstr ""
|
947
|
+
|
909
948
|
msgid "Run at most N tasks at a time"
|
910
949
|
msgstr "一次最多运行 N 个任务"
|
911
950
|
|
@@ -1056,6 +1095,9 @@ msgstr "已启动"
|
|
1056
1095
|
msgid "Starts"
|
1057
1096
|
msgstr "开始"
|
1058
1097
|
|
1098
|
+
msgid "Starts Before"
|
1099
|
+
msgstr ""
|
1100
|
+
|
1059
1101
|
msgid "Starts at"
|
1060
1102
|
msgstr "开始于"
|
1061
1103
|
|
@@ -1237,8 +1279,8 @@ msgstr "类型"
|
|
1237
1279
|
msgid "Type has impact on when is the query evaluated to hosts."
|
1238
1280
|
msgstr "类型会影响到什么时候会评估到主机。"
|
1239
1281
|
|
1240
|
-
msgid "Type has impact on when is the query evaluated to hosts.<br><ul><li><b>Static</b> - evaluates just after you submit this form</li><li><b>Dynamic</b> - evaluates just before the execution is started, so if it's
|
1241
|
-
msgstr "
|
1282
|
+
msgid "Type has impact on when is the query evaluated to hosts.<br><ul><li><b>Static</b> - evaluates just after you submit this form</li><li><b>Dynamic</b> - evaluates just before the execution is started, so if it's planned in future, targeted hosts set may change before it</li></ul>"
|
1283
|
+
msgstr ""
|
1242
1284
|
|
1243
1285
|
msgid "Type of execution"
|
1244
1286
|
msgstr ""
|
@@ -1393,8 +1435,8 @@ msgstr "呈现时出错:%s"
|
|
1393
1435
|
msgid "evaluates just after you submit this form"
|
1394
1436
|
msgstr "提交此表单后评估"
|
1395
1437
|
|
1396
|
-
msgid "evaluates just before the execution is started, so if it's
|
1397
|
-
msgstr "
|
1438
|
+
msgid "evaluates just before the execution is started, so if it's planned in future, targeted hosts set may change before it"
|
1439
|
+
msgstr ""
|
1398
1440
|
|
1399
1441
|
msgid "failed"
|
1400
1442
|
msgstr "失败"
|
@@ -1477,5 +1519,8 @@ msgstr "使用 "
|
|
1477
1519
|
msgid "using Smart Proxy"
|
1478
1520
|
msgstr "使用智能代理"
|
1479
1521
|
|
1522
|
+
msgid "view host names"
|
1523
|
+
msgstr ""
|
1524
|
+
|
1480
1525
|
msgid "yes"
|
1481
1526
|
msgstr "是"
|
@@ -26,6 +26,9 @@ msgstr "%s 之前"
|
|
26
26
|
msgid "%s job has been invoked"
|
27
27
|
msgstr ""
|
28
28
|
|
29
|
+
msgid "%s more"
|
30
|
+
msgstr ""
|
31
|
+
|
29
32
|
msgid "%{description} on %{host}"
|
30
33
|
msgstr "%{description} 於 %{host} 之上"
|
31
34
|
|
@@ -35,9 +38,6 @@ msgstr ""
|
|
35
38
|
msgid "'Starts before' date must in the future"
|
36
39
|
msgstr ""
|
37
40
|
|
38
|
-
msgid ", and %s more"
|
39
|
-
msgstr ""
|
40
|
-
|
41
41
|
msgid "...and %s more"
|
42
42
|
msgstr ""
|
43
43
|
|
@@ -97,6 +97,9 @@ msgstr ""
|
|
97
97
|
msgid "After"
|
98
98
|
msgstr ""
|
99
99
|
|
100
|
+
msgid "After %s occurences"
|
101
|
+
msgstr ""
|
102
|
+
|
100
103
|
msgid "All fields are required."
|
101
104
|
msgstr ""
|
102
105
|
|
@@ -154,7 +157,7 @@ msgstr "無法指定 bookmark_id 和 search_query"
|
|
154
157
|
msgid "Categories list failed with:"
|
155
158
|
msgstr ""
|
156
159
|
|
157
|
-
msgid "Category and
|
160
|
+
msgid "Category and template"
|
158
161
|
msgstr ""
|
159
162
|
|
160
163
|
msgid "Choose a job template that is pre-selected in job invocation form"
|
@@ -166,7 +169,7 @@ msgstr "在外部輸入集偵測到環狀相依性: '%{template}' -> '%{target
|
|
166
169
|
msgid "Cleanup working directories"
|
167
170
|
msgstr ""
|
168
171
|
|
169
|
-
msgid "Clear filters"
|
172
|
+
msgid "Clear all filters"
|
170
173
|
msgstr ""
|
171
174
|
|
172
175
|
msgid "Clear input"
|
@@ -376,6 +379,18 @@ msgstr ""
|
|
376
379
|
msgid "Evaluated at:"
|
377
380
|
msgstr "評量於:"
|
378
381
|
|
382
|
+
msgid "Every day at %s"
|
383
|
+
msgstr ""
|
384
|
+
|
385
|
+
msgid "Every hour at minute %s"
|
386
|
+
msgstr ""
|
387
|
+
|
388
|
+
msgid "Every month on %s at %s"
|
389
|
+
msgstr ""
|
390
|
+
|
391
|
+
msgid "Every week on %s at %s"
|
392
|
+
msgstr ""
|
393
|
+
|
379
394
|
msgid "Execute the job later, at a scheduled time."
|
380
395
|
msgstr ""
|
381
396
|
|
@@ -736,6 +751,9 @@ msgstr "組織"
|
|
736
751
|
msgid "Override the description format from the template for this invocation only"
|
737
752
|
msgstr "僅為這祈願從範本覆寫描述格式"
|
738
753
|
|
754
|
+
msgid "Override the global time to pickup interval for this invocation only"
|
755
|
+
msgstr ""
|
756
|
+
|
739
757
|
msgid "Override the timeout interval from the template for this invocation only"
|
740
758
|
msgstr ""
|
741
759
|
|
@@ -763,9 +781,24 @@ msgstr ""
|
|
763
781
|
msgid "Perform no more executions after this time"
|
764
782
|
msgstr "此時間之後不再進行任何執行"
|
765
783
|
|
784
|
+
msgid "Please enter a search query"
|
785
|
+
msgstr ""
|
786
|
+
|
787
|
+
msgid "Please go back to \\\"Schedule\\\" - \\\"Future execution\\\" step to fix the error"
|
788
|
+
msgstr ""
|
789
|
+
|
766
790
|
msgid "Please refine your search."
|
767
791
|
msgstr ""
|
768
792
|
|
793
|
+
msgid "Please select at least one host"
|
794
|
+
msgstr ""
|
795
|
+
|
796
|
+
msgid "Please select at least one host collection"
|
797
|
+
msgstr ""
|
798
|
+
|
799
|
+
msgid "Please select at least one host group"
|
800
|
+
msgstr ""
|
801
|
+
|
769
802
|
msgid "Port to use for SSH communication. Default port 22. You may override per host by setting a parameter called remote_execution_ssh_port."
|
770
803
|
msgstr ""
|
771
804
|
|
@@ -907,6 +940,12 @@ msgstr "執行工作"
|
|
907
940
|
msgid "Run Puppet Once"
|
908
941
|
msgstr ""
|
909
942
|
|
943
|
+
msgid "Run Script"
|
944
|
+
msgstr ""
|
945
|
+
|
946
|
+
msgid "Run a script"
|
947
|
+
msgstr ""
|
948
|
+
|
910
949
|
msgid "Run at most N tasks at a time"
|
911
950
|
msgstr "一次最多執行 N 個任務"
|
912
951
|
|
@@ -1057,6 +1096,9 @@ msgstr ""
|
|
1057
1096
|
msgid "Starts"
|
1058
1097
|
msgstr "起始"
|
1059
1098
|
|
1099
|
+
msgid "Starts Before"
|
1100
|
+
msgstr ""
|
1101
|
+
|
1060
1102
|
msgid "Starts at"
|
1061
1103
|
msgstr ""
|
1062
1104
|
|
@@ -1239,7 +1281,7 @@ msgstr "類型"
|
|
1239
1281
|
msgid "Type has impact on when is the query evaluated to hosts."
|
1240
1282
|
msgstr ""
|
1241
1283
|
|
1242
|
-
msgid "Type has impact on when is the query evaluated to hosts.<br><ul><li><b>Static</b> - evaluates just after you submit this form</li><li><b>Dynamic</b> - evaluates just before the execution is started, so if it's
|
1284
|
+
msgid "Type has impact on when is the query evaluated to hosts.<br><ul><li><b>Static</b> - evaluates just after you submit this form</li><li><b>Dynamic</b> - evaluates just before the execution is started, so if it's planned in future, targeted hosts set may change before it</li></ul>"
|
1243
1285
|
msgstr ""
|
1244
1286
|
|
1245
1287
|
msgid "Type of execution"
|
@@ -1395,7 +1437,7 @@ msgstr "處理時發生錯誤:%s"
|
|
1395
1437
|
msgid "evaluates just after you submit this form"
|
1396
1438
|
msgstr ""
|
1397
1439
|
|
1398
|
-
msgid "evaluates just before the execution is started, so if it's
|
1440
|
+
msgid "evaluates just before the execution is started, so if it's planned in future, targeted hosts set may change before it"
|
1399
1441
|
msgstr ""
|
1400
1442
|
|
1401
1443
|
msgid "failed"
|
@@ -1479,5 +1521,8 @@ msgstr ""
|
|
1479
1521
|
msgid "using Smart Proxy"
|
1480
1522
|
msgstr ""
|
1481
1523
|
|
1524
|
+
msgid "view host names"
|
1525
|
+
msgstr ""
|
1526
|
+
|
1482
1527
|
msgid "yes"
|
1483
1528
|
msgstr "是"
|
@@ -0,0 +1,104 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { useSelector } from 'react-redux';
|
3
|
+
import PropTypes from 'prop-types';
|
4
|
+
import {
|
5
|
+
Button,
|
6
|
+
WizardFooter,
|
7
|
+
WizardContextConsumer,
|
8
|
+
Tooltip,
|
9
|
+
Spinner,
|
10
|
+
} from '@patternfly/react-core';
|
11
|
+
import { translate as __ } from 'foremanReact/common/I18n';
|
12
|
+
import { WIZARD_TITLES } from './JobWizardConstants';
|
13
|
+
import { selectIsSubmitting } from './JobWizardSelectors';
|
14
|
+
|
15
|
+
export const Footer = ({ canSubmit, onSave }) => {
|
16
|
+
const isSubmitting = useSelector(selectIsSubmitting);
|
17
|
+
return (
|
18
|
+
<WizardFooter>
|
19
|
+
<WizardContextConsumer>
|
20
|
+
{({ activeStep, onNext, onBack, onClose, goToStepByName }) => {
|
21
|
+
const isValid =
|
22
|
+
activeStep && activeStep.enableNext !== undefined
|
23
|
+
? activeStep.enableNext
|
24
|
+
: true;
|
25
|
+
|
26
|
+
return (
|
27
|
+
<>
|
28
|
+
<Button
|
29
|
+
variant="primary"
|
30
|
+
type="submit"
|
31
|
+
onClick={onNext}
|
32
|
+
isDisabled={!isValid || isSubmitting}
|
33
|
+
>
|
34
|
+
{activeStep.name === WIZARD_TITLES.review
|
35
|
+
? __('Submit')
|
36
|
+
: __('Next')}
|
37
|
+
</Button>
|
38
|
+
<Button
|
39
|
+
variant="secondary"
|
40
|
+
onClick={onBack}
|
41
|
+
isDisabled={
|
42
|
+
activeStep.name === WIZARD_TITLES.categoryAndTemplate
|
43
|
+
}
|
44
|
+
>
|
45
|
+
{__('Back')}
|
46
|
+
</Button>
|
47
|
+
<Tooltip
|
48
|
+
content={
|
49
|
+
<div>
|
50
|
+
{canSubmit
|
51
|
+
? __('Start job')
|
52
|
+
: __('Fill all required fields in all the steps')}
|
53
|
+
</div>
|
54
|
+
}
|
55
|
+
>
|
56
|
+
<Button
|
57
|
+
variant="tertiary"
|
58
|
+
onClick={onSave}
|
59
|
+
isAriaDisabled={!canSubmit}
|
60
|
+
isDisabled={isSubmitting}
|
61
|
+
>
|
62
|
+
{__('Run on selected hosts')}
|
63
|
+
</Button>
|
64
|
+
</Tooltip>
|
65
|
+
<Tooltip
|
66
|
+
content={
|
67
|
+
<div>
|
68
|
+
{canSubmit
|
69
|
+
? __('Skip to review step')
|
70
|
+
: __(
|
71
|
+
'Fill all required fields in all the steps to start the job'
|
72
|
+
)}
|
73
|
+
</div>
|
74
|
+
}
|
75
|
+
>
|
76
|
+
<Button
|
77
|
+
variant="tertiary"
|
78
|
+
onClick={() => goToStepByName(WIZARD_TITLES.review)}
|
79
|
+
isAriaDisabled={!canSubmit}
|
80
|
+
isDisabled={isSubmitting}
|
81
|
+
>
|
82
|
+
{__('Skip to review')}
|
83
|
+
</Button>
|
84
|
+
</Tooltip>
|
85
|
+
<Button variant="link" onClick={onClose}>
|
86
|
+
{__('Cancel')}
|
87
|
+
</Button>
|
88
|
+
{isSubmitting && (
|
89
|
+
<div>
|
90
|
+
<Spinner size="lg" />
|
91
|
+
</div>
|
92
|
+
)}
|
93
|
+
</>
|
94
|
+
);
|
95
|
+
}}
|
96
|
+
</WizardContextConsumer>
|
97
|
+
</WizardFooter>
|
98
|
+
);
|
99
|
+
};
|
100
|
+
|
101
|
+
Footer.propTypes = {
|
102
|
+
canSubmit: PropTypes.bool.isRequired,
|
103
|
+
onSave: PropTypes.func.isRequired,
|
104
|
+
};
|
@@ -37,6 +37,7 @@ import { useAutoFill } from './autofill';
|
|
37
37
|
import { submit } from './submit';
|
38
38
|
import { generateDefaultDescription } from './JobWizardHelpers';
|
39
39
|
import { StartsBeforeErrorAlert } from './StartsBeforeErrorAlert';
|
40
|
+
import { Footer } from './Footer';
|
40
41
|
import './JobWizard.scss';
|
41
42
|
|
42
43
|
export const JobWizard = ({ rerunData }) => {
|
@@ -420,6 +421,22 @@ export const JobWizard = ({ rerunData }) => {
|
|
420
421
|
];
|
421
422
|
const location = useForemanLocation();
|
422
423
|
const organization = useForemanOrganization();
|
424
|
+
const onSave = () => {
|
425
|
+
submit({
|
426
|
+
jobTemplateID,
|
427
|
+
templateValues,
|
428
|
+
advancedValues,
|
429
|
+
scheduleValue,
|
430
|
+
dispatch,
|
431
|
+
selectedTargets,
|
432
|
+
hostsSearchQuery,
|
433
|
+
location,
|
434
|
+
organization,
|
435
|
+
feature: routerSearch?.feature,
|
436
|
+
provider: templateResponse.provider_name,
|
437
|
+
advancedInputs: templateResponse.advanced_template_inputs,
|
438
|
+
});
|
439
|
+
};
|
423
440
|
return (
|
424
441
|
<>
|
425
442
|
{isStartsBeforeError && <StartsBeforeErrorAlert />}
|
@@ -429,22 +446,13 @@ export const JobWizard = ({ rerunData }) => {
|
|
429
446
|
steps={steps}
|
430
447
|
height="100%"
|
431
448
|
className="job-wizard"
|
432
|
-
onSave={
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
selectedTargets,
|
440
|
-
hostsSearchQuery,
|
441
|
-
location,
|
442
|
-
organization,
|
443
|
-
feature: routerSearch?.feature,
|
444
|
-
provider: templateResponse.provider_name,
|
445
|
-
advancedInputs: templateResponse.advanced_template_inputs,
|
446
|
-
});
|
447
|
-
}}
|
449
|
+
onSave={onSave}
|
450
|
+
footer={
|
451
|
+
<Footer
|
452
|
+
canSubmit={!!steps[steps.length - 1].enableNext}
|
453
|
+
onSave={onSave}
|
454
|
+
/>
|
455
|
+
}
|
448
456
|
/>
|
449
457
|
</>
|
450
458
|
);
|
@@ -6,20 +6,15 @@
|
|
6
6
|
|
7
7
|
.pf-c-wizard__nav.pf-m-expanded {
|
8
8
|
z-index: calc(
|
9
|
-
var(--pf-c-
|
10
|
-
); // So the small screen navigation can be shown above the select box
|
9
|
+
var(--pf-c-wizard__toggle--ZIndex) + 2
|
10
|
+
); // So the small screen navigation can be shown above the select box and wizard body
|
11
11
|
}
|
12
12
|
|
13
13
|
.pf-c-wizard__main {
|
14
14
|
overflow: visible;
|
15
15
|
z-index: calc(
|
16
|
-
var(--pf-c-
|
17
|
-
); // So the select box can be shown above the wizard footer
|
18
|
-
}
|
19
|
-
.pf-c-wizard__nav {
|
20
|
-
z-index: calc(
|
21
|
-
var(--pf-c-wizard__footer--ZIndex) + 2
|
22
|
-
); // So the navigation box can be shown above the wizard body
|
16
|
+
var(--pf-c-wizard__toggle--ZIndex) + 1
|
17
|
+
); // So the select box can be shown above the wizard footer and navigation toggle
|
23
18
|
}
|
24
19
|
.pf-c-wizard__main-body {
|
25
20
|
max-width: 500px;
|
@@ -34,14 +29,8 @@
|
|
34
29
|
}
|
35
30
|
|
36
31
|
.target-hosts-and-inputs {
|
37
|
-
.
|
38
|
-
margin-
|
39
|
-
float: left;
|
40
|
-
clear: left;
|
41
|
-
display: block;
|
42
|
-
}
|
43
|
-
.clear-chips {
|
44
|
-
margin-top: 8px;
|
32
|
+
.pf-c-chip-group.pf-m-category {
|
33
|
+
margin-bottom: 10px;
|
45
34
|
}
|
46
35
|
.pf-c-select__toggle-typeahead {
|
47
36
|
border: 0px;
|
@@ -23,7 +23,7 @@ export const SCHEDULE_TYPES = {
|
|
23
23
|
};
|
24
24
|
|
25
25
|
export const WIZARD_TITLES = {
|
26
|
-
categoryAndTemplate: __('Category and
|
26
|
+
categoryAndTemplate: __('Category and template'),
|
27
27
|
hostsAndInputs: __('Target hosts and inputs'),
|
28
28
|
advanced: __('Advanced fields'),
|
29
29
|
schedule: __('Schedule'),
|
@@ -86,6 +86,7 @@ const JobWizardPageRerun = ({
|
|
86
86
|
<React.Fragment>
|
87
87
|
{jobOrganization?.id !== currentOrganization?.id && (
|
88
88
|
<Alert
|
89
|
+
isInline
|
89
90
|
className="job-wizard-alert"
|
90
91
|
variant="warning"
|
91
92
|
title={sprintf(
|
@@ -99,6 +100,7 @@ const JobWizardPageRerun = ({
|
|
99
100
|
)}
|
100
101
|
{jobLocation?.id !== currentLocation?.id && (
|
101
102
|
<Alert
|
103
|
+
isInline
|
102
104
|
className="job-wizard-alert"
|
103
105
|
variant="warning"
|
104
106
|
title={sprintf(
|