canvas_sync 0.17.0.beta2 → 0.17.0.beta7
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.rb +2 -1
- data/lib/canvas_sync/job_batches/batch.rb +52 -40
- data/lib/canvas_sync/job_batches/callback.rb +14 -15
- data/lib/canvas_sync/job_batches/chain_builder.rb +17 -0
- data/lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb +1 -0
- data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +3 -1
- data/lib/canvas_sync/job_batches/sidekiq.rb +2 -0
- data/lib/canvas_sync/job_batches/status.rb +21 -1
- data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +2 -1
- data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +0 -3
- data/lib/canvas_sync/jobs/sync_terms_job.rb +3 -1
- data/lib/canvas_sync/version.rb +1 -1
- data/spec/canvas_sync/canvas_sync_spec.rb +20 -10
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +1248 -0
- data/spec/dummy/log/test.log +43258 -0
- data/spec/job_batching/batch_spec.rb +12 -3
- data/spec/job_batching/flow_spec.rb +0 -3
- data/spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv +3 -0
- data/spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv +4 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92aceb45ca42ac3cedcb449ea12ee0c04f437239ccc7375995f56939216ea473
|
4
|
+
data.tar.gz: 37b66818e5ba35d6b0d159ef817cbaf3c8bf66b8194e21c85876f2fdebaa30a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22b6826841d14ef7c9bbde34ba0d17484183a8f48247167b08b4332ced3b2b8e5bff7d2d4ea6e6e8246ea720efd79998b46768c973303094839104804c827e26
|
7
|
+
data.tar.gz: da90ec118b97081ce4f54de372e288d0033f76d91e1401ef1bcf70d7a62d589a0e08df18a83030da4e2f0b14bffe51cc33b3b97c198ec7f70f58874b118c2fd2
|
data/lib/canvas_sync.rb
CHANGED
@@ -161,6 +161,7 @@ module CanvasSync
|
|
161
161
|
###############################
|
162
162
|
|
163
163
|
per_term_chain = JobBatches::ChainBuilder.new(model_job_map[:terms])
|
164
|
+
per_term_chain.params[:term_scope] = term_scope
|
164
165
|
current_chain << per_term_chain
|
165
166
|
current_chain = per_term_chain
|
166
167
|
|
@@ -171,7 +172,7 @@ module CanvasSync
|
|
171
172
|
try_add_model_job.call('context_module_items')
|
172
173
|
|
173
174
|
current_chain.insert(
|
174
|
-
generate_provisioning_jobs(models, options,
|
175
|
+
generate_provisioning_jobs(models, options, only_split: ['users'])
|
175
176
|
)
|
176
177
|
|
177
178
|
###############################
|
@@ -118,40 +118,29 @@ module CanvasSync
|
|
118
118
|
@initialized = true
|
119
119
|
end
|
120
120
|
|
121
|
-
@ready_to_queue = []
|
121
|
+
job_queue = @ready_to_queue = []
|
122
|
+
|
123
|
+
puts "Beginning Batch #{@bidkey}"
|
122
124
|
|
123
125
|
begin
|
124
126
|
parent = Thread.current[:batch]
|
125
127
|
Thread.current[:batch] = self
|
126
128
|
yield
|
127
129
|
ensure
|
130
|
+
@ready_to_queue = nil
|
131
|
+
append_jobs(job_queue)
|
128
132
|
Thread.current[:batch] = parent
|
129
133
|
end
|
130
134
|
|
131
|
-
|
132
|
-
r.multi do
|
133
|
-
if parent_bid
|
134
|
-
r.hincrby("BID-#{parent_bid}", "children", 1)
|
135
|
-
r.hincrby("BID-#{parent_bid}", "total", @ready_to_queue.size)
|
136
|
-
r.expire("BID-#{parent_bid}", BID_EXPIRE_TTL)
|
137
|
-
end
|
138
|
-
|
139
|
-
r.hincrby(@bidkey, "pending", @ready_to_queue.size)
|
140
|
-
r.hincrby(@bidkey, "total", @ready_to_queue.size)
|
141
|
-
r.expire(@bidkey, BID_EXPIRE_TTL)
|
142
|
-
|
143
|
-
if @ready_to_queue.size > 0
|
144
|
-
r.sadd(@bidkey + "-jids", @ready_to_queue)
|
145
|
-
r.expire(@bidkey + "-jids", BID_EXPIRE_TTL)
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
@ready_to_queue
|
135
|
+
job_queue
|
151
136
|
end
|
152
137
|
|
153
138
|
def increment_job_queue(jid)
|
154
|
-
@ready_to_queue
|
139
|
+
if @ready_to_queue
|
140
|
+
@ready_to_queue << jid
|
141
|
+
else
|
142
|
+
append_jobs([jid])
|
143
|
+
end
|
155
144
|
end
|
156
145
|
|
157
146
|
def invalidate_all
|
@@ -214,6 +203,27 @@ module CanvasSync
|
|
214
203
|
@pending_attrs = {}
|
215
204
|
end
|
216
205
|
|
206
|
+
def append_jobs(jids)
|
207
|
+
redis do |r|
|
208
|
+
r.multi do
|
209
|
+
if parent_bid
|
210
|
+
r.hincrby("BID-#{parent_bid}", "children", 1)
|
211
|
+
r.hincrby("BID-#{parent_bid}", "total", jids.size)
|
212
|
+
r.expire("BID-#{parent_bid}", BID_EXPIRE_TTL)
|
213
|
+
end
|
214
|
+
|
215
|
+
r.hincrby(@bidkey, "pending", jids.size)
|
216
|
+
r.hincrby(@bidkey, "total", jids.size)
|
217
|
+
r.expire(@bidkey, BID_EXPIRE_TTL)
|
218
|
+
|
219
|
+
if jids.size > 0
|
220
|
+
r.sadd(@bidkey + "-jids", jids)
|
221
|
+
r.expire(@bidkey + "-jids", BID_EXPIRE_TTL)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
217
227
|
class << self
|
218
228
|
def process_failed_job(bid, jid)
|
219
229
|
_, pending, failed, children, complete, parent_bid = redis do |r|
|
@@ -223,7 +233,7 @@ module CanvasSync
|
|
223
233
|
r.hincrby("BID-#{bid}", "pending", 0)
|
224
234
|
r.scard("BID-#{bid}-failed")
|
225
235
|
r.hincrby("BID-#{bid}", "children", 0)
|
226
|
-
r.scard("BID-#{bid}-complete")
|
236
|
+
r.scard("BID-#{bid}-batches-complete")
|
227
237
|
r.hget("BID-#{bid}", "parent_bid")
|
228
238
|
|
229
239
|
r.expire("BID-#{bid}-failed", BID_EXPIRE_TTL)
|
@@ -253,7 +263,7 @@ module CanvasSync
|
|
253
263
|
|
254
264
|
r.scard("BID-#{bid}-dead")
|
255
265
|
r.hincrby("BID-#{bid}", "children", 0)
|
256
|
-
r.scard("BID-#{bid}-complete")
|
266
|
+
r.scard("BID-#{bid}-batches-complete")
|
257
267
|
r.hget("BID-#{bid}", "parent_bid")
|
258
268
|
|
259
269
|
r.expire("BID-#{bid}-dead", BID_EXPIRE_TTL)
|
@@ -273,17 +283,18 @@ module CanvasSync
|
|
273
283
|
end
|
274
284
|
|
275
285
|
def process_successful_job(bid, jid)
|
276
|
-
failed, pending, children, complete, success, total, parent_bid = redis do |r|
|
286
|
+
_, failed, pending, children, complete, success, total, parent_bid = redis do |r|
|
277
287
|
r.multi do
|
288
|
+
r.srem("BID-#{bid}-failed", jid)
|
289
|
+
|
278
290
|
r.scard("BID-#{bid}-failed")
|
279
291
|
r.hincrby("BID-#{bid}", "pending", -1)
|
280
292
|
r.hincrby("BID-#{bid}", "children", 0)
|
281
|
-
r.scard("BID-#{bid}-complete")
|
282
|
-
r.scard("BID-#{bid}-success")
|
293
|
+
r.scard("BID-#{bid}-batches-complete")
|
294
|
+
r.scard("BID-#{bid}-batches-success")
|
283
295
|
r.hget("BID-#{bid}", "total")
|
284
296
|
r.hget("BID-#{bid}", "parent_bid")
|
285
297
|
|
286
|
-
r.srem("BID-#{bid}-failed", jid)
|
287
298
|
r.srem("BID-#{bid}-jids", jid)
|
288
299
|
r.expire("BID-#{bid}", BID_EXPIRE_TTL)
|
289
300
|
end
|
@@ -358,18 +369,19 @@ module CanvasSync
|
|
358
369
|
|
359
370
|
def cleanup_redis(bid)
|
360
371
|
logger.debug {"Cleaning redis of batch #{bid}"}
|
361
|
-
redis do |r|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
372
|
+
# redis do |r|
|
373
|
+
# r.del(
|
374
|
+
# "BID-#{bid}",
|
375
|
+
# "BID-#{bid}-callbacks-complete",
|
376
|
+
# "BID-#{bid}-callbacks-success",
|
377
|
+
# "BID-#{bid}-failed",
|
378
|
+
|
379
|
+
# "BID-#{bid}-batches-success",
|
380
|
+
# "BID-#{bid}-batches-complete",
|
381
|
+
# "BID-#{bid}-batches-failed",
|
382
|
+
# "BID-#{bid}-jids",
|
383
|
+
# )
|
384
|
+
# end
|
373
385
|
end
|
374
386
|
|
375
387
|
def redis(*args, &blk)
|
@@ -87,13 +87,16 @@ module CanvasSync
|
|
87
87
|
def success(bid, status, parent_bid)
|
88
88
|
return unless parent_bid
|
89
89
|
|
90
|
-
_, _, success, _, complete, pending, children, failure = Batch.redis do |r|
|
90
|
+
_, _, success, _, _, complete, pending, children, failure = Batch.redis do |r|
|
91
91
|
r.multi do
|
92
|
-
r.sadd("BID-#{parent_bid}-success", bid)
|
93
|
-
r.expire("BID-#{parent_bid}-success", Batch::BID_EXPIRE_TTL)
|
94
|
-
r.scard("BID-#{parent_bid}-success")
|
95
|
-
|
96
|
-
r.
|
92
|
+
r.sadd("BID-#{parent_bid}-batches-success", bid)
|
93
|
+
r.expire("BID-#{parent_bid}-batches-success", Batch::BID_EXPIRE_TTL)
|
94
|
+
r.scard("BID-#{parent_bid}-batches-success")
|
95
|
+
|
96
|
+
r.srem("BID-#{parent_bid}-batches-failed", bid)
|
97
|
+
r.sadd("BID-#{parent_bid}-batches-complete", bid)
|
98
|
+
r.scard("BID-#{parent_bid}-batches-complete")
|
99
|
+
|
97
100
|
r.hincrby("BID-#{parent_bid}", "pending", 0)
|
98
101
|
r.hincrby("BID-#{parent_bid}", "children", 0)
|
99
102
|
r.scard("BID-#{parent_bid}-failed")
|
@@ -112,7 +115,7 @@ module CanvasSync
|
|
112
115
|
r.multi do
|
113
116
|
r.hincrby("BID-#{bid}", "pending", 0)
|
114
117
|
r.hincrby("BID-#{bid}", "children", 0)
|
115
|
-
r.scard("BID-#{bid}-success")
|
118
|
+
r.scard("BID-#{bid}-batches-success")
|
116
119
|
end
|
117
120
|
end
|
118
121
|
|
@@ -127,10 +130,11 @@ module CanvasSync
|
|
127
130
|
# callback may add more jobs to the parent batch
|
128
131
|
|
129
132
|
Batch.logger.debug {"Finalize parent complete bid: #{parent_bid}"}
|
130
|
-
_, complete, pending, children, failure = Batch.redis do |r|
|
133
|
+
_, _, complete, pending, children, failure = Batch.redis do |r|
|
131
134
|
r.multi do
|
132
|
-
r.sadd("BID-#{parent_bid}-complete", bid)
|
133
|
-
r.
|
135
|
+
r.sadd("BID-#{parent_bid}-batches-complete", bid)
|
136
|
+
r.sadd("BID-#{parent_bid}-batches-failed", bid)
|
137
|
+
r.scard("BID-#{parent_bid}-batches-complete")
|
134
138
|
r.hincrby("BID-#{parent_bid}", "pending", 0)
|
135
139
|
r.hincrby("BID-#{parent_bid}", "children", 0)
|
136
140
|
r.scard("BID-#{parent_bid}-failed")
|
@@ -141,11 +145,6 @@ module CanvasSync
|
|
141
145
|
end
|
142
146
|
end
|
143
147
|
end
|
144
|
-
|
145
|
-
def cleanup_redis bid, callback_bid=nil
|
146
|
-
Batch.cleanup_redis bid
|
147
|
-
Batch.cleanup_redis callback_bid if callback_bid
|
148
|
-
end
|
149
148
|
end
|
150
149
|
end
|
151
150
|
end
|
@@ -104,6 +104,16 @@ module CanvasSync
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
+
# Legacy Support
|
108
|
+
def merge_options(job, options)
|
109
|
+
matching_jobs = find_matching_jobs(job)
|
110
|
+
|
111
|
+
matching_jobs.each do |j|
|
112
|
+
j[:options] ||= {}
|
113
|
+
j[:options].deep_merge!(options)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
107
117
|
private
|
108
118
|
|
109
119
|
def find_matching_jobs(search_job, parent_job = self.base_job)
|
@@ -145,6 +155,13 @@ module CanvasSync
|
|
145
155
|
def enqueue_job(job_def)
|
146
156
|
job_class = job_def[:job].constantize
|
147
157
|
job_options = job_def[:parameters] || []
|
158
|
+
|
159
|
+
# Legacy Support
|
160
|
+
if job_def[:options]
|
161
|
+
job_options << {} unless job_options[-1].is_a?(Hash)
|
162
|
+
job_options[-1].merge!(job_def[:options])
|
163
|
+
end
|
164
|
+
|
148
165
|
if job_class.respond_to? :perform_async
|
149
166
|
job_class.perform_async(*job_options)
|
150
167
|
else
|
@@ -21,6 +21,7 @@ module CanvasSync
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
root_batch.description = "Serial Batch Root (#{serial_id})"
|
24
25
|
root_batch.allow_context_changes = true
|
25
26
|
root_batch.context = context
|
26
27
|
root_batch.on(:success, "#{self.class.to_s}.cleanup_redis", serial_batch_id: serial_id)
|
@@ -61,7 +62,8 @@ module CanvasSync
|
|
61
62
|
|
62
63
|
Batch.new(root_bid).jobs do
|
63
64
|
Batch.new.tap do |batch|
|
64
|
-
|
65
|
+
batch.description = "Serial Batch Fiber (#{serial_id})"
|
66
|
+
batch.on(:success, "#{self.to_s}.job_succeeded_callback", serial_batch_id: serial_id)
|
65
67
|
batch.jobs do
|
66
68
|
ChainBuilder.enqueue_job(next_job)
|
67
69
|
end
|
@@ -84,6 +84,8 @@ module CanvasSync
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
::Sidekiq.const_set(:Batch, CanvasSync::JobBatches::Batch)
|
87
|
+
# This alias helps apartment-sidekiq set itself up correctly
|
88
|
+
::Sidekiq::Batch.const_set(:Server, CanvasSync::JobBatches::Sidekiq::ServerMiddleware)
|
87
89
|
::Sidekiq::Worker.send(:include, JobBatches::Sidekiq::WorkerExtension)
|
88
90
|
end
|
89
91
|
end
|
@@ -40,10 +40,26 @@ module CanvasSync
|
|
40
40
|
'true' == Batch.redis { |r| r.hget("BID-#{bid}", 'complete') }
|
41
41
|
end
|
42
42
|
|
43
|
+
def success?
|
44
|
+
'true' == Batch.redis { |r| r.hget("BID-#{bid}", 'success') }
|
45
|
+
end
|
46
|
+
|
43
47
|
def child_count
|
44
48
|
Batch.redis { |r| r.hget("BID-#{bid}", 'children') }.to_i
|
45
49
|
end
|
46
50
|
|
51
|
+
def completed_children_count
|
52
|
+
Batch.redis { |r| r.scard("BID-#{bid}-batches-complete") }.to_i
|
53
|
+
end
|
54
|
+
|
55
|
+
def successful_children_count
|
56
|
+
Batch.redis { |r| r.scard("BID-#{bid}-batches-success") }.to_i
|
57
|
+
end
|
58
|
+
|
59
|
+
def failed_children_count
|
60
|
+
Batch.redis { |r| r.scard("BID-#{bid}-batches-failed") }.to_i
|
61
|
+
end
|
62
|
+
|
47
63
|
def data
|
48
64
|
{
|
49
65
|
bid: bid,
|
@@ -52,9 +68,13 @@ module CanvasSync
|
|
52
68
|
pending: pending,
|
53
69
|
created_at: created_at,
|
54
70
|
complete: complete?,
|
71
|
+
success: success?,
|
55
72
|
failure_info: failure_info,
|
56
73
|
parent_bid: parent_bid,
|
57
|
-
child_count: child_count
|
74
|
+
child_count: child_count,
|
75
|
+
completed_children_count: completed_children_count,
|
76
|
+
successful_children_count: successful_children_count,
|
77
|
+
failed_children_count: failed_children_count,
|
58
78
|
}
|
59
79
|
end
|
60
80
|
end
|
@@ -15,6 +15,7 @@ module CanvasSync
|
|
15
15
|
JobBatches::Batch.new.tap do |b|
|
16
16
|
b.description = "CanvasSync Root Batch"
|
17
17
|
b.on(:complete, "#{self.class.to_s}.batch_completed", sync_batch_id: sync_batch.id)
|
18
|
+
b.on(:success, "#{self.class.to_s}.batch_completed", sync_batch_id: sync_batch.id)
|
18
19
|
b.context = globals
|
19
20
|
b.jobs do
|
20
21
|
JobBatches::SerialBatchJob.perform_now(chain_definition)
|
@@ -25,7 +26,7 @@ module CanvasSync
|
|
25
26
|
def self.batch_completed(status, options)
|
26
27
|
sbatch = SyncBatch.find(options['sync_batch_id'])
|
27
28
|
sbatch.update!(
|
28
|
-
status: status.
|
29
|
+
status: status.success? ? 'completed' : 'failed',
|
29
30
|
completed_at: DateTime.now,
|
30
31
|
)
|
31
32
|
end
|
@@ -2,9 +2,6 @@ module CanvasSync
|
|
2
2
|
module Jobs
|
3
3
|
# ActiveJob class that starts a Canvas provisioning report
|
4
4
|
class SyncProvisioningReportJob < CanvasSync::Job
|
5
|
-
# @param options [Hash] If options contains a :term_scope a seperate provisioning report
|
6
|
-
# will be started for each term in that scope. :models should be an array of
|
7
|
-
# models to sync.
|
8
5
|
def perform(options)
|
9
6
|
start_report(report_params(options), options)
|
10
7
|
end
|
@@ -5,7 +5,9 @@ module CanvasSync
|
|
5
5
|
#
|
6
6
|
# Terms are pre-synced so that provisioning reports can be scoped to term.
|
7
7
|
#
|
8
|
-
# @param options [Hash]
|
8
|
+
# @param options [Hash] If options contains a :term_scope a seperate provisioning report
|
9
|
+
# will be started for each term in that scope. :models should be an array of
|
10
|
+
# models to sync.
|
9
11
|
def perform(options)
|
10
12
|
CanvasSync.get_canvas_sync_client(batch_context).terms("self").all_pages!.each do |term_params|
|
11
13
|
if account_id = batch_context[:account_id]
|
data/lib/canvas_sync/version.rb
CHANGED
@@ -36,8 +36,9 @@ RSpec.describe CanvasSync do
|
|
36
36
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
37
37
|
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users"], :b=>2}},
|
38
38
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
39
|
+
:term_scope=>"active",
|
39
40
|
:sub_jobs=>[
|
40
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"], :
|
41
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"], :c=>3}}
|
41
42
|
]
|
42
43
|
}]}
|
43
44
|
]]}
|
@@ -54,8 +55,9 @@ RSpec.describe CanvasSync do
|
|
54
55
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
55
56
|
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users"]}},
|
56
57
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
58
|
+
:term_scope=>"active",
|
57
59
|
:sub_jobs=>[
|
58
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]
|
60
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]}}
|
59
61
|
]
|
60
62
|
}]}
|
61
63
|
]]}
|
@@ -72,8 +74,9 @@ RSpec.describe CanvasSync do
|
|
72
74
|
:parameters => [[
|
73
75
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
74
76
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
77
|
+
:term_scope=>nil,
|
75
78
|
:sub_jobs=>[
|
76
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "courses"]
|
79
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "courses"]}}
|
77
80
|
]
|
78
81
|
}]}
|
79
82
|
]]}
|
@@ -91,8 +94,9 @@ RSpec.describe CanvasSync do
|
|
91
94
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
92
95
|
{:job=>"CanvasSync::Jobs::SyncRolesJob", :options=>{}},
|
93
96
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
97
|
+
:term_scope=>"active",
|
94
98
|
:sub_jobs=>[
|
95
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]
|
99
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]}}
|
96
100
|
]
|
97
101
|
}]}
|
98
102
|
]]}
|
@@ -110,8 +114,9 @@ RSpec.describe CanvasSync do
|
|
110
114
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
111
115
|
{:job=>"CanvasSync::Jobs::SyncRolesJob", :options=>{}},
|
112
116
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
117
|
+
:term_scope=>nil,
|
113
118
|
:sub_jobs=>[
|
114
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]
|
119
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]}}
|
115
120
|
]
|
116
121
|
}]}
|
117
122
|
]]}
|
@@ -129,8 +134,9 @@ RSpec.describe CanvasSync do
|
|
129
134
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
130
135
|
{:job=>"CanvasSync::Jobs::SyncAdminsJob", :options=>{}},
|
131
136
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
137
|
+
:term_scope=>"active",
|
132
138
|
:sub_jobs=>[
|
133
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]
|
139
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]}}
|
134
140
|
]
|
135
141
|
}]}
|
136
142
|
]]}
|
@@ -148,8 +154,9 @@ RSpec.describe CanvasSync do
|
|
148
154
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
149
155
|
{:job=>"CanvasSync::Jobs::SyncAdminsJob", :options=>{}},
|
150
156
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
157
|
+
:term_scope=>nil,
|
151
158
|
:sub_jobs=>[
|
152
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]
|
159
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["courses"]}}
|
153
160
|
]
|
154
161
|
}]}
|
155
162
|
]]}
|
@@ -167,9 +174,10 @@ RSpec.describe CanvasSync do
|
|
167
174
|
:parameters => [[
|
168
175
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
169
176
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
177
|
+
:term_scope=>nil,
|
170
178
|
:sub_jobs=>[
|
171
179
|
{:job=>"CanvasSync::Jobs::SyncAssignmentsJob", :options=>{}},
|
172
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "enrollments"]
|
180
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "enrollments"]}}
|
173
181
|
]
|
174
182
|
}]}
|
175
183
|
]]}
|
@@ -187,9 +195,10 @@ RSpec.describe CanvasSync do
|
|
187
195
|
:parameters => [[
|
188
196
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
189
197
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
198
|
+
:term_scope=>nil,
|
190
199
|
:sub_jobs=>[
|
191
200
|
{:job=>"CanvasSync::Jobs::SyncSubmissionsJob", :options=>{}},
|
192
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "enrollments"]
|
201
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "enrollments"]}}
|
193
202
|
]
|
194
203
|
}]}
|
195
204
|
]]}
|
@@ -207,9 +216,10 @@ RSpec.describe CanvasSync do
|
|
207
216
|
:parameters => [[
|
208
217
|
{:job=>"CanvasSync::JobBatches::ConcurrentBatchJob", :parameters=>[[
|
209
218
|
{:job=>"CanvasSync::Jobs::SyncTermsJob", :parameters=>[{
|
219
|
+
:term_scope=>nil,
|
210
220
|
:sub_jobs=>[
|
211
221
|
{:job=>"CanvasSync::Jobs::SyncAssignmentGroupsJob", :options=>{}},
|
212
|
-
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "enrollments"]
|
222
|
+
{:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "enrollments"]}}
|
213
223
|
]
|
214
224
|
}]}
|
215
225
|
]]}
|