foreman_remote_execution 6.2.0 → 7.0.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.
- checksums.yaml +4 -4
- data/app/controllers/api/v2/job_invocations_controller.rb +1 -0
- data/app/helpers/hosts_extensions_helper.rb +62 -0
- data/app/lib/actions/remote_execution/run_host_job.rb +4 -0
- data/app/lib/actions/remote_execution/run_hosts_job.rb +4 -0
- data/app/models/job_invocation_composer.rb +6 -2
- data/app/models/job_template.rb +4 -1
- data/app/models/ssh_execution_provider.rb +3 -3
- data/app/views/api/v2/job_invocations/base.json.rabl +1 -1
- data/app/views/job_invocations/_card_target_hosts.html.erb +8 -0
- data/app/views/job_invocations/_form.html.erb +2 -0
- data/db/migrate/20220331112719_add_ssh_user_to_job_invocation.rb +5 -0
- data/lib/foreman_remote_execution/engine.rb +6 -3
- data/lib/foreman_remote_execution/version.rb +1 -1
- data/locale/action_names.rb +3 -3
- data/locale/de/foreman_remote_execution.po +23 -23
- data/locale/en/foreman_remote_execution.po +23 -23
- data/locale/en_GB/foreman_remote_execution.po +23 -23
- data/locale/es/foreman_remote_execution.po +23 -23
- data/locale/foreman_remote_execution.pot +64 -66
- data/locale/fr/foreman_remote_execution.po +23 -23
- data/locale/ja/foreman_remote_execution.po +23 -23
- data/locale/ko/foreman_remote_execution.po +23 -23
- data/locale/pt_BR/foreman_remote_execution.po +23 -23
- data/locale/ru/foreman_remote_execution.po +23 -23
- data/locale/zh_CN/foreman_remote_execution.po +23 -23
- data/locale/zh_TW/foreman_remote_execution.po +23 -23
- data/webpack/JobWizard/JobWizardConstants.js +2 -2
- data/webpack/JobWizard/__tests__/fixtures.js +8 -4
- data/webpack/JobWizard/steps/AdvancedFields/__tests__/AdvancedFields.test.js +2 -2
- data/webpack/JobWizard/steps/HostsAndInputs/SelectGQL.js +2 -1
- data/webpack/JobWizard/steps/HostsAndInputs/SelectedChips.js +1 -1
- data/webpack/JobWizard/steps/HostsAndInputs/buildHostQuery.js +1 -1
- data/webpack/JobWizard/steps/HostsAndInputs/hostgroups.gql +1 -0
- data/webpack/JobWizard/steps/HostsAndInputs/hosts.gql +1 -0
- data/webpack/JobWizard/steps/ReviewDetails/index.js +1 -1
- data/webpack/JobWizard/steps/Schedule/__tests__/Schedule.test.js +15 -15
- data/webpack/JobWizard/steps/form/SearchSelect.js +0 -1
- data/webpack/__mocks__/foremanReact/common/globalIdHelpers.js +1 -0
- data/webpack/global_index.js +2 -8
- data/webpack/react_app/components/HostKebab/KebabItems.js +6 -1
- data/webpack/react_app/components/RecentJobsCard/RecentJobsCard.js +4 -4
- data/webpack/react_app/components/TargetingHosts/TargetingHostsConsts.js +1 -0
- data/webpack/react_app/components/TargetingHosts/TargetingHostsPage.js +8 -3
- data/webpack/react_app/components/TargetingHosts/__tests__/__snapshots__/TargetingHostsPage.test.js.snap +9 -1
- data/webpack/react_app/components/TargetingHosts/__tests__/fixtures.js +1 -4
- data/webpack/react_app/components/TargetingHosts/index.js +1 -0
- data/webpack/react_app/extend/Fills.js +48 -0
- metadata +6 -7
- data/app/helpers/concerns/foreman_remote_execution/hosts_helper_extensions.rb +0 -62
- data/webpack/react_app/extend/fillKebabItems.js +0 -11
- data/webpack/react_app/extend/fillRecentJobsCard.js +0 -11
- data/webpack/react_app/extend/fillRexFeaturesDropdown.js +0 -11
- data/webpack/react_app/extend/fillregistrationAdvanced.js +0 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e9183b3b81c3033d696f4aedf861cb5eed143fb9eacccb144a23d859e3ccae69
|
|
4
|
+
data.tar.gz: 4c7c6c09c84f3d4cbef2aaa8330b7bf048d42570e9319ad227c30abc5613770c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b35e41908b57f97f80272070d84b8d2ceeb7e061e22ad673d07c694a643d057399e207af9c8f36d14d535a7ddb3eddefa013e04b3d63689796e66e6d9aeae88b
|
|
7
|
+
data.tar.gz: 5c0b0d79edaab4c28721ad26df27ad8ac14878e09349929d28175c2cc1714ebb1f81ceb9f4824215d781dc1b4b0662962a9043f4f56963fea4d0aaa3e2483f8d
|
|
@@ -45,6 +45,7 @@ module Api
|
|
|
45
45
|
:required => false,
|
|
46
46
|
:desc => N_('Set password for effective user (using sudo-like mechanisms)')
|
|
47
47
|
end
|
|
48
|
+
param :ssh_user, String, :required => false, :desc => N_('Set SSH user')
|
|
48
49
|
param :password, String, :required => false, :desc => N_('Set SSH password')
|
|
49
50
|
param :key_passphrase, String, :required => false, :desc => N_('Set SSH key passphrase')
|
|
50
51
|
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
module HostsExtensionsHelper
|
|
2
|
+
def rex_hosts_multiple_actions
|
|
3
|
+
return [] unless can_schedule_jobs?
|
|
4
|
+
|
|
5
|
+
[{ action: [_('Schedule Remote Job'), new_job_invocation_path, false], priority: 1000 }]
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def rex_host_overview_buttons(host)
|
|
9
|
+
[
|
|
10
|
+
{ button: link_to_if_authorized(_("Jobs"), hash_for_job_invocations_path(search: "host=#{host.name}"), title: _("Job invocations"), class: 'btn btn-default'), priority: 200 },
|
|
11
|
+
]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def host_title_actions(*args)
|
|
15
|
+
title_actions(button_group(schedule_job_multi_button(*args)),
|
|
16
|
+
button_group(web_console_button(*args)))
|
|
17
|
+
super(*args)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def schedule_job_multi_button(*args)
|
|
23
|
+
host_features = rex_host_features(*args)
|
|
24
|
+
|
|
25
|
+
if host_features.present?
|
|
26
|
+
action_buttons(schedule_job_button(*args), *host_features)
|
|
27
|
+
else
|
|
28
|
+
schedule_job_button(*args)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def rex_host_features(host, *_rest)
|
|
33
|
+
return [] unless can_execute_on_host?(host)
|
|
34
|
+
RemoteExecutionFeature.with_host_action_button.order(:label).map do |feature|
|
|
35
|
+
link_to(_('%s') % feature.name, job_invocations_path(:host_ids => [host.id], :feature => feature.label), :method => :post)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def schedule_job_button(host, *_rest)
|
|
40
|
+
return unless can_execute_on_host?(host)
|
|
41
|
+
link_to(_('Schedule Remote Job'), new_job_invocation_path(:host_ids => [host.id]), :id => :run_button, :class => 'btn btn-default')
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def web_console_button(host, *_args)
|
|
45
|
+
return if !authorized_for(permission: 'cockpit_hosts', auth_object: host) || !can_execute_on_infrastructure_host?(host)
|
|
46
|
+
|
|
47
|
+
url = SSHExecutionProvider.cockpit_url_for_host(host.name)
|
|
48
|
+
url ? link_to(_('Web Console'), url, :class => 'btn btn-default', :id => :'web-console-button', :target => '_new') : nil
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def can_schedule_jobs?
|
|
52
|
+
authorized_for(controller: :job_invocations, action: :create)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def can_execute_on_host?(host)
|
|
56
|
+
can_schedule_jobs? && can_execute_on_infrastructure_host?(host)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def can_execute_on_infrastructure_host?(host)
|
|
60
|
+
!host.infrastructure_host? || User.current.can?(:execute_jobs_on_infrastructure_hosts)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -16,6 +16,7 @@ class JobInvocationComposer
|
|
|
16
16
|
:host_ids => ui_params[:host_ids],
|
|
17
17
|
:remote_execution_feature_id => job_invocation_base[:remote_execution_feature_id],
|
|
18
18
|
:description_format => job_invocation_base[:description_format],
|
|
19
|
+
:ssh_user => blank_to_nil(job_invocation_base[:ssh_user]),
|
|
19
20
|
:password => blank_to_nil(job_invocation_base[:password]),
|
|
20
21
|
:key_passphrase => blank_to_nil(job_invocation_base[:key_passphrase]),
|
|
21
22
|
:effective_user_password => blank_to_nil(job_invocation_base[:effective_user_password]),
|
|
@@ -121,6 +122,7 @@ class JobInvocationComposer
|
|
|
121
122
|
:targeting => targeting_params,
|
|
122
123
|
:triggering => triggering_params,
|
|
123
124
|
:description_format => api_params[:description_format],
|
|
125
|
+
:ssh_user => api_params[:ssh_user],
|
|
124
126
|
:password => api_params[:password],
|
|
125
127
|
:remote_execution_feature_id => remote_execution_feature_id,
|
|
126
128
|
:effective_user_password => api_params[:effective_user_password],
|
|
@@ -237,6 +239,7 @@ class JobInvocationComposer
|
|
|
237
239
|
{ :job_category => job_invocation.job_category,
|
|
238
240
|
:targeting => targeting_params,
|
|
239
241
|
:triggering => triggering_params,
|
|
242
|
+
:ssh_user => job_invocation.ssh_user,
|
|
240
243
|
:description_format => job_invocation.description_format,
|
|
241
244
|
:concurrency_control => concurrency_control_params,
|
|
242
245
|
:execution_timeout_interval => job_invocation.execution_timeout_interval,
|
|
@@ -399,7 +402,7 @@ class JobInvocationComposer
|
|
|
399
402
|
|
|
400
403
|
def compose
|
|
401
404
|
job_invocation.job_category = validate_job_category(params[:job_category])
|
|
402
|
-
job_invocation.job_category ||= resolve_job_category(available_job_categories.first) { |
|
|
405
|
+
job_invocation.job_category ||= resolve_job_category(available_job_categories.first) { |template| template.job_category } if @set_defaults
|
|
403
406
|
job_invocation.remote_execution_feature_id = params[:remote_execution_feature_id]
|
|
404
407
|
job_invocation.targeting = build_targeting
|
|
405
408
|
job_invocation.triggering = build_triggering
|
|
@@ -411,6 +414,7 @@ class JobInvocationComposer
|
|
|
411
414
|
job_invocation.password = params[:password]
|
|
412
415
|
job_invocation.key_passphrase = params[:key_passphrase]
|
|
413
416
|
job_invocation.effective_user_password = params[:effective_user_password]
|
|
417
|
+
job_invocation.ssh_user = params[:ssh_user]
|
|
414
418
|
|
|
415
419
|
if @reruns && job_invocation.targeting.static?
|
|
416
420
|
job_invocation.targeting.assign_host_ids(JobInvocation.find(@reruns).targeting.host_ids)
|
|
@@ -544,7 +548,7 @@ class JobInvocationComposer
|
|
|
544
548
|
|
|
545
549
|
def input_value_for(input)
|
|
546
550
|
invocations = pattern_template_invocations
|
|
547
|
-
default = TemplateInvocationInputValue.new(:template_input_id => input.id)
|
|
551
|
+
default = TemplateInvocationInputValue.new(:template_input_id => input.id, :value => input.default)
|
|
548
552
|
invocations.map(&:input_values).flatten.detect { |iv| iv.template_input_id == input.id } || default
|
|
549
553
|
end
|
|
550
554
|
|
data/app/models/job_template.rb
CHANGED
|
@@ -196,7 +196,10 @@ class JobTemplate < ::Template
|
|
|
196
196
|
def default_input_values(ignore_keys)
|
|
197
197
|
result = self.template_inputs_with_foreign.select { |ti| !ti.required? && ti.input_type == 'user' }.map { |ti| ti.name.to_s }
|
|
198
198
|
result -= ignore_keys.map(&:to_s)
|
|
199
|
-
|
|
199
|
+
default_values = self.template_inputs_with_foreign.reduce({}) do |acc, input|
|
|
200
|
+
acc.merge(input.name.to_s => input.default)
|
|
201
|
+
end
|
|
202
|
+
Hash[result.map { |k| [ k, default_values[k]] }]
|
|
200
203
|
end
|
|
201
204
|
|
|
202
205
|
private
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class ScriptExecutionProvider < RemoteExecutionProvider
|
|
2
2
|
class << self
|
|
3
3
|
def proxy_command_options(template_invocation, host)
|
|
4
|
-
super.merge(:ssh_user => ssh_user(host),
|
|
4
|
+
super.merge(:ssh_user => ssh_user(host, template_invocation.job_invocation),
|
|
5
5
|
:effective_user => effective_user(template_invocation),
|
|
6
6
|
:effective_user_method => effective_user_method(host),
|
|
7
7
|
:cleanup_working_dirs => cleanup_working_dirs?(host),
|
|
@@ -58,8 +58,8 @@ class ScriptExecutionProvider < RemoteExecutionProvider
|
|
|
58
58
|
|
|
59
59
|
private
|
|
60
60
|
|
|
61
|
-
def ssh_user(host)
|
|
62
|
-
host.host_param('remote_execution_ssh_user')
|
|
61
|
+
def ssh_user(host, job_invocation = nil)
|
|
62
|
+
job_invocation&.ssh_user || host.host_param('remote_execution_ssh_user')
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
def ssh_port(host)
|
|
@@ -32,6 +32,14 @@
|
|
|
32
32
|
<%= show_job_location(@job_location) %>
|
|
33
33
|
</strong>
|
|
34
34
|
</p>
|
|
35
|
+
<% if job_invocation[:ssh_user] %>
|
|
36
|
+
<p>
|
|
37
|
+
<%= _('SSH User') %>:
|
|
38
|
+
<strong>
|
|
39
|
+
<%= job_invocation[:ssh_user] %>
|
|
40
|
+
</strong>
|
|
41
|
+
</p>
|
|
42
|
+
<% end %>
|
|
35
43
|
</div>
|
|
36
44
|
<div class='card-pf-footer'>
|
|
37
45
|
<p>
|
|
@@ -82,6 +82,8 @@
|
|
|
82
82
|
<% end %>
|
|
83
83
|
<% end %>
|
|
84
84
|
|
|
85
|
+
<%= text_f f, :ssh_user, :value => f.object.ssh_user, :label => _('SSH user'), :label_help => N_('A user to be used for SSH.') %>
|
|
86
|
+
|
|
85
87
|
<% if job_template.effective_user.overridable? %>
|
|
86
88
|
<%= text_f job_template_fields, :effective_user, :value => @composer.template_invocation(job_template).try(:effective_user), :label => _('Effective user'), :label_help => N_("A user to be used for executing the script. If it differs from the SSH user, su or sudo is used to switch the accounts.") %>
|
|
87
89
|
<% end %>
|
|
@@ -47,7 +47,7 @@ module ForemanRemoteExecution
|
|
|
47
47
|
|
|
48
48
|
initializer 'foreman_remote_execution.register_plugin', before: :finisher_hook do |_app|
|
|
49
49
|
Foreman::Plugin.register :foreman_remote_execution do
|
|
50
|
-
requires_foreman '>= 3.
|
|
50
|
+
requires_foreman '>= 3.3'
|
|
51
51
|
register_global_js_file 'global'
|
|
52
52
|
|
|
53
53
|
apipie_documented_controllers ["#{ForemanRemoteExecution::Engine.root}/app/controllers/api/v2/*.rb"]
|
|
@@ -267,7 +267,11 @@ module ForemanRemoteExecution
|
|
|
267
267
|
extend_rabl_template 'api/v2/subnets/show', 'api/v2/subnets/remote_execution_proxies'
|
|
268
268
|
extend_rabl_template 'api/v2/hosts/main', 'api/v2/host/main'
|
|
269
269
|
parameter_filter ::Subnet, :remote_execution_proxy_ids
|
|
270
|
-
|
|
270
|
+
|
|
271
|
+
describe_host do
|
|
272
|
+
multiple_actions_provider :rex_hosts_multiple_actions
|
|
273
|
+
overview_buttons_provider :rex_host_overview_buttons
|
|
274
|
+
end
|
|
271
275
|
|
|
272
276
|
# Extend Registration module
|
|
273
277
|
extend_allowed_registration_vars :remote_execution_interface
|
|
@@ -316,7 +320,6 @@ module ForemanRemoteExecution
|
|
|
316
320
|
end
|
|
317
321
|
|
|
318
322
|
Bookmark.include ForemanRemoteExecution::BookmarkExtensions
|
|
319
|
-
HostsHelper.prepend ForemanRemoteExecution::HostsHelperExtensions
|
|
320
323
|
ProvisioningTemplatesHelper.prepend ForemanRemoteExecution::JobTemplatesExtensions
|
|
321
324
|
TemplateInput.include ForemanRemoteExecution::TemplateInputExtensions
|
|
322
325
|
|
data/locale/action_names.rb
CHANGED
|
@@ -24,6 +24,9 @@ msgstr "%s"
|
|
|
24
24
|
msgid "%s ago"
|
|
25
25
|
msgstr "vor %s"
|
|
26
26
|
|
|
27
|
+
msgid "%s job has been invoked"
|
|
28
|
+
msgstr ""
|
|
29
|
+
|
|
27
30
|
msgid "%{description} on %{host}"
|
|
28
31
|
msgstr "%{description} auf %{host}"
|
|
29
32
|
|
|
@@ -68,15 +71,15 @@ msgstr "Ein Benutzer, der für die Ausführung des Skripts verwendet werden soll
|
|
|
68
71
|
msgid "Abort Job"
|
|
69
72
|
msgstr ""
|
|
70
73
|
|
|
74
|
+
msgid "Action with sub plans"
|
|
75
|
+
msgstr ""
|
|
76
|
+
|
|
71
77
|
msgid "Actions"
|
|
72
78
|
msgstr "Aktionen"
|
|
73
79
|
|
|
74
80
|
msgid "Add Foreign Input Set"
|
|
75
81
|
msgstr "Fremdeingabe-Satz hinzufügen"
|
|
76
82
|
|
|
77
|
-
msgid "Advanced Fields"
|
|
78
|
-
msgstr ""
|
|
79
|
-
|
|
80
83
|
msgid "Advanced fields"
|
|
81
84
|
msgstr ""
|
|
82
85
|
|
|
@@ -467,9 +470,15 @@ msgstr ""
|
|
|
467
470
|
msgid "Import"
|
|
468
471
|
msgstr "Import"
|
|
469
472
|
|
|
473
|
+
msgid "Import Puppet classes"
|
|
474
|
+
msgstr ""
|
|
475
|
+
|
|
470
476
|
msgid "Import a job template from ERB"
|
|
471
477
|
msgstr "Job-Vorlage aus ERB importieren"
|
|
472
478
|
|
|
479
|
+
msgid "Import facts"
|
|
480
|
+
msgstr ""
|
|
481
|
+
|
|
473
482
|
msgid "Include all inputs from the foreign template"
|
|
474
483
|
msgstr "Alle Eingaben aus Fremdvorlage einschließen"
|
|
475
484
|
|
|
@@ -503,9 +512,6 @@ msgstr "Jobtyp, einer von %s"
|
|
|
503
512
|
msgid "Job"
|
|
504
513
|
msgstr "Job"
|
|
505
514
|
|
|
506
|
-
msgid "Job Category"
|
|
507
|
-
msgstr ""
|
|
508
|
-
|
|
509
515
|
msgid "Job Details"
|
|
510
516
|
msgstr ""
|
|
511
517
|
|
|
@@ -829,7 +835,7 @@ msgstr "Wird aufgelöst zu"
|
|
|
829
835
|
msgid "Results"
|
|
830
836
|
msgstr ""
|
|
831
837
|
|
|
832
|
-
msgid "Review
|
|
838
|
+
msgid "Review details"
|
|
833
839
|
msgstr ""
|
|
834
840
|
|
|
835
841
|
msgid "Run"
|
|
@@ -853,9 +859,6 @@ msgstr ""
|
|
|
853
859
|
msgid "Running"
|
|
854
860
|
msgstr ""
|
|
855
861
|
|
|
856
|
-
msgid "SSH"
|
|
857
|
-
msgstr "SSH"
|
|
858
|
-
|
|
859
862
|
msgid "SSH Port"
|
|
860
863
|
msgstr ""
|
|
861
864
|
|
|
@@ -871,6 +874,9 @@ msgstr "Plan"
|
|
|
871
874
|
msgid "Schedule Remote Job"
|
|
872
875
|
msgstr ""
|
|
873
876
|
|
|
877
|
+
msgid "Schedule a job"
|
|
878
|
+
msgstr ""
|
|
879
|
+
|
|
874
880
|
msgid "Schedule for future execution"
|
|
875
881
|
msgstr ""
|
|
876
882
|
|
|
@@ -892,6 +898,9 @@ msgstr ""
|
|
|
892
898
|
msgid "Scheduled to start before"
|
|
893
899
|
msgstr ""
|
|
894
900
|
|
|
901
|
+
msgid "Script"
|
|
902
|
+
msgstr ""
|
|
903
|
+
|
|
895
904
|
msgid "Scroll to bottom"
|
|
896
905
|
msgstr "Zum Ende scrollen"
|
|
897
906
|
|
|
@@ -1212,16 +1221,16 @@ msgstr "Benutzereingabe"
|
|
|
1212
1221
|
msgid "Value"
|
|
1213
1222
|
msgstr "Wert"
|
|
1214
1223
|
|
|
1215
|
-
msgid "View
|
|
1224
|
+
msgid "View all jobs"
|
|
1216
1225
|
msgstr ""
|
|
1217
1226
|
|
|
1218
|
-
msgid "View
|
|
1227
|
+
msgid "View finished jobs"
|
|
1219
1228
|
msgstr ""
|
|
1220
1229
|
|
|
1221
|
-
msgid "View
|
|
1230
|
+
msgid "View running jobs"
|
|
1222
1231
|
msgstr ""
|
|
1223
1232
|
|
|
1224
|
-
msgid "View
|
|
1233
|
+
msgid "View scheduled jobs"
|
|
1225
1234
|
msgstr ""
|
|
1226
1235
|
|
|
1227
1236
|
msgid "Web Console"
|
|
@@ -1367,12 +1376,3 @@ msgstr ""
|
|
|
1367
1376
|
|
|
1368
1377
|
msgid "using Smart Proxy"
|
|
1369
1378
|
msgstr ""
|
|
1370
|
-
|
|
1371
|
-
msgid "»Action with sub plans«"
|
|
1372
|
-
msgstr ""
|
|
1373
|
-
|
|
1374
|
-
msgid "»Import Puppet classes«"
|
|
1375
|
-
msgstr ""
|
|
1376
|
-
|
|
1377
|
-
msgid "»Import facts«"
|
|
1378
|
-
msgstr ""
|
|
@@ -23,6 +23,9 @@ msgstr ""
|
|
|
23
23
|
msgid "%s ago"
|
|
24
24
|
msgstr ""
|
|
25
25
|
|
|
26
|
+
msgid "%s job has been invoked"
|
|
27
|
+
msgstr ""
|
|
28
|
+
|
|
26
29
|
msgid "%{description} on %{host}"
|
|
27
30
|
msgstr ""
|
|
28
31
|
|
|
@@ -67,13 +70,13 @@ msgstr ""
|
|
|
67
70
|
msgid "Abort Job"
|
|
68
71
|
msgstr ""
|
|
69
72
|
|
|
70
|
-
msgid "
|
|
73
|
+
msgid "Action with sub plans"
|
|
71
74
|
msgstr ""
|
|
72
75
|
|
|
73
|
-
msgid "
|
|
76
|
+
msgid "Actions"
|
|
74
77
|
msgstr ""
|
|
75
78
|
|
|
76
|
-
msgid "
|
|
79
|
+
msgid "Add Foreign Input Set"
|
|
77
80
|
msgstr ""
|
|
78
81
|
|
|
79
82
|
msgid "Advanced fields"
|
|
@@ -466,9 +469,15 @@ msgstr ""
|
|
|
466
469
|
msgid "Import"
|
|
467
470
|
msgstr ""
|
|
468
471
|
|
|
472
|
+
msgid "Import Puppet classes"
|
|
473
|
+
msgstr ""
|
|
474
|
+
|
|
469
475
|
msgid "Import a job template from ERB"
|
|
470
476
|
msgstr ""
|
|
471
477
|
|
|
478
|
+
msgid "Import facts"
|
|
479
|
+
msgstr ""
|
|
480
|
+
|
|
472
481
|
msgid "Include all inputs from the foreign template"
|
|
473
482
|
msgstr ""
|
|
474
483
|
|
|
@@ -502,9 +511,6 @@ msgstr ""
|
|
|
502
511
|
msgid "Job"
|
|
503
512
|
msgstr ""
|
|
504
513
|
|
|
505
|
-
msgid "Job Category"
|
|
506
|
-
msgstr ""
|
|
507
|
-
|
|
508
514
|
msgid "Job Details"
|
|
509
515
|
msgstr ""
|
|
510
516
|
|
|
@@ -826,7 +832,7 @@ msgstr ""
|
|
|
826
832
|
msgid "Results"
|
|
827
833
|
msgstr ""
|
|
828
834
|
|
|
829
|
-
msgid "Review
|
|
835
|
+
msgid "Review details"
|
|
830
836
|
msgstr ""
|
|
831
837
|
|
|
832
838
|
msgid "Run"
|
|
@@ -850,9 +856,6 @@ msgstr ""
|
|
|
850
856
|
msgid "Running"
|
|
851
857
|
msgstr ""
|
|
852
858
|
|
|
853
|
-
msgid "SSH"
|
|
854
|
-
msgstr ""
|
|
855
|
-
|
|
856
859
|
msgid "SSH Port"
|
|
857
860
|
msgstr ""
|
|
858
861
|
|
|
@@ -868,6 +871,9 @@ msgstr ""
|
|
|
868
871
|
msgid "Schedule Remote Job"
|
|
869
872
|
msgstr ""
|
|
870
873
|
|
|
874
|
+
msgid "Schedule a job"
|
|
875
|
+
msgstr ""
|
|
876
|
+
|
|
871
877
|
msgid "Schedule for future execution"
|
|
872
878
|
msgstr ""
|
|
873
879
|
|
|
@@ -889,6 +895,9 @@ msgstr ""
|
|
|
889
895
|
msgid "Scheduled to start before"
|
|
890
896
|
msgstr ""
|
|
891
897
|
|
|
898
|
+
msgid "Script"
|
|
899
|
+
msgstr ""
|
|
900
|
+
|
|
892
901
|
msgid "Scroll to bottom"
|
|
893
902
|
msgstr ""
|
|
894
903
|
|
|
@@ -1209,16 +1218,16 @@ msgstr ""
|
|
|
1209
1218
|
msgid "Value"
|
|
1210
1219
|
msgstr ""
|
|
1211
1220
|
|
|
1212
|
-
msgid "View
|
|
1221
|
+
msgid "View all jobs"
|
|
1213
1222
|
msgstr ""
|
|
1214
1223
|
|
|
1215
|
-
msgid "View
|
|
1224
|
+
msgid "View finished jobs"
|
|
1216
1225
|
msgstr ""
|
|
1217
1226
|
|
|
1218
|
-
msgid "View
|
|
1227
|
+
msgid "View running jobs"
|
|
1219
1228
|
msgstr ""
|
|
1220
1229
|
|
|
1221
|
-
msgid "View
|
|
1230
|
+
msgid "View scheduled jobs"
|
|
1222
1231
|
msgstr ""
|
|
1223
1232
|
|
|
1224
1233
|
msgid "Web Console"
|
|
@@ -1364,12 +1373,3 @@ msgstr ""
|
|
|
1364
1373
|
|
|
1365
1374
|
msgid "using Smart Proxy"
|
|
1366
1375
|
msgstr ""
|
|
1367
|
-
|
|
1368
|
-
msgid "»Action with sub plans«"
|
|
1369
|
-
msgstr ""
|
|
1370
|
-
|
|
1371
|
-
msgid "»Import Puppet classes«"
|
|
1372
|
-
msgstr ""
|
|
1373
|
-
|
|
1374
|
-
msgid "»Import facts«"
|
|
1375
|
-
msgstr ""
|
|
@@ -24,6 +24,9 @@ msgstr ""
|
|
|
24
24
|
msgid "%s ago"
|
|
25
25
|
msgstr "%s ago"
|
|
26
26
|
|
|
27
|
+
msgid "%s job has been invoked"
|
|
28
|
+
msgstr ""
|
|
29
|
+
|
|
27
30
|
msgid "%{description} on %{host}"
|
|
28
31
|
msgstr ""
|
|
29
32
|
|
|
@@ -68,13 +71,13 @@ msgstr ""
|
|
|
68
71
|
msgid "Abort Job"
|
|
69
72
|
msgstr ""
|
|
70
73
|
|
|
71
|
-
msgid "
|
|
74
|
+
msgid "Action with sub plans"
|
|
72
75
|
msgstr ""
|
|
73
76
|
|
|
74
|
-
msgid "
|
|
77
|
+
msgid "Actions"
|
|
75
78
|
msgstr ""
|
|
76
79
|
|
|
77
|
-
msgid "
|
|
80
|
+
msgid "Add Foreign Input Set"
|
|
78
81
|
msgstr ""
|
|
79
82
|
|
|
80
83
|
msgid "Advanced fields"
|
|
@@ -467,9 +470,15 @@ msgstr ""
|
|
|
467
470
|
msgid "Import"
|
|
468
471
|
msgstr ""
|
|
469
472
|
|
|
473
|
+
msgid "Import Puppet classes"
|
|
474
|
+
msgstr ""
|
|
475
|
+
|
|
470
476
|
msgid "Import a job template from ERB"
|
|
471
477
|
msgstr ""
|
|
472
478
|
|
|
479
|
+
msgid "Import facts"
|
|
480
|
+
msgstr ""
|
|
481
|
+
|
|
473
482
|
msgid "Include all inputs from the foreign template"
|
|
474
483
|
msgstr ""
|
|
475
484
|
|
|
@@ -503,9 +512,6 @@ msgstr ""
|
|
|
503
512
|
msgid "Job"
|
|
504
513
|
msgstr ""
|
|
505
514
|
|
|
506
|
-
msgid "Job Category"
|
|
507
|
-
msgstr ""
|
|
508
|
-
|
|
509
515
|
msgid "Job Details"
|
|
510
516
|
msgstr ""
|
|
511
517
|
|
|
@@ -827,7 +833,7 @@ msgstr ""
|
|
|
827
833
|
msgid "Results"
|
|
828
834
|
msgstr ""
|
|
829
835
|
|
|
830
|
-
msgid "Review
|
|
836
|
+
msgid "Review details"
|
|
831
837
|
msgstr ""
|
|
832
838
|
|
|
833
839
|
msgid "Run"
|
|
@@ -851,9 +857,6 @@ msgstr ""
|
|
|
851
857
|
msgid "Running"
|
|
852
858
|
msgstr ""
|
|
853
859
|
|
|
854
|
-
msgid "SSH"
|
|
855
|
-
msgstr ""
|
|
856
|
-
|
|
857
860
|
msgid "SSH Port"
|
|
858
861
|
msgstr ""
|
|
859
862
|
|
|
@@ -869,6 +872,9 @@ msgstr ""
|
|
|
869
872
|
msgid "Schedule Remote Job"
|
|
870
873
|
msgstr ""
|
|
871
874
|
|
|
875
|
+
msgid "Schedule a job"
|
|
876
|
+
msgstr ""
|
|
877
|
+
|
|
872
878
|
msgid "Schedule for future execution"
|
|
873
879
|
msgstr ""
|
|
874
880
|
|
|
@@ -890,6 +896,9 @@ msgstr ""
|
|
|
890
896
|
msgid "Scheduled to start before"
|
|
891
897
|
msgstr ""
|
|
892
898
|
|
|
899
|
+
msgid "Script"
|
|
900
|
+
msgstr ""
|
|
901
|
+
|
|
893
902
|
msgid "Scroll to bottom"
|
|
894
903
|
msgstr ""
|
|
895
904
|
|
|
@@ -1210,16 +1219,16 @@ msgstr ""
|
|
|
1210
1219
|
msgid "Value"
|
|
1211
1220
|
msgstr "Value"
|
|
1212
1221
|
|
|
1213
|
-
msgid "View
|
|
1222
|
+
msgid "View all jobs"
|
|
1214
1223
|
msgstr ""
|
|
1215
1224
|
|
|
1216
|
-
msgid "View
|
|
1225
|
+
msgid "View finished jobs"
|
|
1217
1226
|
msgstr ""
|
|
1218
1227
|
|
|
1219
|
-
msgid "View
|
|
1228
|
+
msgid "View running jobs"
|
|
1220
1229
|
msgstr ""
|
|
1221
1230
|
|
|
1222
|
-
msgid "View
|
|
1231
|
+
msgid "View scheduled jobs"
|
|
1223
1232
|
msgstr ""
|
|
1224
1233
|
|
|
1225
1234
|
msgid "Web Console"
|
|
@@ -1365,12 +1374,3 @@ msgstr ""
|
|
|
1365
1374
|
|
|
1366
1375
|
msgid "using Smart Proxy"
|
|
1367
1376
|
msgstr ""
|
|
1368
|
-
|
|
1369
|
-
msgid "»Action with sub plans«"
|
|
1370
|
-
msgstr ""
|
|
1371
|
-
|
|
1372
|
-
msgid "»Import Puppet classes«"
|
|
1373
|
-
msgstr ""
|
|
1374
|
-
|
|
1375
|
-
msgid "»Import facts«"
|
|
1376
|
-
msgstr ""
|