This capability got lost in the move to native YAML serialization.
refs #1
Change-Id: Id7ea4d635f74732d793c53f0fd34304730ade978
Reviewed-on: https://gerrit.instructure.com/2402
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
If any individual message delivery fails, we'll reschedule it as its own
individual job.
Change-Id: I51ae5941fd001c61e6c6b708185ff12585d0a49f
Reviewed-on: https://gerrit.instructure.com/2390
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
This fixes a long-standing issue with not being able to properly
serialize AR objects that are in arrays or other data structures. Now
that we're using native YAML methods for doing the serialization, rather
than dumping specially-formatted "LOAD;N" strings, it works properly.
I've left the load_for_delayed_job stuff in for now, for backwards
compatibility with jobs already in the queue.
Change-Id: I109f364b91c4becc8fc17ea1d9f041eb3c18281f
Reviewed-on: https://gerrit.instructure.com/2389
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
There was a bug where data passed to content_for via a string and not a block
was being marked as "html safe" when it hadn't been escaped.
Change-Id: I679281d1a767841b8f4d90ebbb8f8ca61a2a07f4
Reviewed-on: https://gerrit.instructure.com/2374
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Right now we serialize the AR object without an id, and fail later when
trying to perform the job, since we can't find the object without an id.
This change will make it a lot easier to track down these kinds of errors.
Change-Id: I89d7fb45182f6624bd7fee9b01c1294112a0ba8b
Reviewed-on: https://gerrit.instructure.com/2354
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
also some UI fixes for the plugin page
Change-Id: I161c458756c20e034c29d4515801fd9f6427aa53
Reviewed-on: https://gerrit.instructure.com/2093
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
also added option for plugins to provide validation on
their settings page. I need this for some of the
more complex settings we'll have to put together
as we move stuff from yml files to settings.
Change-Id: I78e6e3cd423e7ef7e15eafae86db8337f605be3a
Reviewed-on: https://gerrit.instructure.com/2247
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Before, the child did a hard Kernel#exit!, skipping all finalizers and
exit callbacks. This was causing issues with code misbehaving, for
instance Tempfile instances never getting rm'd off disk.
Now we're doing a fork { block } and using the normal ruby exit path, so
that these finalizers get run. I had to tweak the db connection
handling, because this means that the db connection is also getting
closed by each spawned child.
Unfortunately I'm sure there's a performance hit for reconnecting to the
job queue database after each job is run.
Change-Id: I83776d08bf3693f72fd3e7246cee196cca1987a1
Reviewed-on: https://gerrit.instructure.com/2295
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
migrations were previously limited to being on the same
job server, now the exported data is uploaded back to
canvas and downloaded again for the importing step
closes#3519
Change-Id: I24deaf4bc1811c4b66b1a2cf79f311ffc1fa9906
Reviewed-on: https://gerrit.instructure.com/2178
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>