canvas_sync 0.17.0.beta2 → 0.17.0.beta7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1efae2b1ce34cbd2732fa1077f99968da3cc167e4a95bb05e1da66589775165c
4
- data.tar.gz: c24dd070fa499ddfe2a317f6dcf72ba17d99c494dd38bdb1ed2c12e39601b39b
3
+ metadata.gz: 92aceb45ca42ac3cedcb449ea12ee0c04f437239ccc7375995f56939216ea473
4
+ data.tar.gz: 37b66818e5ba35d6b0d159ef817cbaf3c8bf66b8194e21c85876f2fdebaa30a0
5
5
  SHA512:
6
- metadata.gz: 9560928f39ae693290541b14b3d7b381d3259f603881e34c7b4bc5871a9c23a47fae876a5f7334660b8ef17d3e6a03e7ae34bffb8f1c666afad9127ee2934da8
7
- data.tar.gz: 2c7874ef5441477e16675f916e450a0f095eabe167e7a16af3c8744fc24c62a90179fa9b2a2ac57a7fff7dda0dab1050c3cbdcc96973dca3d14bb4d7e54b15cb
6
+ metadata.gz: 22b6826841d14ef7c9bbde34ba0d17484183a8f48247167b08b4332ced3b2b8e5bff7d2d4ea6e6e8246ea720efd79998b46768c973303094839104804c827e26
7
+ data.tar.gz: da90ec118b97081ce4f54de372e288d0033f76d91e1401ef1bcf70d7a62d589a0e08df18a83030da4e2f0b14bffe51cc33b3b97c198ec7f70f58874b118c2fd2
@@ -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, job_options: { term_scope: term_scope }, only_split: ['users'])
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
- redis do |r|
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 << jid
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
- r.del(
363
- "BID-#{bid}",
364
- "BID-#{bid}-callbacks-complete",
365
- "BID-#{bid}-callbacks-success",
366
- "BID-#{bid}-failed",
367
-
368
- "BID-#{bid}-success",
369
- "BID-#{bid}-complete",
370
- "BID-#{bid}-jids",
371
- )
372
- end
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
- r.sadd("BID-#{parent_bid}-complete", bid)
96
- r.scard("BID-#{parent_bid}-complete")
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.scard("BID-#{parent_bid}-complete")
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
@@ -5,6 +5,7 @@ module CanvasSync
5
5
  class ConcurrentBatchJob < BaseJob
6
6
  def perform(sub_jobs, context: nil)
7
7
  Batch.new.tap do |b|
8
+ b.description = "Concurrent Batch Root"
8
9
  b.context = context
9
10
  b.jobs do
10
11
  sub_jobs.each do |j|
@@ -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
- batch.on(:success, "#{self.to_s}.job_succeeded_callback", serial_batch_id: serial_id)
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.failures.positive? ? 'failed' : 'completed',
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]
@@ -1,3 +1,3 @@
1
1
  module CanvasSync
2
- VERSION = "0.17.0.beta2".freeze
2
+ VERSION = "0.17.0.beta7".freeze
3
3
  end
@@ -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"], :term_scope=>"active", :c=>3}}
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"], :term_scope=>"active"}}
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"], :term_scope=>nil}}
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"], :term_scope=>"active"}}
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"], :term_scope=>nil}}
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"], :term_scope=>"active"}}
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"], :term_scope=>nil}}
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"], :term_scope=>nil}}
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"], :term_scope=>nil}}
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"], :term_scope=>nil}}
222
+ {:job=>"CanvasSync::Jobs::SyncProvisioningReportJob", :options=>{:models=>["users", "enrollments"]}}
213
223
  ]
214
224
  }]}
215
225
  ]]}