canvas_sync 0.18.9 → 0.18.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/canvas_sync/concerns/ability_helper.rb +1 -1
- data/lib/canvas_sync/job_batches/batch.rb +1 -0
- data/lib/canvas_sync/job_batches/chain_builder.rb +4 -0
- data/lib/canvas_sync/job_batches/sidekiq/web/batches_assets/css/styles.less +6 -2
- data/lib/canvas_sync/job_batches/sidekiq/web/batches_assets/js/batch_tree.js +3 -1
- data/lib/canvas_sync/job_batches/sidekiq/web/views/_batches_table.erb +3 -1
- data/lib/canvas_sync/job_batches/sidekiq/web.rb +2 -0
- data/lib/canvas_sync/job_batches/status.rb +4 -0
- data/lib/canvas_sync/version.rb +1 -1
- data/lib/canvas_sync.rb +7 -4
- data/spec/dummy/log/test.log +2066 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1223506dbbaaa180f70770aaabd92c3ffe931ae491bd392b2bbaa2ce520de2c8
|
4
|
+
data.tar.gz: b0b5bc307fe639c3281f51658e995e2fc661186cd5b73918027e0fe01f7487e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40d9c62d733a904611600f4fe6d37e0eecf956d835fb0db31d10e40af8d0bed2269a72b386ae9135a2b8dc05219df80002497cf19ab88d6e579be81d80180c42
|
7
|
+
data.tar.gz: 659c99a14af5f186b3df3522642fec00b6ce7e3337a01e23e11f8c261208065834b9754d6d619b7445209dd2ed8a0eddbaabdc257a90038399a00de48eae88a1
|
@@ -21,7 +21,7 @@ module CanvasSync::Concerns
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def get_lti_cust_param(key)
|
24
|
-
nkey = key.gsub(/^custom_/, '')
|
24
|
+
nkey = key.to_s.gsub(/^custom_/, '')
|
25
25
|
|
26
26
|
launch_params.dig("https://purl.imsglobal.org/spec/lti/claim/custom", nkey) || launch_params[nkey] || launch_params["custom_#{nkey}"]
|
27
27
|
end
|
@@ -98,6 +98,10 @@ module CanvasSync
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
+
def empty?
|
102
|
+
self.class.get_chain_parameter(self).empty?
|
103
|
+
end
|
104
|
+
|
101
105
|
def get_sub_chain(sub_type)
|
102
106
|
matching_jobs = find_matching_jobs(sub_type).to_a
|
103
107
|
raise "Found multiple \"#{sub_type}\" jobs in the chain" if matching_jobs.count > 1
|
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
@color-green: #25c766;
|
3
|
-
@color-
|
3
|
+
@color-darkred: #8f0000;
|
4
|
+
@color-red: #e03963;
|
4
5
|
@color-yellow: #c4c725;
|
5
6
|
|
6
7
|
.code-wrap.batch-context .args-extended {
|
@@ -30,6 +31,9 @@
|
|
30
31
|
&.failed {
|
31
32
|
color: @color-red;
|
32
33
|
}
|
34
|
+
&.dead {
|
35
|
+
color: @color-darkred;
|
36
|
+
}
|
33
37
|
&.success {
|
34
38
|
color: @color-green;
|
35
39
|
}
|
@@ -156,7 +160,7 @@
|
|
156
160
|
}
|
157
161
|
|
158
162
|
.status-block {
|
159
|
-
width:
|
163
|
+
width: 12em;
|
160
164
|
text-align: center;
|
161
165
|
}
|
162
166
|
}
|
@@ -12,6 +12,8 @@ const StatusBlock = (props) => html`
|
|
12
12
|
|
|
13
13
|
<span class="tree-stat failed">${props.failed_count}</span>
|
14
14
|
|
|
15
|
+
<span class="tree-stat dead">${props.dead_count}</span>
|
16
|
+
|
|
15
17
|
<span class="tree-stat success">${props.successful_count}</span>
|
16
18
|
/
|
17
19
|
<span class="tree-stat total">${props.total_count}</span>
|
@@ -96,7 +98,7 @@ class TreeRoot extends Component {
|
|
96
98
|
const tree_data = JSON.parse(document.querySelector('#batch-tree #initial-data').innerHTML);
|
97
99
|
return html`
|
98
100
|
<div class="tree-header">
|
99
|
-
<${StatusBlock} pending_count="pending" failed_count="failed" successful_count="successful" total_count="total" />
|
101
|
+
<${StatusBlock} pending_count="pending" failed_count="failed" dead_count="dead" successful_count="successful" total_count="total" />
|
100
102
|
</div>
|
101
103
|
<${TreeLevel} data=${tree_data} />
|
102
104
|
`;
|
@@ -5,12 +5,13 @@
|
|
5
5
|
<th rowspan="2"><%= t('BID') %></th>
|
6
6
|
<th rowspan="2"><%= t('Description') %></th>
|
7
7
|
|
8
|
-
<th colspan="
|
8
|
+
<th colspan="5"><%= t('Jobs') %></th>
|
9
9
|
<th colspan="4"><%= t('Sub-Batches') %></th>
|
10
10
|
</tr>
|
11
11
|
<tr>
|
12
12
|
<th><%= t('Pending') %></th>
|
13
13
|
<th><%= t('Failed') %></th>
|
14
|
+
<th><%= t('Dead') %></th>
|
14
15
|
<th><%= t('Complete') %></th>
|
15
16
|
<th><%= t('Total') %></th>
|
16
17
|
|
@@ -30,6 +31,7 @@
|
|
30
31
|
|
31
32
|
<td><%= status.pending %></th>
|
32
33
|
<td><%= status.failures %></th>
|
34
|
+
<td><%= status.dead %></th>
|
33
35
|
<td><%= status.completed_count %></th>
|
34
36
|
<td><%= status.job_count %></th>
|
35
37
|
|
@@ -68,6 +68,7 @@ module CanvasSync::JobBatches::Sidekiq
|
|
68
68
|
jobs_total = r.hget("BID-#{bid}", "job_count").to_i
|
69
69
|
jobs_pending = r.hget("BID-#{bid}", 'pending').to_i
|
70
70
|
jobs_failed = r.scard("BID-#{bid}-failed").to_i
|
71
|
+
jobs_dead = r.scard("BID-#{bid}-dead").to_i
|
71
72
|
jobs_success = jobs_total - jobs_pending
|
72
73
|
|
73
74
|
batches_total = r.hget("BID-#{bid}", 'children').to_i
|
@@ -90,6 +91,7 @@ module CanvasSync::JobBatches::Sidekiq
|
|
90
91
|
pending_count: jobs_pending,
|
91
92
|
successful_count: jobs_success,
|
92
93
|
failed_count: jobs_failed,
|
94
|
+
dead_count: jobs_dead,
|
93
95
|
total_count: jobs_total,
|
94
96
|
# items: batches.map{|b| layer_data[b] },
|
95
97
|
},
|
data/lib/canvas_sync/version.rb
CHANGED
data/lib/canvas_sync.rb
CHANGED
@@ -170,9 +170,6 @@ module CanvasSync
|
|
170
170
|
# General provisioning jobs (not term-scoped)
|
171
171
|
##############################
|
172
172
|
|
173
|
-
# Terms are always synced regardless of the models option
|
174
|
-
models -= ['terms']
|
175
|
-
|
176
173
|
# Accounts, users, roles, and admins cannot be scoped to term
|
177
174
|
try_add_model_job.call('accounts')
|
178
175
|
|
@@ -194,9 +191,10 @@ module CanvasSync
|
|
194
191
|
# Per-term provisioning jobs
|
195
192
|
###############################
|
196
193
|
|
194
|
+
term_parent_chain = current_chain
|
195
|
+
|
197
196
|
per_term_chain = JobBatches::ChainBuilder.new(model_job_map[:terms])
|
198
197
|
per_term_chain.params[:term_scope] = term_scope
|
199
|
-
current_chain << per_term_chain
|
200
198
|
current_chain = per_term_chain
|
201
199
|
|
202
200
|
term_scoped_models.each do |mdl|
|
@@ -207,6 +205,11 @@ module CanvasSync
|
|
207
205
|
generate_provisioning_jobs(models, options)
|
208
206
|
)
|
209
207
|
|
208
|
+
# Skip syncing terms if not required
|
209
|
+
if !current_chain.empty? || (models & ['terms']).present?
|
210
|
+
term_parent_chain << per_term_chain
|
211
|
+
end
|
212
|
+
|
210
213
|
###############################
|
211
214
|
# Wrap it all up
|
212
215
|
###############################
|