Commit Graph

158 Commits

Author SHA1 Message Date
Paul Holden aa6e48c6be MDL-70427 task: correct missing component when queuing adhoc task.
If the task belongs to a component, and doesn't have it's own
component property set then we can lazy-load it based on class
namespace.
2021-07-12 20:46:56 +01:00
Sara Arjona 72b6d0be84 Merge branch 'MDL-71136_310' of https://github.com/TomoTsuyuki/moodle into MOODLE_310_STABLE 2021-04-22 13:56:49 +02:00
Simey Lameze 94259f8a7d MDL-71156 core: machinery to recover orphaned calendar events
The machinery to fix orphaned calendar events that were broken by MDL-67494.

The solution consists of:

1) Upgrade step that checks if this site has executed the problematic upgrade steps and
   if positive, it will schedule a new run for calendar_fix_orphaned_events adhoc task.

2) Adhoc task that will self-spawn calling the recovery machinery, running until
   all the orphaned calendar events are fixed. It also sets the maximum runtime of
   60 seconds. It is also possible to override that number by specifing the desired
   number setting the ->calendareventsmaxseconds in your config.php

3) CLI script that will look for all the calendar events which userids
   where broken by a wrong upgrade step, affecting to Moodle 3.9.5
   and up.

   It performs checks to both:
     a) Detect if the site was affected (ran the wrong upgrade step).
     b) Look for orphaned calendar events, categorising them as:
       - standard: site / category / course / group / user events
       - subscription: events created via subscriptions.
       - action: normal action events, created to show common important dates.
       - override: user and group override events, particular, that some activities support.
       - custom: other events, not being any of the above, common or particular.

   By specifying it (--fix) try to recover as many broken events (missing userid) as
   possible. Standard, subscription, action, override events in core are fully supported but
   override or custom events should be fixed by each plugin as far as there isn't any standard
   API (plugin-wise) to launch a rebuild of the calendar events.

4) Unit tests and helper functions to generate calendar events. We have decided to
   keep the tests simple, testing only true and false and not using data generators because
   the code is purely to recover the calendar events and won't turn into an API or something
   and also due to the urgency of this issue.
   The helpers have been created in calendar/tests/helpers.php since there are no data generators
   for calendar.
2021-04-22 10:43:37 +08:00
Tomo Tsuyuki ed1ce9cf9b MDL-71136 backup: Fix moodle_exception path. 2021-03-30 10:56:09 +11:00
Mikhail Golenkov 6ba4712549 MDL-70520 tasks: Keep lastruntime when a scheduled task is reset 2020-12-22 15:30:45 +11:00
Sara Arjona c83543095a Merge branch 'MDL-69521_310' of https://github.com/stronk7/moodle into MOODLE_310_STABLE 2020-09-09 08:08:29 +02:00
Eloy Lafuente (stronk7) e419e7acba MDL-69521 core: Move all comments in code from 4.3 to 4.1 2020-09-08 19:01:41 +02:00
Paul Holden f2b1242364 MDL-69448 backup: fix capability checks when unable to copy user data.
When a given user doesn't have the capability to "Include user data"
during course copying, freeze the form element rather than not adding
it at all.

This caused problems as the element was required before preceding with
the course copy.
2020-09-04 08:20:04 +01:00
Mikhail Golenkov 5934444b27 MDL-69358 backup: Do not clean up records for incomplete adhoc tasks.
Co-authored-by: Heena Agheda <heenaagheda@catalyst-au.net>
2020-08-27 10:57:48 +08:00
Andrew Nicols 3114d04721 Merge branch 'MDL-66222-antivirus-reporting' of https://github.com/Peterburnett/moodle into MOODLE_310_STABLE 2020-08-27 09:36:33 +08:00
Mikhail Golenkov e419e18f0d MDL-67211 Tasks: Add cron_enabled setting.
Co-authored-by: Sam Marshall <s.marshall@open.ac.uk>
2020-08-25 17:01:00 +10:00
Mikhail Golenkov 59a5923924 MDL-67211 Tasks: Record when a task is running.
Co-authored-by: Sam Marshall <s.marshall@open.ac.uk>
2020-08-25 16:59:47 +10:00
Peter Burnett 8e0e99e4fd MDL-66222 antivirus: Improved error email capture 2020-08-21 12:21:09 +10:00
Nathan Nguyen adbe92ce0a MDL-66222 antivirus: Added antivirus failure reporting 2020-08-21 11:43:56 +10:00
Peter Burnett d369c098be MDL-69170 task: Added timecreated field to adhoc task table 2020-08-20 08:50:42 +08:00
Adrian Greeve 5ec37d28a6 Merge branch 'master_MDL-64843_course_copy_ui' of https://github.com/catalyst/moodle 2020-05-18 10:35:44 +08:00
Matt Porritt 01436f7539 MDL-64843 Backup: Course copy user interface
This patch adds better core support for copying courses.
There is now a simplified and dedicated UI for copying
courses. This can be accessed from the course context
menu or course management screens.

All backups are done asynchronously and there can be multiple
copies of a course in flight at once.
2020-05-15 06:02:02 +00:00
Eloy Lafuente (stronk7) d2ecc75e2f MDL-52846 tasks: complete docs and move functions to deprecatedlib
- Add MDL codes to @deprecated.
- Add @todo tag for future 4.3 phase 2 deprecation.
- Deprecate global scope functions:
  - cron_execute_plugin_type().
  - cron_bc_hack_plugin_functions().
  (moving them to deprecatelib).
- Document it in main upgrade.txt
2020-05-12 17:41:13 +02:00
Ankit Agarwal 3bdb8f4584 MDL-52846 tasks: Display developer notice for legacy cron 2020-05-12 17:38:08 +02:00
Eloy Lafuente (stronk7) a417c31b2e Merge branch 'MDL-68579-master' of git://github.com/cescobedo/moodle 2020-05-11 23:13:45 +02:00
cescobedo db15746c2d MDL-63580 core_task: Deprecation cron_run_single_task and run_from_cli
Also we have move the functions in \tool_task\run_from_cli to \core\task\manager
and we have deprecated that class.
2020-05-11 10:53:23 +02:00
cescobedo b19468ce8a MDL-68579 core_h5p: Add a check to avoid execute task using BEHAT 2020-05-11 10:13:08 +02:00
David Saylor 525a9da269 MDL-52904 completion: reference context in cron query
Co-authored-by: Barbara Lawrence <blawrence@harlow-college.ac.uk>
2020-05-04 09:57:37 +08:00
Andrew Nicols eb0ddccd49 Merge branch 'MDL-68433-adhoc-task-lookahead' of https://github.com/brendanheywood/moodle 2020-04-29 08:22:27 +08:00
Paul Holden db8bda61a3 MDL-64417 message: allow processors to run their own cleanup tasks. 2020-04-21 14:48:22 +01:00
Brendan Heywood 611d6c1e29 MDL-68433 tasks: Limit the adhoc task queue look ahead 2020-04-16 23:33:07 +10:00
Tim Hunt 6fdc0f8796 MDL-68256 task admin: usability improvements
In the table that lists the scheduled tasks:

1. There are badges to show which components are disabled.
2. The plugin name (e.g. auth_ldap) is shown as well as the
   human-readable name (e.g. LDAP server).
3. Where a time column has a non-default value, it is highlighted
   and the default is shown.
4. If the fail-delay is non-zero, the cell is highlighted.
4. If you just interacted with a task (looked at or edited the settings,
   did Run now, or cleared the fail delay) that row is highlighted,
   and scrolled into view when the page loads.

To support this, some of the methods for loading the default tasks
have been extended with an optional argument to leave 'R' as 'R'
rather than replacing with a random number.

Also, mixed into this commit are a bunch of coding style improvements.
Sorry I did not separate them out, but ultimately this makes the
Moodle code better.
2020-03-28 18:40:51 +00:00
Mikhail Golenkov e63040d02b MDL-67980 tasks: Sort ad-hoc tasks by nextruntime. 2020-02-24 09:30:09 +11:00
Eloy Lafuente (stronk7) f5cb242afd Merge branch 'MDL-52189' of https://github.com/jonof/moodle 2020-01-28 22:43:22 +01:00
Mikhail Golenkov 8dff481193 MDL-67746 Tasks: Cleanup task logs in chunks. 2020-01-24 13:53:34 +11:00
Víctor Déniz Falcón d8fe1eddf9 MDL-67296 core_h5p: minor changes
core.php-Avoid to use the factory for each content type
h5p_get_content_types_task-new method to simplify test execution
framework.php-returns error if you get a 404 response after requesting a file
2020-01-22 14:48:16 +00:00
Colin Campbell eeca35e4ad MDL-52189 file: skip deleting temp files that appear during cleanup 2020-01-22 12:10:00 +10:00
Brendan Heywood b0544ce211 MDL-67486 cron: Improve throughput by holding cron lock for less time 2020-01-12 01:02:57 +11:00
Andrew Nicols 217a9b1ca0 Merge branch 'master_MDL-67485' of https://github.com/golenkovm/moodle 2020-01-09 12:39:28 +08:00
Mikhail Golenkov 6b2e15f6c5 MDL-67485 task: Release the task runner lock before throwing exception. 2020-01-09 14:29:58 +11:00
Mikhail Golenkov 1d0b74b2a3 MDL-64610 task: Add support for per-task concurrency limits. 2020-01-02 16:05:47 +11:00
Jake Dallimore 24c2106293 Merge branch 'MDL-67483-qos-perf' of https://github.com/brendanheywood/moodle 2019-12-19 09:31:28 +08:00
Brendan Heywood c7ce7601a3 MDL-67483 tasks: Improvements to adhoc task queue at very high scale 2019-12-19 10:49:16 +10:00
Mikhail Golenkov 97324e082a MDL-67502 backup: Fix moodle_exception path. 2019-12-13 09:40:38 +11:00
Adrian Greeve 528b979a60 Merge branch 'master-MDL-65729' of https://github.com/yao9394/moodle 2019-12-04 14:11:51 +08:00
John Yao d0734df404 MDL-65729 Backup: Split individual backups into ad-hoc tasks
* refactor run automated backup
* new backup status of Queued
* adhoc task for backing up a course
* course locking for course backup adhoc task
* use Moodle locking instead of custom locking for run automated backup task
* add unit tests to extracted methods
2019-12-04 15:10:23 +11:00
Brendan Heywood 4971da0bfa MDL-67363 task: Add adhoc task quality of service balancing 2019-12-03 12:21:10 +11:00
Victor Deniz Falcon 5315acb47c MDL-67058 core_h5p: task to get latest content types version from H5P 2019-11-06 18:17:34 +00:00
David Monllaó bf25fb166c MDL-65585 analytics: Global on/off switch 2019-10-10 10:06:31 +08:00
Andrew Nicols e044c3debe MDL-66570 admin: Add setting to hide captured cron log output 2019-09-17 14:03:31 +08:00
Cameron Ball 315e4342f1 MDL-66279 task: Test if logger is_a database_logger 2019-07-30 14:49:27 +08:00
David Mudrák 07839e6af3 MDL-65694 grade: Fix missing gradelib library
In the be8f453b74 the gradelib loading was removed by mistake. So
the library may not be loaded and executing the task may end with
the exception - class 'grade_grade' not found.
2019-05-23 10:45:55 +02:00
Adrian Greeve cbe23e7666 Merge branch 'MDL-64851-master' of https://github.com/s-cenni/MDL-64851 2019-05-03 10:43:28 +08:00
sam marshall ef3f92c70a MDL-65459 Logging: Missed two points relying on non-JSON log format 2019-05-01 12:11:17 +01:00
Jake Dallimore 26a94308ee Merge branch 'MDL-65276-master' of git://github.com/lameze/moodle 2019-04-30 20:47:26 +02:00