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 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
  ]]}