rocketjob_mission_control 5.0.0.beta1 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/Rakefile +1 -2
- data/app/assets/config/manifest.js +3 -0
- data/app/assets/javascripts/rocket_job_mission_control/application.js +3 -5
- data/app/assets/javascripts/rocket_job_mission_control/nested_fields.js +112 -0
- data/app/assets/stylesheets/rocket_job_mission_control/{application.scss → application.css} +9 -9
- data/app/assets/stylesheets/rocket_job_mission_control/base.css +420 -0
- data/app/assets/stylesheets/rocket_job_mission_control/{callout.scss → callout.css} +50 -52
- data/app/assets/stylesheets/rocket_job_mission_control/jobs.css +56 -0
- data/app/assets/stylesheets/rocket_job_mission_control/worker_processes.css +7 -0
- data/app/controllers/rocket_job_mission_control/application_controller.rb +3 -1
- data/app/controllers/rocket_job_mission_control/dirmon_entries_controller.rb +40 -21
- data/app/controllers/rocket_job_mission_control/jobs_controller.rb +50 -7
- data/app/controllers/rocket_job_mission_control/servers_controller.rb +7 -7
- data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +1 -1
- data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +1 -1
- data/app/helpers/rocket_job_mission_control/application_helper.rb +51 -26
- data/app/helpers/rocket_job_mission_control/dirmon_entries_helper.rb +12 -0
- data/app/helpers/rocket_job_mission_control/jobs_helper.rb +76 -8
- data/app/helpers/rocket_job_mission_control/servers_helper.rb +4 -0
- data/app/models/rocket_job_mission_control/access_policy.rb +2 -2
- data/app/models/rocket_job_mission_control/dirmon_sanitizer.rb +68 -0
- data/app/models/rocket_job_mission_control/job_sanitizer.rb +37 -0
- data/app/views/layouts/rocket_job_mission_control/partials/_flash.html.erb +4 -4
- data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.erb +78 -42
- data/app/views/rocket_job_mission_control/dirmon_entries/_input_categories.html.erb +59 -0
- data/app/views/rocket_job_mission_control/dirmon_entries/_input_category_fields.html.erb +56 -0
- data/app/views/rocket_job_mission_control/dirmon_entries/_output_categories.html.erb +44 -0
- data/app/views/rocket_job_mission_control/dirmon_entries/_output_category_fields.html.erb +36 -0
- data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.erb +22 -16
- data/app/views/rocket_job_mission_control/dirmon_entries/copy.html.erb +4 -0
- data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.erb +7 -3
- data/app/views/rocket_job_mission_control/dirmon_entries/show.html.erb +8 -5
- data/app/views/rocket_job_mission_control/jobs/_attributes.html.erb +28 -0
- data/app/views/rocket_job_mission_control/jobs/_dates.html.erb +35 -0
- data/app/views/rocket_job_mission_control/jobs/_details.html.erb +125 -0
- data/app/views/rocket_job_mission_control/jobs/_exception.html.erb +22 -0
- data/app/views/rocket_job_mission_control/jobs/_input_categories.html.erb +76 -0
- data/app/views/rocket_job_mission_control/jobs/_input_category_fields.html.erb +56 -0
- data/app/views/rocket_job_mission_control/jobs/_output_categories.html.erb +49 -0
- data/app/views/rocket_job_mission_control/jobs/_output_category_fields.html.erb +36 -0
- data/app/views/rocket_job_mission_control/jobs/_retryable.html.erb +16 -0
- data/app/views/rocket_job_mission_control/jobs/_status.html.erb +20 -48
- data/app/views/rocket_job_mission_control/jobs/edit.html.erb +28 -0
- data/app/views/rocket_job_mission_control/jobs/edit_slice.html.erb +2 -2
- data/app/views/rocket_job_mission_control/jobs/exception.html.erb +1 -1
- data/app/views/rocket_job_mission_control/jobs/index.html.erb +24 -18
- data/app/views/rocket_job_mission_control/jobs/show.html.erb +32 -58
- data/app/views/rocket_job_mission_control/jobs/view_slice.html.erb +6 -4
- data/config/initializers/assets.rb +3 -4
- data/config/routes.rb +4 -0
- data/lib/rocket_job_mission_control/engine.rb +0 -3
- data/lib/rocket_job_mission_control/version.rb +1 -1
- data/test/controllers/rocket_job_mission_control/application_controller_test.rb +4 -12
- data/test/controllers/rocket_job_mission_control/dirmon_entries_controller_test.rb +20 -52
- data/test/controllers/rocket_job_mission_control/jobs_controller_test.rb +21 -41
- data/test/controllers/rocket_job_mission_control/servers_controller_test.rb +3 -3
- data/test/models/rocket_job_mission_control/dirmon_sanitizer_test.rb +146 -0
- data/test/models/rocket_job_mission_control/job_sanitizer_test.rb +9 -3
- data/test/test_helper.rb +6 -12
- data/vendor/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.svg +288 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/vendor/assets/javascripts/bootstrap.min.js +3 -4
- data/vendor/assets/javascripts/datatables.min.js +881 -0
- data/vendor/assets/javascripts/jquery-3.5.1.min.js +2 -0
- data/vendor/assets/stylesheets/bootstrap.min.css.erb +6 -0
- data/vendor/assets/stylesheets/bootstrap.min.css.map +1 -1
- data/vendor/assets/stylesheets/datatables.min.css +141 -0
- metadata +60 -63
- data/app/assets/stylesheets/rocket_job_mission_control/base.scss +0 -436
- data/app/assets/stylesheets/rocket_job_mission_control/bootstrap_and_overrides.scss +0 -488
- data/app/assets/stylesheets/rocket_job_mission_control/jobs.scss +0 -72
- data/app/assets/stylesheets/rocket_job_mission_control/worker_processes.scss +0 -9
- data/vendor/assets/stylesheets/bootstrap.min.css +0 -6
@@ -1,58 +1,30 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
</div>
|
6
|
-
|
7
|
-
<% if description = status.delete('description') %>
|
8
|
-
<div class='status-message'><label>Description:</label> <%= description %></div>
|
1
|
+
<%= render partial: 'details', locals: {job: @job} %>
|
2
|
+
<%= render partial: 'dates', locals: {job: @job} %>
|
3
|
+
<% if @job.respond_to?(:failed_at_list) && @job.failed_at_list.present? %>
|
4
|
+
<%= render partial: 'retryable', locals: {job: @job} %>
|
9
5
|
<% end %>
|
10
|
-
|
11
|
-
<% if
|
12
|
-
|
6
|
+
<% @attributes = job_custom_fields(@job) %>
|
7
|
+
<% if @attributes.present? %>
|
8
|
+
<%= render partial: 'attributes', locals: {attributes: @attributes} %>
|
13
9
|
<% end %>
|
14
|
-
|
15
|
-
<% if record_count = status.delete('record_count') %>
|
16
|
-
<div class='status-message'><label>Record Count:</label> <%= record_count %></div>
|
17
|
-
<% end %>
|
18
|
-
|
19
|
-
<div class='created_at'>
|
20
|
-
<label>Created At:</label> <%= status.delete('created_at') %>
|
21
|
-
</div>
|
22
|
-
|
23
|
-
<% if started_at = status.delete('started_at') %>
|
24
|
-
<div class='status-message'><label>Started At:</label> <%= started_at %></div>
|
25
|
-
<% end %>
|
26
|
-
|
27
|
-
<% if percent_complete = status.delete('percent_complete') %>
|
28
|
-
<div class='status-message'><label>% Complete:</label> <%= percent_complete %></div>
|
29
|
-
<% end %>
|
30
|
-
|
31
|
-
<%
|
32
|
-
remaining = {}
|
33
|
-
status.each_pair do |key, value|
|
34
|
-
next if ((value != false) && value.blank?) || ['state', '_type', 'sub_state'].include?(key)
|
35
|
-
if value.kind_of?(Hash) || value.kind_of?(Array)
|
36
|
-
remaining[key] = value
|
37
|
-
next
|
38
|
-
end
|
39
|
-
%>
|
40
|
-
<div class='status-message'><label><%= key.to_s.titleize %>:</label> <%= value %></div>
|
41
|
-
<% end %>
|
42
|
-
|
43
|
-
<div class='clearfix'></div>
|
44
|
-
|
45
|
-
<% if job.respond_to?('input') && job.input.failed.count.positive? %>
|
46
|
-
<% status.delete('exception') %>
|
10
|
+
<% if @job.respond_to?(:input) && @job.input.failed.count.positive? %>
|
47
11
|
<div class='status-message'>
|
48
12
|
<label><%= 'Exceptions' %>:</label>
|
49
13
|
<%= render partial: 'exceptions', locals: {job: @job} %>
|
50
14
|
</div>
|
15
|
+
<% elsif @job.exception.present? %>
|
16
|
+
<%= render partial: 'exception', locals: {job: @job} %>
|
51
17
|
<% end %>
|
52
|
-
|
53
|
-
<% remaining.each_pair do |key, value| %>
|
18
|
+
<% if @job.respond_to?(:statistics) && @job.statistics.present? %>
|
54
19
|
<div class='status-message'>
|
55
|
-
<label
|
56
|
-
<
|
20
|
+
<label>Statistics:</label>
|
21
|
+
<td><%= @job.statistics.ai(html: true, plain: true, sort_keys: true) %></td>
|
57
22
|
</div>
|
23
|
+
<br/>
|
24
|
+
<% end %>
|
25
|
+
<% if @job.respond_to?(:input_categories) && @job.input_categories.present? %>
|
26
|
+
<%= render partial: 'input_categories', locals: {job: @job} %>
|
27
|
+
<% end %>
|
28
|
+
<% if @job.respond_to?(:output_categories) && @job.output_categories.present? %>
|
29
|
+
<%= render partial: 'output_categories', locals: {job: @job} %>
|
58
30
|
<% end %>
|
@@ -24,6 +24,34 @@
|
|
24
24
|
<% end %>
|
25
25
|
</div>
|
26
26
|
</div>
|
27
|
+
|
28
|
+
<% if @job.class.respond_to?(:defined_input_categories) && @job.class.respond_to?(:defined_output_categories) %>
|
29
|
+
<div class="row">
|
30
|
+
<div class="col-sm-6">
|
31
|
+
<div class="panel panel-primary">
|
32
|
+
<div class="panel-body">
|
33
|
+
<div class='lead'>Input Categories</div>
|
34
|
+
|
35
|
+
<%= f.fields_for :input_categories do |i| %>
|
36
|
+
<%= render "input_category_fields.html", f: i %>
|
37
|
+
<% end %>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div class="col-sm-6">
|
43
|
+
<div class="panel panel-success">
|
44
|
+
<div class="panel-body">
|
45
|
+
<div class='lead'>Output Categories</div>
|
46
|
+
|
47
|
+
<%= f.fields_for :output_categories do |o| %>
|
48
|
+
<%= render "output_category_fields.html", f: o %>
|
49
|
+
<% end %>
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
<% end %>
|
27
55
|
</div>
|
28
56
|
</div>
|
29
57
|
|
@@ -6,9 +6,9 @@
|
|
6
6
|
<%= form_for(:job, url: update_slice_job_path(@job, offset: @offset, error_type: @failure_exception.class_name), method: :patch) do |f| %>
|
7
7
|
<% @lines.each_with_index do |line, index| %>
|
8
8
|
<% if @line_index == index %>
|
9
|
-
<%= f.text_area :records, :
|
9
|
+
<%= f.text_area :records, value: line, class: 'input_slices', id: index, multiple: true, rows: 14, cols: 10, wrap: "soft" %>
|
10
10
|
<% else %>
|
11
|
-
<%= f.hidden_field :records, :
|
11
|
+
<%= f.hidden_field :records, value: line, class: 'input_slices', id: index, multiple: true %>
|
12
12
|
<% end %>
|
13
13
|
<% end %>
|
14
14
|
|
@@ -1,28 +1,34 @@
|
|
1
1
|
<div class='job-list'>
|
2
2
|
<div class='list'>
|
3
|
-
<div class=
|
4
|
-
<div class=
|
5
|
-
<
|
6
|
-
|
3
|
+
<div class="panel panel-default">
|
4
|
+
<div class="panel-heading">
|
5
|
+
<div class='row'>
|
6
|
+
<div class='col-sm-10'>
|
7
|
+
<h2><%= @description %> Jobs</h2>
|
8
|
+
</div>
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
10
|
+
<div class='col-sm-2'>
|
11
|
+
<div class='btn btn-default pull-right dt-reload' data-behavior='reload'>
|
12
|
+
<i class='fas fa-sync'></i>
|
13
|
+
</div>
|
14
|
+
</div>
|
11
15
|
</div>
|
12
16
|
</div>
|
13
|
-
</div>
|
14
17
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
<div class="panel-body">
|
19
|
+
<table class='table datatable jobs-datatable' data-source='<%= @data_table_url %>' style='width: 100%'>
|
20
|
+
<thead>
|
21
|
+
<tr>
|
22
|
+
<% @columns.each do |column| %>
|
23
|
+
<th><%= column[:display] %></th>
|
24
|
+
<% end %>
|
25
|
+
</tr>
|
26
|
+
</thead>
|
23
27
|
|
24
|
-
|
25
|
-
|
28
|
+
<tbody></tbody>
|
29
|
+
</table>
|
30
|
+
</div>
|
31
|
+
</div>
|
26
32
|
</div>
|
27
33
|
</div>
|
28
34
|
|
@@ -1,70 +1,44 @@
|
|
1
1
|
<div class='row'>
|
2
|
-
<div
|
3
|
-
<div
|
4
|
-
<div class='lead'><%= @job.class.name %></div>
|
2
|
+
<div id='job'>
|
3
|
+
<div class='lead'><%= image_tag('rocket_job_mission_control/rocket-icon-64x64.png') %><%= @job.class.name %>
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
<div class=
|
9
|
-
|
10
|
-
|
11
|
-
<% if sub_state = @job['sub_state'] %>
|
12
|
-
<div class='job-state inline-block'>
|
13
|
-
<div class='left'>Batch</div>
|
14
|
-
<div class='running right'><%= @job.sub_state %></div>
|
5
|
+
<div class='btn-toolbar job-actions'>
|
6
|
+
<% if @job.scheduled? && can?(:run_now, @job) %>
|
7
|
+
<div class='btn-group'>
|
8
|
+
<%= job_action_links_for_show('Run', rocket_job_mission_control.run_now_job_path(@job), :patch) %>
|
15
9
|
</div>
|
16
10
|
<% end %>
|
17
11
|
|
18
|
-
<div class='
|
19
|
-
|
20
|
-
<% if @job.
|
12
|
+
<div class='left-margin'>
|
13
|
+
<% valid_events = @job.aasm.events.collect { |e| e.name } %>
|
14
|
+
<% if valid_events.include?(:pause) && @job.pausable? && can?(:pause, @job) %>
|
15
|
+
<%= job_action_links_for_show('Pause', rocket_job_mission_control.pause_job_path(@job), :patch) %>
|
16
|
+
<% end %>
|
17
|
+
<% if valid_events.include?(:resume) && can?(:resume, @job) %>
|
18
|
+
<%= job_action_links_for_show('Resume', rocket_job_mission_control.resume_job_path(@job), :patch) %>
|
19
|
+
<% end %>
|
20
|
+
<% if valid_events.include?(:retry) && can?(:retry, @job) %>
|
21
|
+
<%= job_action_links_for_show('Retry', rocket_job_mission_control.retry_job_path(@job), :patch) %>
|
22
|
+
<% end %>
|
23
|
+
<% if valid_events.include?(:fail) && can?(:fail, @job) %>
|
24
|
+
<%= job_action_links_for_show('Fail', rocket_job_mission_control.fail_job_path(@job), :patch) %>
|
25
|
+
<% end %>
|
26
|
+
<% if valid_events.include?(:abort) && can?(:abort, @job) %>
|
27
|
+
<%= job_action_links_for_show('Abort', rocket_job_mission_control.abort_job_path(@job), :patch) %>
|
28
|
+
<% end %>
|
29
|
+
<% if can?(:destroy, @job) %>
|
30
|
+
<%= job_action_links_for_show('Destroy', rocket_job_mission_control.job_path(@job), :delete) %>
|
31
|
+
<% end %>
|
32
|
+
<% unless @job.completed? || @job.aborted? %>
|
21
33
|
<div class='btn-group'>
|
22
|
-
|
34
|
+
<% if can?(:edit, @job) %>
|
35
|
+
<%= link_to 'Edit', edit_job_path(@job), class: 'btn btn-primary' %>
|
36
|
+
<% end %>
|
23
37
|
</div>
|
24
38
|
<% end %>
|
25
|
-
|
26
|
-
<div class='left-margin'>
|
27
|
-
<% valid_events = @job.aasm.events.collect { |e| e.name } %>
|
28
|
-
|
29
|
-
<% if valid_events.include?(:pause) && @job.pausable? && can?(:pause, @job) %>
|
30
|
-
<%= job_action_links_for_show('Pause', rocket_job_mission_control.pause_job_path(@job), :patch) %>
|
31
|
-
<% end %>
|
32
|
-
|
33
|
-
<% if valid_events.include?(:resume) && can?(:resume, @job) %>
|
34
|
-
<%= job_action_links_for_show('Resume', rocket_job_mission_control.resume_job_path(@job), :patch) %>
|
35
|
-
<% end %>
|
36
|
-
|
37
|
-
<% if valid_events.include?(:retry) && can?(:retry, @job) %>
|
38
|
-
<%= job_action_links_for_show('Retry', rocket_job_mission_control.retry_job_path(@job), :patch) %>
|
39
|
-
<% end %>
|
40
|
-
|
41
|
-
<% if valid_events.include?(:fail) && can?(:fail, @job) %>
|
42
|
-
<%= job_action_links_for_show('Fail', rocket_job_mission_control.fail_job_path(@job), :patch) %>
|
43
|
-
<% end %>
|
44
|
-
|
45
|
-
<% if valid_events.include?(:abort) && can?(:abort, @job) %>
|
46
|
-
<%= job_action_links_for_show('Abort', rocket_job_mission_control.abort_job_path(@job), :patch) %>
|
47
|
-
<% end %>
|
48
|
-
|
49
|
-
<% if can?(:destroy, @job) %>
|
50
|
-
<%= job_action_links_for_show('Destroy', rocket_job_mission_control.job_path(@job), :delete) %>
|
51
|
-
<% end %>
|
52
|
-
|
53
|
-
<% unless @job.completed? || @job.aborted? %>
|
54
|
-
<div class='btn-group'>
|
55
|
-
<% if can?(:edit, @job) %>
|
56
|
-
<%= link_to 'Edit', edit_job_path(@job), class: 'btn btn-primary' %>
|
57
|
-
<% end %>
|
58
|
-
</div>
|
59
|
-
<% end %>
|
60
|
-
</div>
|
61
39
|
</div>
|
62
40
|
</div>
|
41
|
+
</div>
|
63
42
|
</div>
|
64
43
|
</div>
|
65
|
-
|
66
|
-
<div class='row'>
|
67
|
-
<div class='col-md-12'>
|
68
|
-
<%= render partial: 'status', locals: {job: @job} %>
|
69
|
-
</div>
|
70
|
-
</div>
|
44
|
+
<%= render partial: 'status', locals: {job: @job} %>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<div class='clearfix'></div>
|
12
12
|
|
13
13
|
<div class='message'>
|
14
|
-
<pre><code><%= @failure_exception.message %></code></pre>
|
14
|
+
<pre><code class="language-html"><%= @failure_exception.message %></code></pre>
|
15
15
|
</div>
|
16
16
|
|
17
17
|
</div>
|
@@ -23,7 +23,9 @@
|
|
23
23
|
<%= render partial: 'layouts/rocket_job_mission_control/partials/flash' %>
|
24
24
|
<br>
|
25
25
|
<% end %>
|
26
|
+
|
26
27
|
<div class='message' tabindex="<%= index + 1 %>" id="<%= index + 1 %>">
|
28
|
+
|
27
29
|
<pre><span>Line: <%= index + 1 %></span><br><br><code><%= line %></code><br><br>
|
28
30
|
<% if can?(:edit_slice, @job) %><div class='edit_button'><%= link_to "Edit", edit_slice_job_path(@job, offset: @offset, error_type: @failure_exception.class_name, line_index: index), class: 'btn btn-primary' %></div><% end %><div class='edit_button'> <%= link_to "Back", job_path(@job), class: 'btn btn-warning' %></div>
|
29
31
|
</pre>
|
@@ -41,7 +43,7 @@
|
|
41
43
|
</div>
|
42
44
|
|
43
45
|
<script>
|
44
|
-
|
45
|
-
|
46
|
-
|
46
|
+
$(document).ready(function () {
|
47
|
+
document.getElementById(<%= @view_slice_pagination[:record_number] %>).focus();
|
48
|
+
});
|
47
49
|
</script>
|
@@ -1,8 +1,7 @@
|
|
1
|
-
Rails.application.config.assets.precompile <<
|
2
|
-
true if path =~ /\.(eot|svg|ttf|woff)\z/
|
3
|
-
end
|
4
|
-
|
1
|
+
Rails.application.config.assets.precompile << ["*.svg", "*.eot", "*.woff", "*.ttf"]
|
5
2
|
Rails.application.config.assets.precompile += %w[
|
3
|
+
rocket_job_mission_control/application.css
|
4
|
+
rocket_job_mission_control/application.js
|
6
5
|
rocket_job_mission_control/favicon.png
|
7
6
|
rocket_job_mission_control/safari-pinned-tab.svg
|
8
7
|
rocket_job_mission_control/favicon-16x16.png
|
data/config/routes.rb
CHANGED
@@ -59,6 +59,10 @@ RocketJobMissionControl::Engine.routes.draw do
|
|
59
59
|
member do
|
60
60
|
put :enable
|
61
61
|
put :disable
|
62
|
+
# Create the path: copy_dirmon_entry GET /dirmon_entries/:id/copy(.:format)
|
63
|
+
get :copy
|
64
|
+
# Create the path: PATCH /dirmon_entries/:id/replicate(.:format) rocket_job_mission_control/dirmon_entries#replicate
|
65
|
+
patch :replicate
|
62
66
|
end
|
63
67
|
end
|
64
68
|
|
@@ -13,22 +13,14 @@ module RocketJobMissionControl
|
|
13
13
|
describe TestController do
|
14
14
|
describe "#with_time_zone" do
|
15
15
|
it "uses correct timezone with session and time_zone set" do
|
16
|
-
|
17
|
-
|
18
|
-
get :index
|
19
|
-
else
|
20
|
-
get :index, {}, {"time_zone" => "America/Los_Angeles"}
|
21
|
-
end
|
16
|
+
session["time_zone"] = "America/Los_Angeles"
|
17
|
+
get :index
|
22
18
|
assert_equal "America/Los_Angeles", assigns(:time_zone).name
|
23
19
|
end
|
24
20
|
|
25
21
|
it "uses correct timezone with session, but no time_zone set" do
|
26
|
-
|
27
|
-
|
28
|
-
get :index
|
29
|
-
else
|
30
|
-
get :index, {}, {"user_id" => "42"}
|
31
|
-
end
|
22
|
+
session["user_id"] = "42"
|
23
|
+
get :index
|
32
24
|
assert_equal "UTC", assigns(:time_zone).name
|
33
25
|
end
|
34
26
|
|
@@ -37,9 +37,7 @@ module RocketJobMissionControl
|
|
37
37
|
describe "PATCH #enable" do
|
38
38
|
describe "when transition is allowed" do
|
39
39
|
before do
|
40
|
-
params
|
41
|
-
params = {params: params} if Rails.version.to_i >= 5
|
42
|
-
patch :enable, params
|
40
|
+
patch :enable, params: {id: existing_dirmon_entry.id}
|
43
41
|
end
|
44
42
|
|
45
43
|
it do
|
@@ -54,9 +52,7 @@ module RocketJobMissionControl
|
|
54
52
|
describe "when transition is not allowed" do
|
55
53
|
before do
|
56
54
|
existing_dirmon_entry.enable!
|
57
|
-
params
|
58
|
-
params = {params: params} if Rails.version.to_i >= 5
|
59
|
-
patch :enable, params
|
55
|
+
patch :enable, params: {id: existing_dirmon_entry.id}
|
60
56
|
end
|
61
57
|
|
62
58
|
it "succeeds" do
|
@@ -64,7 +60,7 @@ module RocketJobMissionControl
|
|
64
60
|
end
|
65
61
|
|
66
62
|
it "alerts the user" do
|
67
|
-
assert_equal I18n.t(:failure, scope: %i[dirmon_entry enable]), flash[:
|
63
|
+
assert_equal I18n.t(:failure, scope: %i[dirmon_entry enable]), flash[:danger]
|
68
64
|
end
|
69
65
|
end
|
70
66
|
end
|
@@ -73,9 +69,7 @@ module RocketJobMissionControl
|
|
73
69
|
describe "when transition is allowed" do
|
74
70
|
before do
|
75
71
|
existing_dirmon_entry.enable!
|
76
|
-
params
|
77
|
-
params = {params: params} if Rails.version.to_i >= 5
|
78
|
-
patch :disable, params
|
72
|
+
patch :disable, params: {id: existing_dirmon_entry.id}
|
79
73
|
end
|
80
74
|
|
81
75
|
it do
|
@@ -89,9 +83,7 @@ module RocketJobMissionControl
|
|
89
83
|
|
90
84
|
describe "when transition is not allowed" do
|
91
85
|
before do
|
92
|
-
params
|
93
|
-
params = {params: params} if Rails.version.to_i >= 5
|
94
|
-
patch :disable, params
|
86
|
+
patch :disable, params: {id: existing_dirmon_entry.id}
|
95
87
|
end
|
96
88
|
|
97
89
|
it "succeeds" do
|
@@ -99,7 +91,7 @@ module RocketJobMissionControl
|
|
99
91
|
end
|
100
92
|
|
101
93
|
it "alerts the user" do
|
102
|
-
assert_equal I18n.t(:failure, scope: %i[dirmon_entry disable]), flash[:
|
94
|
+
assert_equal I18n.t(:failure, scope: %i[dirmon_entry disable]), flash[:danger]
|
103
95
|
end
|
104
96
|
end
|
105
97
|
end
|
@@ -108,9 +100,7 @@ module RocketJobMissionControl
|
|
108
100
|
let(:entry_params) { {} }
|
109
101
|
|
110
102
|
before do
|
111
|
-
params
|
112
|
-
params = {params: entry_params} if Rails.version.to_i >= 5
|
113
|
-
get :new, params
|
103
|
+
get :new, params: entry_params
|
114
104
|
end
|
115
105
|
|
116
106
|
it "succeeds" do
|
@@ -163,8 +153,7 @@ module RocketJobMissionControl
|
|
163
153
|
describe "with valid parameters" do
|
164
154
|
before do
|
165
155
|
params = {id: existing_dirmon_entry.id, rocket_job_dirmon_entry: {pattern: "the_path2", job_class_name: job_class_name}}
|
166
|
-
|
167
|
-
patch :update, params
|
156
|
+
patch :update, params: params
|
168
157
|
end
|
169
158
|
|
170
159
|
it "redirects to the updated entry" do
|
@@ -179,8 +168,7 @@ module RocketJobMissionControl
|
|
179
168
|
describe "with invalid parameters" do
|
180
169
|
before do
|
181
170
|
params = {id: existing_dirmon_entry.id, rocket_job_dirmon_entry: {job_class_name: "FakeAndBadJob"}}
|
182
|
-
|
183
|
-
patch :update, params
|
171
|
+
patch :update, params: params
|
184
172
|
end
|
185
173
|
|
186
174
|
it "renders the edit template" do
|
@@ -209,9 +197,7 @@ module RocketJobMissionControl
|
|
209
197
|
end
|
210
198
|
|
211
199
|
before do
|
212
|
-
params
|
213
|
-
params = {params: params} if Rails.version.to_i >= 5
|
214
|
-
post :create, params
|
200
|
+
post :create, params: {rocket_job_dirmon_entry: dirmon_params}
|
215
201
|
end
|
216
202
|
|
217
203
|
it "creates the entry" do
|
@@ -250,9 +236,7 @@ module RocketJobMissionControl
|
|
250
236
|
end
|
251
237
|
|
252
238
|
before do
|
253
|
-
params
|
254
|
-
params = {params: params} if Rails.version.to_i >= 5
|
255
|
-
post :create, params
|
239
|
+
post :create, params: {rocket_job_dirmon_entry: dirmon_params}
|
256
240
|
end
|
257
241
|
|
258
242
|
describe "on model attributes" do
|
@@ -270,9 +254,7 @@ module RocketJobMissionControl
|
|
270
254
|
|
271
255
|
describe "GET #edit" do
|
272
256
|
before do
|
273
|
-
params
|
274
|
-
params = {params: params} if Rails.version.to_i >= 5
|
275
|
-
get :edit, params
|
257
|
+
get :edit, params: {id: existing_dirmon_entry.id}
|
276
258
|
end
|
277
259
|
|
278
260
|
it "succeeds" do
|
@@ -287,9 +269,7 @@ module RocketJobMissionControl
|
|
287
269
|
describe "GET #show" do
|
288
270
|
describe "with an invalid id" do
|
289
271
|
before do
|
290
|
-
params
|
291
|
-
params = {params: params} if Rails.version.to_i >= 5
|
292
|
-
get :show, params
|
272
|
+
get :show, params: {id: 42}
|
293
273
|
end
|
294
274
|
|
295
275
|
it "redirects" do
|
@@ -297,15 +277,13 @@ module RocketJobMissionControl
|
|
297
277
|
end
|
298
278
|
|
299
279
|
it "adds a flash alert message" do
|
300
|
-
assert_equal I18n.t(:failure, scope: %i[dirmon_entry find], id: 42), flash[:
|
280
|
+
assert_equal I18n.t(:failure, scope: %i[dirmon_entry find], id: 42), flash[:danger]
|
301
281
|
end
|
302
282
|
end
|
303
283
|
|
304
284
|
describe "with a valid id" do
|
305
285
|
before do
|
306
|
-
params
|
307
|
-
params = {params: params} if Rails.version.to_i >= 5
|
308
|
-
get :show, params
|
286
|
+
get :show, params: {id: existing_dirmon_entry.id}
|
309
287
|
end
|
310
288
|
|
311
289
|
it "succeeds" do
|
@@ -321,9 +299,7 @@ module RocketJobMissionControl
|
|
321
299
|
describe "DELETE #destroy" do
|
322
300
|
describe "with a valid id" do
|
323
301
|
before do
|
324
|
-
params
|
325
|
-
params = {params: params} if Rails.version.to_i >= 5
|
326
|
-
delete :destroy, params
|
302
|
+
delete :destroy, params: {id: existing_dirmon_entry.id}
|
327
303
|
end
|
328
304
|
|
329
305
|
it "redirects to index" do
|
@@ -464,9 +440,7 @@ module RocketJobMissionControl
|
|
464
440
|
%i[admin editor operator manager dirmon].each do |role|
|
465
441
|
it "allows role #{role} to access #{method}" do
|
466
442
|
set_role(role)
|
467
|
-
params
|
468
|
-
params = {params: params} if Rails.version.to_i >= 5
|
469
|
-
patch :enable, params
|
443
|
+
patch :enable, params: {id: existing_dirmon_entry.id}
|
470
444
|
|
471
445
|
assert_response(:redirect)
|
472
446
|
end
|
@@ -478,9 +452,7 @@ module RocketJobMissionControl
|
|
478
452
|
%i[admin editor operator manager dirmon].each do |role|
|
479
453
|
it "creates dirmon entry" do
|
480
454
|
set_role(role)
|
481
|
-
params
|
482
|
-
params = {params: params} if Rails.version.to_i >= 5
|
483
|
-
post :create, params
|
455
|
+
post :create, params: {rocket_job_dirmon_entry: dirmon_params}
|
484
456
|
|
485
457
|
assert_response(:redirect)
|
486
458
|
end
|
@@ -488,9 +460,7 @@ module RocketJobMissionControl
|
|
488
460
|
|
489
461
|
it "deletes dirmon entry" do
|
490
462
|
set_role(:admin)
|
491
|
-
params
|
492
|
-
params = {params: params} if Rails.version.to_i >= 5
|
493
|
-
delete :destroy, params
|
463
|
+
delete :destroy, params: {id: existing_dirmon_entry.id}
|
494
464
|
|
495
465
|
assert_response(:redirect)
|
496
466
|
end
|
@@ -499,9 +469,7 @@ module RocketJobMissionControl
|
|
499
469
|
it "raises authentication error for #{role}" do
|
500
470
|
set_role(role)
|
501
471
|
assert_raises AccessGranted::AccessDenied do
|
502
|
-
params
|
503
|
-
params = {params: params} if Rails.version.to_i >= 5
|
504
|
-
delete :destroy, params
|
472
|
+
delete :destroy, params: {id: existing_dirmon_entry.id}
|
505
473
|
end
|
506
474
|
end
|
507
475
|
end
|