foreman_remote_execution 3.0.2 → 3.2.2

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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/.hound.yml +2 -1
  3. data/.rubocop.yml +80 -50
  4. data/.rubocop_todo.yml +113 -73
  5. data/Gemfile +4 -0
  6. data/app/controllers/api/v2/foreign_input_sets_controller.rb +3 -2
  7. data/app/controllers/api/v2/job_invocations_controller.rb +12 -7
  8. data/app/controllers/api/v2/job_templates_controller.rb +3 -2
  9. data/app/controllers/api/v2/remote_execution_features_controller.rb +3 -2
  10. data/app/controllers/api/v2/template_invocations_controller.rb +5 -2
  11. data/app/controllers/cockpit_controller.rb +1 -0
  12. data/app/controllers/concerns/foreman/controller/parameters/foreign_input_set.rb +1 -1
  13. data/app/controllers/concerns/foreman/controller/parameters/job_template.rb +4 -4
  14. data/app/controllers/job_invocations_controller.rb +10 -6
  15. data/app/controllers/job_templates_controller.rb +1 -1
  16. data/app/controllers/remote_execution_features_controller.rb +3 -2
  17. data/app/helpers/concerns/foreman_remote_execution/hosts_helper_extensions.rb +16 -5
  18. data/app/helpers/job_invocations_chart_helper.rb +13 -10
  19. data/app/helpers/job_invocations_helper.rb +19 -6
  20. data/app/helpers/remote_execution_helper.rb +49 -48
  21. data/app/lib/actions/remote_execution/run_host_job.rb +5 -6
  22. data/app/lib/actions/remote_execution/run_hosts_job.rb +2 -2
  23. data/app/lib/foreman_remote_execution/renderer/scope/input.rb +1 -0
  24. data/app/lib/proxy_api/remote_execution_ssh.rb +6 -0
  25. data/app/models/concerns/foreman_remote_execution/errors_flattener.rb +0 -2
  26. data/app/models/concerns/foreman_remote_execution/host_extensions.rb +4 -6
  27. data/app/models/concerns/foreman_remote_execution/nic_extensions.rb +1 -0
  28. data/app/models/concerns/foreman_remote_execution/orchestration/ssh.rb +63 -0
  29. data/app/models/concerns/foreman_remote_execution/smart_proxy_extensions.rb +5 -0
  30. data/app/models/foreign_input_set.rb +3 -2
  31. data/app/models/host_status/execution_status.rb +9 -1
  32. data/app/models/input_template_renderer.rb +1 -1
  33. data/app/models/job_invocation.rb +10 -12
  34. data/app/models/job_invocation_composer.rb +20 -14
  35. data/app/models/job_invocation_task_group.rb +1 -1
  36. data/app/models/job_template.rb +3 -3
  37. data/app/models/remote_execution_feature.rb +0 -2
  38. data/app/models/remote_execution_provider.rb +4 -2
  39. data/app/models/setting/remote_execution.rb +54 -56
  40. data/app/models/ssh_execution_provider.rb +2 -2
  41. data/app/models/targeting.rb +1 -0
  42. data/app/models/template_invocation.rb +2 -3
  43. data/app/views/api/v2/job_invocations/base.json.rabl +1 -1
  44. data/app/views/api/v2/job_invocations/main.json.rabl +7 -4
  45. data/app/views/job_invocations/_card_results.html.erb +1 -0
  46. data/app/views/job_invocations/_card_target_hosts.html.erb +12 -0
  47. data/app/views/job_invocations/_card_user_input.html.erb +1 -1
  48. data/app/views/job_invocations/_form.html.erb +3 -2
  49. data/app/views/job_invocations/_host_status_td.html.erb +1 -1
  50. data/app/views/job_invocations/_rerun_taxonomies.html.erb +22 -0
  51. data/app/views/job_invocations/_tab_overview.html.erb +1 -1
  52. data/app/views/job_invocations/_user_input.html.erb +1 -1
  53. data/app/views/job_invocations/show.html.erb +3 -1
  54. data/config/routes.rb +2 -1
  55. data/db/migrate/20151215114631_add_host_id_to_template_invocation.rb +1 -0
  56. data/db/migrate/20180110104432_rename_template_invocation_permission.rb +1 -0
  57. data/db/seeds.d/50-notification_blueprints.rb +4 -4
  58. data/db/seeds.d/90-bookmarks.rb +1 -0
  59. data/extra/cockpit/foreman-cockpit-session +7 -2
  60. data/foreman_remote_execution.gemspec +1 -1
  61. data/lib/foreman_remote_execution/engine.rb +20 -17
  62. data/lib/foreman_remote_execution/version.rb +1 -1
  63. data/locale/action_names.rb +4 -3
  64. data/locale/de/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  65. data/locale/de/foreman_remote_execution.po +65 -16
  66. data/locale/en/foreman_remote_execution.po +63 -15
  67. data/locale/en_GB/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  68. data/locale/en_GB/foreman_remote_execution.po +64 -15
  69. data/locale/es/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  70. data/locale/es/foreman_remote_execution.po +66 -17
  71. data/locale/foreman_remote_execution.pot +193 -148
  72. data/locale/fr/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  73. data/locale/fr/foreman_remote_execution.po +66 -17
  74. data/locale/ja/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  75. data/locale/ja/foreman_remote_execution.po +66 -17
  76. data/locale/ko/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  77. data/locale/ko/foreman_remote_execution.po +65 -15
  78. data/locale/pt_BR/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  79. data/locale/pt_BR/foreman_remote_execution.po +66 -17
  80. data/locale/ru/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  81. data/locale/ru/foreman_remote_execution.po +65 -18
  82. data/locale/zh_CN/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  83. data/locale/zh_CN/foreman_remote_execution.po +66 -17
  84. data/locale/zh_TW/LC_MESSAGES/foreman_remote_execution.mo +0 -0
  85. data/locale/zh_TW/foreman_remote_execution.po +65 -16
  86. data/package.json +2 -3
  87. data/test/benchmark/run_hosts_job_benchmark.rb +1 -1
  88. data/test/factories/foreman_remote_execution_factories.rb +1 -1
  89. data/test/functional/api/v2/job_invocations_controller_test.rb +51 -23
  90. data/test/functional/api/v2/job_templates_controller_test.rb +1 -1
  91. data/test/functional/api/v2/remote_execution_features_controller_test.rb +2 -2
  92. data/test/functional/api/v2/template_invocations_controller_test.rb +4 -4
  93. data/test/functional/job_invocations_controller_test.rb +23 -11
  94. data/test/functional/job_templates_controller_test.rb +1 -1
  95. data/test/models/orchestration/ssh_test.rb +56 -0
  96. data/test/unit/actions/run_hosts_job_test.rb +8 -8
  97. data/test/unit/concerns/foreman_tasks_cleaner_extensions_test.rb +3 -3
  98. data/test/unit/concerns/host_extensions_test.rb +26 -19
  99. data/test/unit/concerns/nic_extensions_test.rb +1 -1
  100. data/test/unit/execution_task_status_mapper_test.rb +10 -10
  101. data/test/unit/input_template_renderer_test.rb +77 -77
  102. data/test/unit/job_invocation_composer_test.rb +100 -96
  103. data/test/unit/job_invocation_test.rb +29 -29
  104. data/test/unit/job_template_effective_user_test.rb +3 -3
  105. data/test/unit/job_template_test.rb +31 -31
  106. data/test/unit/remote_execution_feature_test.rb +19 -19
  107. data/test/unit/remote_execution_provider_test.rb +33 -30
  108. data/test/unit/renderer_scope_input.rb +6 -6
  109. data/test/unit/targeting_test.rb +6 -6
  110. data/test/unit/template_invocation_input_value_test.rb +3 -3
  111. data/webpack/index.js +0 -15
  112. metadata +8 -4
@@ -10,6 +10,7 @@ Bookmark.without_auditing do
10
10
  next if Bookmark.where(:controller => 'job_invocations').find_by(name: input[:name])
11
11
  # TODO audit should be fixed once core #13109 gets merged
12
12
  next if SeedHelper.audit_modified? Bookmark, input[:name]
13
+
13
14
  attributes = { :public => true }.merge(input)
14
15
  b = Bookmark.where(:name => input[:name], :controller => input[:controller]).first || Bookmark.new
15
16
  b.attributes = attributes
@@ -44,9 +44,11 @@ end
44
44
  def read_control
45
45
  size = $stdin.readline.chomp.to_i
46
46
  raise ArgumentError, "Invalid frame: invalid size" if size.zero?
47
+
47
48
  data = $stdin.read(size)
48
49
  LOG.debug("Received control message #{data.lstrip}")
49
50
  raise ArgumentError, "Invalid frame: too short" if data.nil? || data.length < size
51
+
50
52
  JSON.parse(data)
51
53
  end
52
54
 
@@ -67,6 +69,7 @@ def read_auth_reply
67
69
  cmd = read_control
68
70
  response = cmd["response"]
69
71
  raise ArgumentError, "Did not receive a valid authorize command" if cmd["command"] != "authorize" || !response
72
+
70
73
  response
71
74
  end
72
75
 
@@ -112,8 +115,8 @@ def foreman_call(path, token)
112
115
  return JSON.parse(res.body)
113
116
  when "401"
114
117
  exit_with_problem("authentication-failed",
115
- "Token was not valid",
116
- { "password" => "not-tried", "token" => "denied" })
118
+ "Token was not valid",
119
+ { "password" => "not-tried", "token" => "denied" })
117
120
  when "404"
118
121
  return nil
119
122
  else
@@ -135,6 +138,7 @@ def ssh_read_and_handle_response_header(sock, url, params)
135
138
  loop do
136
139
  line = sock.readline
137
140
  break unless line && (line != "\r\n")
141
+
138
142
  header += line
139
143
  end
140
144
 
@@ -262,6 +266,7 @@ def ssh_with_proxy(proxy, params)
262
266
  end
263
267
 
264
268
  next unless w.include?($stdout)
269
+
265
270
  n = $stdout.write(out_buf)
266
271
  $stdout.flush
267
272
  out_buf = out_buf[n..-1]
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.extra_rdoc_files = Dir['README*', 'LICENSE']
26
26
 
27
27
  s.add_dependency 'deface'
28
- s.add_dependency 'dynflow', '>= 1.0.1', '< 2.0.0'
28
+ s.add_dependency 'dynflow', '>= 1.0.2', '< 2.0.0'
29
29
  s.add_dependency 'foreman_remote_execution_core'
30
30
  s.add_dependency 'foreman-tasks', '>= 0.15.1'
31
31
 
@@ -78,7 +78,7 @@ module ForemanRemoteExecution
78
78
  permission :cancel_job_invocations, { :job_invocations => [:cancel], 'api/v2/job_invocations' => [:cancel] }, :resource_type => 'JobInvocation'
79
79
  # this permissions grants user to get auto completion hints when setting up filters
80
80
  permission :filter_autocompletion_for_template_invocation, { :template_invocations => [ :auto_complete_search, :index ] },
81
- :resource_type => 'TemplateInvocation'
81
+ :resource_type => 'TemplateInvocation'
82
82
  permission :cockpit_hosts, { 'cockpit' => [:redirect, :host_ssh_params] }, :resource_type => 'Host'
83
83
  end
84
84
 
@@ -88,7 +88,7 @@ module ForemanRemoteExecution
88
88
  :create_job_invocations,
89
89
  :create_template_invocations,
90
90
  :view_hosts,
91
- :view_smart_proxies
91
+ :view_smart_proxies,
92
92
  ].freeze
93
93
  MANAGER_PERMISSIONS = USER_PERMISSIONS + [
94
94
  :cancel_job_invocations,
@@ -98,32 +98,32 @@ module ForemanRemoteExecution
98
98
  :lock_job_templates,
99
99
  :view_audit_logs,
100
100
  :filter_autocompletion_for_template_invocation,
101
- :edit_remote_execution_features
101
+ :edit_remote_execution_features,
102
102
  ]
103
103
 
104
104
  # Add a new role called 'Remote Execution User ' if it doesn't exist
105
- role 'Remote Execution User', USER_PERMISSIONS
106
- role 'Remote Execution Manager', MANAGER_PERMISSIONS
105
+ role 'Remote Execution User', USER_PERMISSIONS, 'Role with permissions to run remote execution jobs against hosts'
106
+ role 'Remote Execution Manager', MANAGER_PERMISSIONS, 'Role with permissions to manage job templates, remote execution features, cancel jobs and view audit logs'
107
107
 
108
108
  add_all_permissions_to_default_roles
109
109
 
110
110
  # add menu entry
111
111
  menu :top_menu, :job_templates,
112
- url_hash: { controller: :job_templates, action: :index },
113
- caption: N_('Job templates'),
114
- parent: :hosts_menu,
115
- after: :provisioning_templates
112
+ url_hash: { controller: :job_templates, action: :index },
113
+ caption: N_('Job templates'),
114
+ parent: :hosts_menu,
115
+ after: :provisioning_templates
116
116
  menu :admin_menu, :remote_execution_features,
117
- url_hash: { controller: :remote_execution_features, action: :index },
118
- caption: N_('Remote Execution Features'),
119
- parent: :administer_menu,
120
- after: :bookmarks
117
+ url_hash: { controller: :remote_execution_features, action: :index },
118
+ caption: N_('Remote Execution Features'),
119
+ parent: :administer_menu,
120
+ after: :bookmarks
121
121
 
122
122
  menu :top_menu, :job_invocations,
123
- url_hash: { controller: :job_invocations, action: :index },
124
- caption: N_('Jobs'),
125
- parent: :monitor_menu,
126
- after: :audits
123
+ url_hash: { controller: :job_invocations, action: :index },
124
+ caption: N_('Jobs'),
125
+ parent: :monitor_menu,
126
+ after: :audits
127
127
 
128
128
  register_custom_status HostStatus::ExecutionStatus
129
129
  # add dashboard widget
@@ -135,6 +135,7 @@ module ForemanRemoteExecution
135
135
  end
136
136
 
137
137
  extend_rabl_template 'api/v2/smart_proxies/main', 'api/v2/smart_proxies/pubkey'
138
+ describe_host { overview_buttons_provider :host_overview_buttons }
138
139
  end
139
140
  end
140
141
 
@@ -165,10 +166,12 @@ module ForemanRemoteExecution
165
166
 
166
167
  Host::Managed.prepend ForemanRemoteExecution::HostExtensions
167
168
  Host::Managed.include ForemanTasks::Concerns::HostActionSubject
169
+ Host::Managed.include ForemanRemoteExecution::Orchestration::SSH
168
170
 
169
171
  (Nic::Base.descendants + [Nic::Base]).each do |klass|
170
172
  klass.send(:include, ForemanRemoteExecution::NicExtensions)
171
173
  end
174
+ Nic::Managed.include ForemanRemoteExecution::Orchestration::SSH
172
175
 
173
176
  Bookmark.include ForemanRemoteExecution::BookmarkExtensions
174
177
  HostsHelper.prepend ForemanRemoteExecution::HostsHelperExtensions
@@ -1,3 +1,3 @@
1
1
  module ForemanRemoteExecution
2
- VERSION = '3.0.2'.freeze
2
+ VERSION = '3.2.2'.freeze
3
3
  end
@@ -1,5 +1,6 @@
1
1
  # Autogenerated!
2
- _("Remote action:")
3
- _("Import Puppet classes")
4
- _("Import facts")
5
2
  _("Action with sub plans")
3
+ _("Import facts")
4
+ _("Import Puppet classes")
5
+ _("Remote action:")
6
+
@@ -27,11 +27,6 @@ msgstr "vor %s"
27
27
  msgid "%{description} on %{host}"
28
28
  msgstr "%{description} auf %{host}"
29
29
 
30
- msgid "...and %{count} more"
31
- msgid_plural "...and %{count} more"
32
- msgstr[0] "...und %{count} weiteren"
33
- msgstr[1] "...und %{count} weiteren"
34
-
35
30
  msgid "A comma separated list of input names to be excluded from the foreign template."
36
31
  msgstr "Kommagetrennte Liste von Eingabenamen, die aus der Fremdvorlage auszuschließen ist"
37
32
 
@@ -59,12 +54,21 @@ msgstr "Aktionen"
59
54
  msgid "Add Foreign Input Set"
60
55
  msgstr "Fremdeingabe-Satz hinzufügen"
61
56
 
57
+ msgid "Alphabetical"
58
+ msgstr ""
59
+
62
60
  msgid "Amount of workers in the pool to handle the execution of the remote execution jobs. Restart of the dynflowd/foreman-tasks service is required."
63
61
  msgstr ""
64
62
 
65
63
  msgid "Another interface is already set as execution. Are you sure you want to use this one instead?"
66
64
  msgstr "Es ist bereits eine andere Schnittstelle für die Ausführung bestimmt. Sind Sie sicher, dass Sie stattdessen diese Schnittstelle verwenden möchten?"
67
65
 
66
+ msgid "Any Location"
67
+ msgstr ""
68
+
69
+ msgid "Any Organization"
70
+ msgstr ""
71
+
68
72
  msgid "Back to Job"
69
73
  msgstr "Zurück zum Job"
70
74
 
@@ -92,6 +96,9 @@ msgstr "bookmark_id und search_query konnte nicht angegeben werden"
92
96
  msgid "Cannot specify both recurrence and scheduling"
93
97
  msgstr "Wiederholung und Planung konnten nicht angegeben werden"
94
98
 
99
+ msgid "Choose a job template that is pre-selected in job invocation form"
100
+ msgstr ""
101
+
95
102
  msgid "Circular dependency detected in foreign input set '%{template}' -> '%{target_template}'. Templates stack: %{templates_stack}"
96
103
  msgstr "Zirkuläre Abhängigkeit im Fremdeingabe-Satz gefunden '%{template}' -> '%{target_template}'. Vorlagen-Stack: %{templates_stack}"
97
104
 
@@ -146,6 +153,12 @@ msgstr "Job-Vorlage erstellen"
146
153
  msgid "Create a recurring job"
147
154
  msgstr "Wiederholten Job erstellen"
148
155
 
156
+ msgid "Current location %{loc_c} is different from job's location %{loc_j}."
157
+ msgstr ""
158
+
159
+ msgid "Current organization %{org_c} is different from job's organization %{org_j}."
160
+ msgstr ""
161
+
149
162
  msgid "Default SSH key passphrase"
150
163
  msgstr ""
151
164
 
@@ -179,8 +192,8 @@ msgstr "Beschreibungsvorlage"
179
192
  msgid "Display advanced fields"
180
193
  msgstr "Erweiterte Felder einblenden"
181
194
 
182
- msgid "Distribute execution over N seconds"
183
- msgstr "Ausführung über n Sekunden verteilen"
195
+ msgid "Distribute execution over N seconds. If this is set and proxy batch triggering is enabled, then tasks are triggered on the smart proxy in batches of size 1."
196
+ msgstr ""
184
197
 
185
198
  msgid "Distribute tasks over N seconds"
186
199
  msgstr "Aufgaben über n Sekunden verteilen"
@@ -224,9 +237,21 @@ msgstr "Fehler die Daten vom Proxy zu laden."
224
237
  msgid "Evaluated at:"
225
238
  msgstr "Evaluiert an:"
226
239
 
240
+ msgid "Execute the jobs on hosts in randomized order"
241
+ msgstr ""
242
+
227
243
  msgid "Execution"
228
244
  msgstr "Ausführung"
229
245
 
246
+ msgid "Execution order"
247
+ msgstr ""
248
+
249
+ msgid "Execution ordering"
250
+ msgstr ""
251
+
252
+ msgid "Execution ordering determines whether the jobs should be executed on hosts in alphabetical order or in randomized order.<br><ul><li><b>Ordered</b> - executes the jobs on hosts in alphabetical order</li><li><b>Randomized</b> - randomizes the order in which jobs are executed on hosts</li></ul>"
253
+ msgstr ""
254
+
230
255
  msgid "Exit status: %s"
231
256
  msgstr "Exit-Status: %s"
232
257
 
@@ -257,6 +282,9 @@ msgstr "Fremdeingabe-Satz"
257
282
  msgid "Foreman can run arbitrary commands on remote hosts using different providers, such as SSH or Ansible. Communication goes through the Smart Proxy so Foreman does not have to have direct access to the target hosts and can scale to control many hosts."
258
283
  msgstr ""
259
284
 
285
+ msgid "Form Job Template"
286
+ msgstr ""
287
+
260
288
  msgid "Get output for a host"
261
289
  msgstr "Ausgabe für einen Host abfragen"
262
290
 
@@ -377,6 +405,9 @@ msgstr ""
377
405
  msgid "Label"
378
406
  msgstr "Kennung"
379
407
 
408
+ msgid "Last execution cancelled"
409
+ msgstr ""
410
+
380
411
  msgid "Last execution failed"
381
412
  msgstr "Letzte Ausführung fehlgeschlagen"
382
413
 
@@ -407,6 +438,9 @@ msgstr "Entfernte Ausführungsfunktionen auflisten"
407
438
  msgid "List template invocations belonging to job invocation"
408
439
  msgstr ""
409
440
 
441
+ msgid "Location"
442
+ msgstr ""
443
+
410
444
  msgid "Manual selection"
411
445
  msgstr "Manuelle Auswahl"
412
446
 
@@ -425,15 +459,15 @@ msgstr "Neue Job-Vorlage"
425
459
  msgid "No execution finished yet"
426
460
  msgstr "Noch keine Ausführung abgeschlossen"
427
461
 
428
- msgid "No hosts found."
429
- msgstr "Keine Hosts gefunden"
430
-
431
462
  msgid "No template mapped to feature %{feature_name}"
432
463
  msgstr "Der Funktion %{feature_name} wurde keine Vorlage zugewiesen"
433
464
 
434
465
  msgid "Not all required inputs have values. Missing inputs: %s"
435
466
  msgstr "Nicht alle erforderlichen Eingaben haben Werte. Fehlende Eingaben: %s"
436
467
 
468
+ msgid "Organization"
469
+ msgstr ""
470
+
437
471
  msgid "Override the description format from the template for this invocation only"
438
472
  msgstr "Beschreibungsformat der Vorlage nur für diesen Aufruf außer Kraft setzen "
439
473
 
@@ -458,6 +492,9 @@ msgstr ""
458
492
  msgid "Pending"
459
493
  msgstr "Ausstehend"
460
494
 
495
+ msgid "Perform a single Puppet run"
496
+ msgstr ""
497
+
461
498
  msgid "Perform no more executions after this time"
462
499
  msgstr "Danach nicht mehr ausführen"
463
500
 
@@ -487,6 +524,9 @@ msgstr "Anbieter und Vorlagen"
487
524
  msgid "Proxies"
488
525
  msgstr "Proxys"
489
526
 
527
+ msgid "Randomized"
528
+ msgstr ""
529
+
490
530
  msgid "Recurring logic"
491
531
  msgstr "Wiederholungslogik"
492
532
 
@@ -511,6 +551,9 @@ msgstr "Entfernte Ausführung"
511
551
  msgid "Remote execution feature label that should be triggered, job template assigned to this feature will be used"
512
552
  msgstr ""
513
553
 
554
+ msgid "Remove SSH known hosts for %s"
555
+ msgstr ""
556
+
514
557
  msgid "Repeat a maximum of N times"
515
558
  msgstr "Maximal n-mal wiederholen"
516
559
 
@@ -544,9 +587,15 @@ msgstr "Ausführen"
544
587
  msgid "Run Job"
545
588
  msgstr "Job ausführen"
546
589
 
590
+ msgid "Run Puppet Once"
591
+ msgstr ""
592
+
547
593
  msgid "Run at most N tasks at a time"
548
594
  msgstr "Höchstens n Aufgaben gleichzeitig ausführen"
549
595
 
596
+ msgid "Run at most N tasks at a time. If this is set and proxy batch triggering is enabled, then tasks are triggered on the smart proxy in batches of size 1."
597
+ msgstr ""
598
+
550
599
  msgid "SSH"
551
600
  msgstr "SSH"
552
601
 
@@ -589,8 +638,8 @@ msgstr "Suchen"
589
638
  msgid "Search Query"
590
639
  msgstr ""
591
640
 
592
- msgid "Search for remote execution proxy outside of the proxies assigned to the host. If locations or organizations are enabled, the search will be limited to the host's organization or location."
593
- msgstr "Außerhalb der dem Host zugewiesenen Proxys nach Proxy mit entfernter Ausführung suchen. Wenn Standorte oder Organisationen aktiviert sind, wird die Suche auf Organisation oder Standort des Hosts begrenzt."
641
+ msgid "Search for remote execution proxy outside of the proxies assigned to the host. The search will be limited to the host's organization and location."
642
+ msgstr ""
594
643
 
595
644
  msgid "Search the host for any proxy with Remote Execution, useful when the host has no subnet or the subnet does not have an execution proxy"
596
645
  msgstr "Den Host nach einem Proxy mit entfernter Ausführung durchsuchen. Dies ist nützlich, wenn der Host kein Subnetz hat oder das Subnetz keinen Proxy für die Ausführung hat."
@@ -610,7 +659,7 @@ msgstr "Wählen Sie so viele Proxys für entfernte Ausführung aus, wie es für
610
659
  msgid "Set to distribute over"
611
660
  msgstr ""
612
661
 
613
- msgid "Should the ip addresses on host interfaces be preferred over the fqdn? It is useful, when DNS not resolving the fqdns properly. You may override this per host by setting a parameter called remote_execution_connect_by_ip."
662
+ msgid "Should the ip addresses on host interfaces be preferred over the fqdn? It is useful when DNS not resolving the fqdns properly. You may override this per host by setting a parameter called remote_execution_connect_by_ip. This setting only applies to IPv4. When the host has only an IPv6 address on the interface used for remote execution, hostname will be used even if this setting is set to true."
614
663
  msgstr ""
615
664
 
616
665
  msgid "Show foreign input set details"
@@ -682,9 +731,6 @@ msgstr "Vorlagenversion"
682
731
  msgid "Template with id '%{id}' was not found"
683
732
  msgstr "Vorlage mit ID '%{id}' nicht gefunden"
684
733
 
685
- msgid "The dynamic query '#{job_invocation.targeting.search_query}' was not resolved yet. The list of hosts to which it would resolve now can be seen"
686
- msgstr ""
687
-
688
734
  msgid "The dynamic query '%{query}' was not resolved yet. The list of hosts to which it would resolve now can be seen %{here}."
689
735
  msgstr "Die dynamische Anfrage '%{query}' wurde noch nicht aufgelöst. Die Liste von Hosts, zu denen sie sich auflösen würde, ist jetzt %{here} zu sehen."
690
736
 
@@ -786,6 +832,9 @@ msgstr "Anfragetyp"
786
832
  msgid "Unable to fetch public key"
787
833
  msgstr "Öffentlicher Schlüssel konnte nicht abgerufen werden"
788
834
 
835
+ msgid "Unable to remove host from known hosts"
836
+ msgstr ""
837
+
789
838
  msgid "Unable to save template. Correct highlighted errors"
790
839
  msgstr "Vorlage kann nicht gespeichert werden. Bitte korrigieren Sie die markierten Fehler"
791
840
 
@@ -26,12 +26,6 @@ msgstr ""
26
26
  msgid "%{description} on %{host}"
27
27
  msgstr ""
28
28
 
29
- #, fuzzy
30
- msgid "...and %{count} more"
31
- msgid_plural "...and %{count} more"
32
- msgstr[0] ""
33
- msgstr[1] ""
34
-
35
29
  msgid "A comma separated list of input names to be excluded from the foreign template."
36
30
  msgstr ""
37
31
 
@@ -59,12 +53,21 @@ msgstr ""
59
53
  msgid "Add Foreign Input Set"
60
54
  msgstr ""
61
55
 
56
+ msgid "Alphabetical"
57
+ msgstr ""
58
+
62
59
  msgid "Amount of workers in the pool to handle the execution of the remote execution jobs. Restart of the dynflowd/foreman-tasks service is required."
63
60
  msgstr ""
64
61
 
65
62
  msgid "Another interface is already set as execution. Are you sure you want to use this one instead?"
66
63
  msgstr ""
67
64
 
65
+ msgid "Any Location"
66
+ msgstr ""
67
+
68
+ msgid "Any Organization"
69
+ msgstr ""
70
+
68
71
  msgid "Back to Job"
69
72
  msgstr ""
70
73
 
@@ -92,6 +95,9 @@ msgstr ""
92
95
  msgid "Cannot specify both recurrence and scheduling"
93
96
  msgstr ""
94
97
 
98
+ msgid "Choose a job template that is pre-selected in job invocation form"
99
+ msgstr ""
100
+
95
101
  msgid "Circular dependency detected in foreign input set '%{template}' -> '%{target_template}'. Templates stack: %{templates_stack}"
96
102
  msgstr ""
97
103
 
@@ -146,6 +152,12 @@ msgstr ""
146
152
  msgid "Create a recurring job"
147
153
  msgstr ""
148
154
 
155
+ msgid "Current location %{loc_c} is different from job's location %{loc_j}."
156
+ msgstr ""
157
+
158
+ msgid "Current organization %{org_c} is different from job's organization %{org_j}."
159
+ msgstr ""
160
+
149
161
  msgid "Default SSH key passphrase"
150
162
  msgstr ""
151
163
 
@@ -179,7 +191,7 @@ msgstr ""
179
191
  msgid "Display advanced fields"
180
192
  msgstr ""
181
193
 
182
- msgid "Distribute execution over N seconds"
194
+ msgid "Distribute execution over N seconds. If this is set and proxy batch triggering is enabled, then tasks are triggered on the smart proxy in batches of size 1."
183
195
  msgstr ""
184
196
 
185
197
  msgid "Distribute tasks over N seconds"
@@ -224,9 +236,21 @@ msgstr ""
224
236
  msgid "Evaluated at:"
225
237
  msgstr ""
226
238
 
239
+ msgid "Execute the jobs on hosts in randomized order"
240
+ msgstr ""
241
+
227
242
  msgid "Execution"
228
243
  msgstr ""
229
244
 
245
+ msgid "Execution order"
246
+ msgstr ""
247
+
248
+ msgid "Execution ordering"
249
+ msgstr ""
250
+
251
+ msgid "Execution ordering determines whether the jobs should be executed on hosts in alphabetical order or in randomized order.<br><ul><li><b>Ordered</b> - executes the jobs on hosts in alphabetical order</li><li><b>Randomized</b> - randomizes the order in which jobs are executed on hosts</li></ul>"
252
+ msgstr ""
253
+
230
254
  msgid "Exit status: %s"
231
255
  msgstr ""
232
256
 
@@ -257,6 +281,9 @@ msgstr ""
257
281
  msgid "Foreman can run arbitrary commands on remote hosts using different providers, such as SSH or Ansible. Communication goes through the Smart Proxy so Foreman does not have to have direct access to the target hosts and can scale to control many hosts."
258
282
  msgstr ""
259
283
 
284
+ msgid "Form Job Template"
285
+ msgstr ""
286
+
260
287
  msgid "Get output for a host"
261
288
  msgstr ""
262
289
 
@@ -377,6 +404,9 @@ msgstr ""
377
404
  msgid "Label"
378
405
  msgstr ""
379
406
 
407
+ msgid "Last execution cancelled"
408
+ msgstr ""
409
+
380
410
  msgid "Last execution failed"
381
411
  msgstr ""
382
412
 
@@ -407,6 +437,9 @@ msgstr ""
407
437
  msgid "List template invocations belonging to job invocation"
408
438
  msgstr ""
409
439
 
440
+ msgid "Location"
441
+ msgstr ""
442
+
410
443
  msgid "Manual selection"
411
444
  msgstr ""
412
445
 
@@ -425,15 +458,15 @@ msgstr ""
425
458
  msgid "No execution finished yet"
426
459
  msgstr ""
427
460
 
428
- msgid "No hosts found."
429
- msgstr ""
430
-
431
461
  msgid "No template mapped to feature %{feature_name}"
432
462
  msgstr ""
433
463
 
434
464
  msgid "Not all required inputs have values. Missing inputs: %s"
435
465
  msgstr ""
436
466
 
467
+ msgid "Organization"
468
+ msgstr ""
469
+
437
470
  msgid "Override the description format from the template for this invocation only"
438
471
  msgstr ""
439
472
 
@@ -458,6 +491,9 @@ msgstr ""
458
491
  msgid "Pending"
459
492
  msgstr ""
460
493
 
494
+ msgid "Perform a single Puppet run"
495
+ msgstr ""
496
+
461
497
  msgid "Perform no more executions after this time"
462
498
  msgstr ""
463
499
 
@@ -485,6 +521,9 @@ msgstr ""
485
521
  msgid "Proxies"
486
522
  msgstr ""
487
523
 
524
+ msgid "Randomized"
525
+ msgstr ""
526
+
488
527
  msgid "Recurring logic"
489
528
  msgstr ""
490
529
 
@@ -509,6 +548,9 @@ msgstr ""
509
548
  msgid "Remote execution feature label that should be triggered, job template assigned to this feature will be used"
510
549
  msgstr ""
511
550
 
551
+ msgid "Remove SSH known hosts for %s"
552
+ msgstr ""
553
+
512
554
  msgid "Repeat a maximum of N times"
513
555
  msgstr ""
514
556
 
@@ -542,9 +584,15 @@ msgstr ""
542
584
  msgid "Run Job"
543
585
  msgstr ""
544
586
 
587
+ msgid "Run Puppet Once"
588
+ msgstr ""
589
+
545
590
  msgid "Run at most N tasks at a time"
546
591
  msgstr ""
547
592
 
593
+ msgid "Run at most N tasks at a time. If this is set and proxy batch triggering is enabled, then tasks are triggered on the smart proxy in batches of size 1."
594
+ msgstr ""
595
+
548
596
  msgid "SSH"
549
597
  msgstr ""
550
598
 
@@ -587,7 +635,7 @@ msgstr ""
587
635
  msgid "Search Query"
588
636
  msgstr ""
589
637
 
590
- msgid "Search for remote execution proxy outside of the proxies assigned to the host. If locations or organizations are enabled, the search will be limited to the host's organization or location."
638
+ msgid "Search for remote execution proxy outside of the proxies assigned to the host. The search will be limited to the host's organization and location."
591
639
  msgstr ""
592
640
 
593
641
  msgid "Search the host for any proxy with Remote Execution, useful when the host has no subnet or the subnet does not have an execution proxy"
@@ -608,7 +656,7 @@ msgstr ""
608
656
  msgid "Set to distribute over"
609
657
  msgstr ""
610
658
 
611
- msgid "Should the ip addresses on host interfaces be preferred over the fqdn? It is useful, when DNS not resolving the fqdns properly. You may override this per host by setting a parameter called remote_execution_connect_by_ip."
659
+ msgid "Should the ip addresses on host interfaces be preferred over the fqdn? It is useful when DNS not resolving the fqdns properly. You may override this per host by setting a parameter called remote_execution_connect_by_ip. This setting only applies to IPv4. When the host has only an IPv6 address on the interface used for remote execution, hostname will be used even if this setting is set to true."
612
660
  msgstr ""
613
661
 
614
662
  msgid "Show foreign input set details"
@@ -680,9 +728,6 @@ msgstr ""
680
728
  msgid "Template with id '%{id}' was not found"
681
729
  msgstr ""
682
730
 
683
- msgid "The dynamic query '#{job_invocation.targeting.search_query}' was not resolved yet. The list of hosts to which it would resolve now can be seen"
684
- msgstr ""
685
-
686
731
  msgid "The dynamic query '%{query}' was not resolved yet. The list of hosts to which it would resolve now can be seen %{here}."
687
732
  msgstr ""
688
733
 
@@ -784,6 +829,9 @@ msgstr ""
784
829
  msgid "Unable to fetch public key"
785
830
  msgstr ""
786
831
 
832
+ msgid "Unable to remove host from known hosts"
833
+ msgstr ""
834
+
787
835
  msgid "Unable to save template. Correct highlighted errors"
788
836
  msgstr ""
789
837