foreman-tasks 0.7.12 → 0.7.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/foreman_tasks/api/tasks_controller.rb +4 -4
- data/app/controllers/foreman_tasks/tasks_controller.rb +1 -1
- data/app/helpers/foreman_tasks/foreman_tasks_helper.rb +9 -2
- data/app/lib/actions/action_with_sub_plans.rb +1 -1
- data/app/lib/actions/foreman/puppetclass/import.rb +2 -2
- data/app/lib/actions/proxy_action.rb +1 -1
- data/app/models/foreman_tasks/triggering.rb +1 -1
- data/app/views/foreman_tasks/recurring_logics/index.html.erb +2 -2
- data/app/views/foreman_tasks/task_groups/recurring_logic_task_groups/_recurring_logic_task_group.html.erb +2 -2
- data/app/views/foreman_tasks/tasks/dashboard/_latest_tasks_in_error_warning.html.erb +1 -1
- data/lib/foreman_tasks/dynflow.rb +0 -2
- data/lib/foreman_tasks/engine.rb +16 -4
- data/lib/foreman_tasks/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 540901d45b40d16fded94918dcf5e85a6837366c
|
4
|
+
data.tar.gz: c170dac55f4b345385ff53bb29985535634816ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8126d89fc3a5fd2c579ffbae50baf44bdedf93986e052079db70dc683a80f255946014e741a075aa271617befa62347bad2c12cebd59520570891aed24706f4d
|
7
|
+
data.tar.gz: 392ae556aab5d96b791d09a1929b439beaf21524981c48e97097a96336b5010082a3eb46b8fc30121cb99d66bbb70f85ad57d0483582aa7c2a05bd2147fd15dd
|
@@ -86,7 +86,7 @@ module ForemanTasks
|
|
86
86
|
|
87
87
|
api :POST, '/tasks/bulk_resume', N_('Resume all paused error tasks')
|
88
88
|
param :search, String, :desc => N_('Resume tasks matching search string')
|
89
|
-
param :task_ids, Array, :desc => N_('Resume specific tasks by
|
89
|
+
param :task_ids, Array, :desc => N_('Resume specific tasks by ID')
|
90
90
|
def bulk_resume
|
91
91
|
scope = resource_scope
|
92
92
|
scope = scope.search_for(params[:search]) if params[:search]
|
@@ -125,7 +125,7 @@ module ForemanTasks
|
|
125
125
|
param :search, String, :desc => N_("Search string")
|
126
126
|
param :page, :number, :desc => N_("Page number, starting at 1")
|
127
127
|
param :per_page, :number, :desc => N_("Number of results per page to return")
|
128
|
-
param :order, String, :desc => N_("Sort field and order,
|
128
|
+
param :order, String, :desc => N_("Sort field and order, e.g. 'name DESC'")
|
129
129
|
param :sort, Hash, :desc => N_("Hash version of 'order' param") do
|
130
130
|
param :by, String, :desc => N_("Field to sort the results on")
|
131
131
|
param :order, String, :desc => N_("How to order the sorted results (e.g. ASC for ascending)")
|
@@ -164,7 +164,7 @@ module ForemanTasks
|
|
164
164
|
api :POST, '/tasks/callback', N_("Send data to the task from external executor (such as smart_proxy_dynflow)")
|
165
165
|
param :callback, Hash do
|
166
166
|
param :task_id, :identifier, :desc => N_("UUID of the task")
|
167
|
-
param :step_id, String, :desc => N_("The
|
167
|
+
param :step_id, String, :desc => N_("The ID of the step inside the execution plan to send the event to")
|
168
168
|
end
|
169
169
|
param :data, Hash, :desc => N_("Data to be sent to the action")
|
170
170
|
def callback
|
@@ -213,7 +213,7 @@ module ForemanTasks
|
|
213
213
|
end
|
214
214
|
scope.where(id: search_params[:task_id])
|
215
215
|
else
|
216
|
-
raise BadRequest, _("
|
216
|
+
raise BadRequest, _("Type %s for search_params is not supported") % search_params[:type]
|
217
217
|
end
|
218
218
|
end
|
219
219
|
|
@@ -31,7 +31,7 @@ module ForemanTasks
|
|
31
31
|
if task.cancel
|
32
32
|
flash[:notice] = _('Trying to cancel the task')
|
33
33
|
else
|
34
|
-
flash[:warning] = _('The task
|
34
|
+
flash[:warning] = _('The task cannot be cancelled at the moment.')
|
35
35
|
end
|
36
36
|
redirect_to :back
|
37
37
|
end
|
@@ -25,7 +25,7 @@ module ForemanTasks
|
|
25
25
|
|
26
26
|
def recurring_logic_next_occurrence(recurring_logic)
|
27
27
|
if %w(finished cancelled).include? recurring_logic.state
|
28
|
-
|
28
|
+
'-'
|
29
29
|
else
|
30
30
|
recurring_logic.next_occurrence_time
|
31
31
|
end
|
@@ -87,15 +87,20 @@ module ForemanTasks
|
|
87
87
|
|
88
88
|
def cronline_fieldset(f, triggering)
|
89
89
|
options = [
|
90
|
+
# TRANSLATORS: this translation is referring to an option which is a time interval
|
90
91
|
_('is minute (range: 0-59)'),
|
92
|
+
# TRANSLATORS: this translation is referring to an option which is a time interval
|
91
93
|
_('is hour (range: 0-23)'),
|
94
|
+
# TRANSLATORS: this translation is referring to an option which is a time interval
|
92
95
|
_('is day of month (range: 1-31)'),
|
96
|
+
# TRANSLATORS: this translation is referring to an option which is a time interval
|
93
97
|
_('is month (range: 1-12)'),
|
98
|
+
# TRANSLATORS: this translation is referring to an option which is a time interval
|
94
99
|
_('is day of week (range: 0-6)')
|
95
100
|
].map { |opt| content_tag(:li, opt) }.join
|
96
101
|
help = content_tag(:span, nil, :class => 'help-inline') do
|
97
102
|
popover(_('Explanation'),
|
98
|
-
_("Cron line format 'a b c d e', where
|
103
|
+
_("Cron line format 'a b c d e', where: %s") % ("<br><ol type=\"a\">#{options}</ol>"))
|
99
104
|
end
|
100
105
|
content_tag(:fieldset, nil, :class => "input_type_form #{'hidden' unless triggering.input_type == :cronline}", :id => "input_type_cronline") do
|
101
106
|
text_f f, :cronline, :label => _('Cron line'), :placeholder => '* * * * *', :help_inline => help
|
@@ -128,11 +133,13 @@ module ForemanTasks
|
|
128
133
|
def time_picker_fieldset(f, triggering)
|
129
134
|
tags = []
|
130
135
|
tags << content_tag(:fieldset, nil, :id => 'time_picker', :class => "input_type_form #{'hidden' if triggering.input_type == :cronline}") do
|
136
|
+
# TRANSLATORS: Time widget for when a task should start
|
131
137
|
time_f(f, :time, { :label => _("At"), :id => 'something' }, { :time_separator => '' })
|
132
138
|
end
|
133
139
|
tags << number_f(f, :max_iteration, :label => _('Repeat N times'), :min => 1, :placeholder => 'N')
|
134
140
|
tags << field(f, :end_time_limit_select, :label => _("Ends"), :control_group_id => "end_time_limit_select") do
|
135
141
|
radio_button_f(f, :end_time_limited, :value => false, :checked=> true, :text => _("Never"), :class => 'end_time_limit_selector') +
|
142
|
+
# TRANSLATORS: Button text for saying when a task should end
|
136
143
|
radio_button_f(f, :end_time_limited, :value => true, :text => _("On"), :class => 'end_time_limit_selector')
|
137
144
|
end
|
138
145
|
tags << content_tag(:fieldset, nil, :id => 'end_time_limit_form', :class => "input_type_form #{'hidden' unless triggering.end_time_limited}") do
|
@@ -12,7 +12,7 @@ module Actions
|
|
12
12
|
|
13
13
|
def humanized_output
|
14
14
|
return unless counts_set?
|
15
|
-
_("%{total}
|
15
|
+
_("%{total} task(s), %{success} success, %{failed} fail") %
|
16
16
|
{ total: output[:total_count],
|
17
17
|
success: output[:success_count],
|
18
18
|
failed: output[:failed_count] }
|
@@ -15,7 +15,7 @@ module Actions
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def humanized_name
|
18
|
-
_("Import
|
18
|
+
_("Import Puppet classes")
|
19
19
|
end
|
20
20
|
|
21
21
|
# default value for cleaning up the tasks, it can be overriden by settings
|
@@ -25,4 +25,4 @@ module Actions
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -57,7 +57,7 @@ module Actions
|
|
57
57
|
response = proxy.status_of_task(output[:proxy_task_id])
|
58
58
|
if %w(stopped paused).include? response['state']
|
59
59
|
if response['result'] == 'error'
|
60
|
-
raise ::Foreman::Exception, _("The smart proxy task
|
60
|
+
raise ::Foreman::Exception, _("The smart proxy task %s failed.") % (output[:proxy_task_id])
|
61
61
|
else
|
62
62
|
on_data(response['actions'].find { |block_action| block_action['class'] == proxy_action_name }['output'])
|
63
63
|
end
|
@@ -96,7 +96,7 @@ module ForemanTasks
|
|
96
96
|
def correct_cronline
|
97
97
|
ForemanTasks::RecurringLogic.new_from_cronline(cronline).next_occurrence_time
|
98
98
|
rescue ArgumentError => _
|
99
|
-
self.errors.add(:cronline, _("
|
99
|
+
self.errors.add(:cronline, _("%s is not valid format of cron line")) % (cronline)
|
100
100
|
end
|
101
101
|
end
|
102
102
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
<table class="table table-fixed table-bordered table-striped table-condensed">
|
5
5
|
<thead>
|
6
|
-
<th><%= N_("
|
6
|
+
<th><%= N_("Cron line") %></th>
|
7
7
|
<th><%= N_("Task count") %></th>
|
8
8
|
<th><%= N_("Action") %></th>
|
9
9
|
<th><%= N_("Last occurrence") %></th>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<td><%= link_to(recurring_logic.cron_line, foreman_tasks_recurring_logic_path(recurring_logic)) %></td>
|
20
20
|
<td><%= link_to(recurring_logic.tasks.count, foreman_tasks_tasks_url(:search => "task_group.id = #{recurring_logic.task_group.id}")) %></td>
|
21
21
|
<td><%= format_task_input(recurring_logic.tasks.first, true) %></td>
|
22
|
-
<td><%= recurring_logic.tasks.order(:started_at).where('started_at IS NOT NULL').last.try(:started_at) ||
|
22
|
+
<td><%= recurring_logic.tasks.order(:started_at).where('started_at IS NOT NULL').last.try(:started_at) || "-" %></td>
|
23
23
|
<td><%= recurring_logic_next_occurrence recurring_logic %></td>
|
24
24
|
<td><%= recurring_logic.iteration %></td>
|
25
25
|
<td><%= format_recurring_logic_limit recurring_logic.max_iteration %></td>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<td><%= link_to(recurring_logic.id, recurring_logic) %></td>
|
6
6
|
</tr>
|
7
7
|
<tr>
|
8
|
-
<th><%= N_("
|
8
|
+
<th><%= N_("Cron line") %></th>
|
9
9
|
<td><%= recurring_logic.cron_line %></td>
|
10
10
|
</tr>
|
11
11
|
<tr>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
</tr>
|
15
15
|
<tr>
|
16
16
|
<th><%= N_("Last occurrence") %></th>
|
17
|
-
<td><%= recurring_logic.tasks.order(:started_at).where('started_at IS NOT NULL').last.try(:started_at) ||
|
17
|
+
<td><%= recurring_logic.tasks.order(:started_at).where('started_at IS NOT NULL').last.try(:started_at) || '-' %></td>
|
18
18
|
</tr>
|
19
19
|
<tr>
|
20
20
|
<th><%= N_("Next occurrence") %></th>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<h4><%= link_to _("Latest Warning/Error Tasks
|
1
|
+
<h4><%= link_to _("Latest Warning/Error Tasks"), foreman_tasks_tasks_path(:order=>'started_at DESC') %></h4>
|
2
2
|
<table class="table table-striped">
|
3
3
|
<tr>
|
4
4
|
<th><%= _("Name") %></th>
|
@@ -41,8 +41,6 @@ module ForemanTasks
|
|
41
41
|
@world = world
|
42
42
|
|
43
43
|
unless config.remote?
|
44
|
-
at_exit { world.terminate.wait }
|
45
|
-
|
46
44
|
# don't try to do any rescuing until the tables are properly migrated
|
47
45
|
if !Foreman.in_rake?('db:migrate') && (ForemanTasks::Task.table_exists? rescue(false))
|
48
46
|
world.auto_execute
|
data/lib/foreman_tasks/engine.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'fast_gettext'
|
2
|
+
require 'gettext_i18n_rails'
|
3
|
+
|
1
4
|
module ForemanTasks
|
2
5
|
class Engine < ::Rails::Engine
|
3
6
|
engine_name "foreman_tasks"
|
@@ -24,19 +27,28 @@ module ForemanTasks
|
|
24
27
|
SETTINGS[:foreman_tasks] = { :assets => { :precompile => assets_to_precompile } }
|
25
28
|
end
|
26
29
|
|
30
|
+
initializer 'foreman_tasks.register_gettext', :after => :load_config_initializers do
|
31
|
+
locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
|
32
|
+
locale_domain = 'foreman_tasks'
|
33
|
+
|
34
|
+
Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
|
35
|
+
end
|
36
|
+
|
27
37
|
initializer 'foreman_tasks.register_plugin', :after => :finisher_hook do |app|
|
28
38
|
Foreman::Plugin.register :"foreman-tasks" do
|
29
39
|
requires_foreman '>= 1.9.0'
|
30
|
-
divider :top_menu, :parent => :monitor_menu, :
|
40
|
+
divider :top_menu, :parent => :monitor_menu, :last => true
|
31
41
|
menu :top_menu, :tasks,
|
32
42
|
:url_hash => { :controller => 'foreman_tasks/tasks', :action => :index },
|
33
43
|
:caption => N_('Tasks'),
|
34
|
-
:parent => :monitor_menu
|
44
|
+
:parent => :monitor_menu,
|
45
|
+
:last => true
|
35
46
|
|
36
|
-
menu :top_menu, :recurring_logics,
|
47
|
+
menu :top_menu, :recurring_logics,
|
37
48
|
:url_hash => { :controller => 'foreman_tasks/recurring_logics', :action => :index },
|
38
49
|
:caption => N_('Recurring logics'),
|
39
|
-
:parent => :monitor_menu
|
50
|
+
:parent => :monitor_menu,
|
51
|
+
:last => true
|
40
52
|
|
41
53
|
security_block :foreman_tasks do |map|
|
42
54
|
permission :view_foreman_tasks, {:'foreman_tasks/tasks' => [:auto_complete_search, :sub_tasks, :index, :show],
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman-tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Nečas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dynflow
|