sidekiq-undertaker 1.1.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-build.yml +31 -3
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_codeclimate.yml +9 -0
  5. data/CHANGELOG.md +19 -0
  6. data/README.md +8 -6
  7. data/assets/Undertaker_demo_1_job_1_error.png +0 -0
  8. data/assets/Undertaker_demo_1_job_all_errors.png +0 -0
  9. data/assets/Undertaker_demo_all_errors.png +0 -0
  10. data/assets/Undertaker_demo_all_jobs.png +0 -0
  11. data/assets/Undertaker_demo_all_jobs_1_error.png +0 -0
  12. data/lib/sidekiq/undertaker/dead_job.rb +10 -2
  13. data/lib/sidekiq/undertaker/job_distributor.rb +4 -0
  14. data/lib/sidekiq/undertaker/job_filter.rb +7 -2
  15. data/lib/sidekiq/undertaker/version.rb +1 -1
  16. data/lib/sidekiq/undertaker/web_extension/api_helpers.rb +104 -26
  17. data/lib/sidekiq/undertaker/web_extension.rb +17 -8
  18. data/sidekiq-undertaker.gemspec +6 -5
  19. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +32 -18
  20. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +37 -39
  21. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +37 -39
  22. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classerror_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +231 -0
  23. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classerror_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +231 -0
  24. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +26 -21
  25. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_job_class_error_and_specific_error_message/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +284 -0
  26. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_job_class_error_and_specific_error_message/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +1310 -0
  27. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +24 -19
  28. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +72 -67
  29. data/spec/sidekiq/undertaker/dead_jobs_spec.rb +7 -4
  30. data/spec/sidekiq/undertaker/job_distributor_spec.rb +41 -19
  31. data/spec/sidekiq/undertaker/job_filter_spec.rb +26 -9
  32. data/spec/sidekiq/undertaker/web_extension_spec.rb +172 -14
  33. data/spec/spec_helper.rb +4 -0
  34. data/web/locales/en.yml +2 -0
  35. data/web/views/filter.erb +17 -1
  36. data/web/views/filter_job_class.erb +8 -8
  37. data/web/views/filter_job_class_error_class.erb +36 -0
  38. data/web/views/morgue.erb +9 -2
  39. metadata +38 -30
  40. data/.travis.yml +0 -51
  41. data/Demo_Filter.png +0 -0
  42. data/Demo_Job_Filter.png +0 -0
  43. data/Demo_Morgue_1_Job.png +0 -0
  44. data/Demo_Morgue_all.png +0 -0
@@ -18,7 +18,7 @@
18
18
  <meta name="google" content="notranslate" />
19
19
 
20
20
  </head>
21
- <body class="admin" data-poll-path="" data-locale="en">
21
+ <body class="admin" data-locale="en">
22
22
  <div class="navbar navbar-default navbar-fixed-top">
23
23
  <div class="container-fluid">
24
24
  <div class="navbar-header" data-navbar="static">
@@ -29,9 +29,8 @@
29
29
  </button>
30
30
  <div class="navbar-toggle collapsed navbar-livereload">
31
31
 
32
-
33
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
34
-
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
35
34
 
36
35
 
37
36
 
@@ -95,9 +94,8 @@
95
94
  <li class="navbar-livereload">
96
95
  <div class="poll-wrapper">
97
96
 
98
-
99
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
100
-
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
101
99
 
102
100
 
103
101
 
@@ -114,40 +112,40 @@
114
112
  <div class="col-sm-12 summary_bar">
115
113
  <ul class="list-unstyled summary row">
116
114
  <li class="processed col-sm-1">
117
- <span class="count">0</span>
115
+ <span id="txtProcessed" class="count">0</span>
118
116
  <span class="desc">Processed</span>
119
117
  </li>
120
118
  <li class="failed col-sm-1">
121
- <span class="count">0</span>
119
+ <span id="txtFailed" class="count">0</span>
122
120
  <span class="desc">Failed</span>
123
121
  </li>
124
122
  <li class="busy col-sm-1">
125
123
  <a href="/sidekiq/busy">
126
- <span class="count">0</span>
124
+ <span id="txtBusy" class="count">0</span>
127
125
  <span class="desc">Busy</span>
128
126
  </a>
129
127
  </li>
130
128
  <li class="enqueued col-sm-1">
131
129
  <a href="/sidekiq/queues">
132
- <span class="count">0</span>
130
+ <span id="txtEnqueued" class="count">0</span>
133
131
  <span class="desc">Enqueued</span>
134
132
  </a>
135
133
  </li>
136
134
  <li class="retries col-sm-1">
137
135
  <a href="/sidekiq/retries">
138
- <span class="count">0</span>
136
+ <span id="txtRetries" class="count">0</span>
139
137
  <span class="desc">Retries</span>
140
138
  </a>
141
139
  </li>
142
140
  <li class="scheduled col-sm-1">
143
141
  <a href="/sidekiq/scheduled">
144
- <span class="count">0</span>
142
+ <span id="txtScheduled" class="count">0</span>
145
143
  <span class="desc">Scheduled</span>
146
144
  </a>
147
145
  </li>
148
146
  <li class="dead col-sm-1">
149
147
  <a href="/sidekiq/morgue">
150
- <span class="count">4</span>
148
+ <span id="txtDead" class="count">4</span>
151
149
  <span class="desc">Dead</span>
152
150
  </a>
153
151
  </li>
@@ -162,6 +160,7 @@
162
160
  <b>2</b> dead jobs
163
161
  of <b>HardWorker</b> class
164
162
  with <b>RuntimeError</b> exception
163
+
165
164
  in <b>1_hour</b> bucket
166
165
  </h3>
167
166
  </div>
@@ -209,7 +208,7 @@
209
208
  <div class="args">&quot;asdf&quot;, 1234</div>
210
209
  </td>
211
210
  <td>
212
- <div>RuntimeError: Some fake message</div>
211
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
213
212
  </td>
214
213
  </tr>
215
214
 
@@ -230,21 +229,27 @@
230
229
  <div class="args">&quot;asdf&quot;, 1234</div>
231
230
  </td>
232
231
  <td>
233
- <div>RuntimeError: Some fake message</div>
232
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
234
233
  </td>
235
234
  </tr>
236
235
 
237
236
  </table>
238
237
  <input class="btn btn-primary btn-xs pull-left" type="submit" name="retry" value="Revive" />
238
+ <input class="btn btn-secondary btn-xs pull-left" type="submit" name="export" value="Export" />
239
239
  <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="Bury" />
240
240
  </form>
241
241
 
242
- <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/delete" method="post">
242
+ <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour/delete" method="post">
243
243
  <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
244
244
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
245
245
  </form>
246
246
 
247
- <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/retry" method="post">
247
+ <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour/export" method="post">
248
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
249
+ <input class="btn btn-secondary btn-xs pull-right" type="submit" name="export" value="Export All" />
250
+ </form>
251
+
252
+ <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour/retry" method="post">
248
253
  <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
249
254
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
250
255
  </form>
@@ -265,7 +270,7 @@
265
270
  <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
266
271
  </li>
267
272
  <li>
268
- <p class="navbar-text server-utc-time">20:57:00 UTC</p>
273
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
269
274
  </li>
270
275
  <li>
271
276
  <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>