35b9979 | Jenkins for Software Heritage | 13 February 2019, 15:34:34 UTC | Updated debian changelog for version 0.0.44 | 13 February 2019, 15:34:34 UTC |
cb7e2a4 | Jenkins for Software Heritage | 13 February 2019, 15:34:33 UTC | Updated version 0.0.44 from 'debian/upstream/0.0.44' with Debian dir 2ab2c749236a6007df63d225909cc2d4d92f1521 | 13 February 2019, 15:34:33 UTC |
e152042 | Jenkins for Software Heritage | 13 February 2019, 15:34:33 UTC | New upstream version 0.0.44 | 13 February 2019, 15:34:33 UTC |
c701c88 | Antoine R. Dumont (@ardumont) | 13 February 2019, 14:57:08 UTC | api/server: Do not read configuration at each request | 13 February 2019, 15:19:59 UTC |
cf550ce | Jenkins for Software Heritage | 13 February 2019, 14:47:00 UTC | Updated debian changelog for version 0.0.43 | 13 February 2019, 14:47:00 UTC |
a158f4c | Jenkins for Software Heritage | 13 February 2019, 14:46:59 UTC | Updated version 0.0.43 from 'debian/upstream/0.0.43' with Debian dir c95521bb0b3f7b9ebaa20f79ce5a175de0bb10b6 | 13 February 2019, 14:46:59 UTC |
ac3f36a | Jenkins for Software Heritage | 13 February 2019, 14:46:58 UTC | New upstream version 0.0.43 | 13 February 2019, 14:46:58 UTC |
f0a8c43 | David Douard | 13 February 2019, 13:37:18 UTC | listener: make the listener's queue name independent from the hostname the queue being durable and not auto deleted (auto_delete=False), we do not want a new queue to be spawned for each listener instance (eg. in a docker environment). | 13 February 2019, 13:37:18 UTC |
b423c0b | David Douard | 13 February 2019, 13:28:37 UTC | runner: fix task_run configuration bootstrap ensure the task_run is created before sending the celery task; this later task could be executed before the db commit. As a result, the task_run may not have its 'started' field properly set; even the 'ended' and 'status'. | 13 February 2019, 13:28:37 UTC |
3d761f1 | David Douard | 13 February 2019, 13:25:58 UTC | sql: add the swh-lister-bitbucket-* task types | 13 February 2019, 13:25:58 UTC |
7e3f2fc | David Douard | 13 February 2019, 13:23:19 UTC | task: do not send the task-result-exception event in Task.on_failure() since it is unused; the task-failed event being already sent by celery and handled by the listener. | 13 February 2019, 13:23:19 UTC |
66518be | Jenkins for Software Heritage | 11 February 2019, 13:33:48 UTC | Updated debian changelog for version 0.0.42 | 11 February 2019, 13:33:48 UTC |
35898cb | Jenkins for Software Heritage | 11 February 2019, 13:33:47 UTC | New upstream version 0.0.42 | 11 February 2019, 13:33:47 UTC |
bf3c8df | Jenkins for Software Heritage | 11 February 2019, 13:33:47 UTC | Updated version 0.0.42 from 'debian/upstream/0.0.42' with Debian dir c9c59b2c60063a71531e63afa4712a04985920de | 11 February 2019, 13:33:47 UTC |
d870001 | Antoine R. Dumont (@ardumont) | 11 February 2019, 11:34:21 UTC | d/control: Enforce superior version for hypothesis Same as other swh modules (swh-web, swh-storage, swh-indexer). Inferior version do not follow test specifications. Related P356 | 11 February 2019, 11:34:21 UTC |
3488c26 | Antoine R. Dumont (@ardumont) | 11 February 2019, 10:44:40 UTC | requirements-test: Enforce a version for hypothesis Same as other swh modules (swh-web, swh-storage, swh-indexer) Inferior version do not follow the specifications Related P356 | 11 February 2019, 11:26:24 UTC |
2b00089 | Antoine R. Dumont (@ardumont) | 09 February 2019, 09:01:38 UTC | d/control: Add build dependency | 09 February 2019, 19:07:45 UTC |
a66897a | Jenkins for Software Heritage | 06 February 2019, 15:33:04 UTC | Updated debian changelog for version 0.0.41 | 06 February 2019, 15:33:04 UTC |
59f50d0 | Jenkins for Software Heritage | 06 February 2019, 15:33:03 UTC | New upstream version 0.0.41 | 06 February 2019, 15:33:03 UTC |
e6533ed | Jenkins for Software Heritage | 06 February 2019, 15:33:03 UTC | Updated version 0.0.41 from 'debian/upstream/0.0.41' with Debian dir db3eefcae33791c5d593a0e3ffba4c0359b678f9 | 06 February 2019, 15:33:03 UTC |
db25694 | David Douard | 06 February 2019, 13:18:18 UTC | Fix a bug in the listener: commit() is not defined in the backend but on its connection. | 06 February 2019, 13:18:18 UTC |
c29d383 | Nicolas Dandrimont | 19 December 2018, 14:59:38 UTC | Add basic stats to tasks This just increments a counter for started tasks, ended tasks, tasks that failed with an exception. It also registers a timer for every task run. Close T1460. | 06 February 2019, 12:06:39 UTC |
abfe3db | David Douard | 01 February 2019, 15:57:29 UTC | Allow to override celery config file name via the SWH_CONFIG_FILENAME env var this will take precedence over the implicit config file scheme. The expected config file given via the environment variable is expected to have a [celery] section which will be used as config for the Celery app created in swh.scheduler.celery_backend.config. Related to T1410 and T826. | 06 February 2019, 09:25:07 UTC |
0f2f3ff | David Douard | 01 February 2019, 14:32:21 UTC | Make (celery) tests immune to environment variables especially CELERY_BROKER_URL... | 01 February 2019, 14:32:21 UTC |
e2a91fb | Valentin Lorentz | 01 February 2019, 12:47:47 UTC | Remove call to tobytes(), BaseDB now handles conversion. | 01 February 2019, 14:03:48 UTC |
0c3306b | David Douard | 31 January 2019, 14:27:52 UTC | Fix the task_queues Celery config setting in build_app() ensure the config entry contains Queue objects. | 31 January 2019, 14:52:41 UTC |
f188343 | David Douard | 31 January 2019, 14:26:57 UTC | cli: display a sorted list of task-types | 31 January 2019, 14:52:41 UTC |
b0e6dd8 | David Douard | 31 January 2019, 12:37:38 UTC | Fix the listener: accessing the db cnx from the backend has changed | 31 January 2019, 14:52:41 UTC |
5d40529 | David Douard | 31 January 2019, 12:35:56 UTC | Make cli tools output logs on the console by default for other log levels than DEBUG, and add a --no-stdout option flag to disable this. | 31 January 2019, 14:52:41 UTC |
a8bc684 | David Douard | 31 January 2019, 11:14:54 UTC | cli: build the celery app from a celery section of the given configuration file for runner and listener commands. related to T1410 | 31 January 2019, 14:52:32 UTC |
4246286 | David Douard | 31 January 2019, 11:13:44 UTC | Add a build_app() function to instantiate a Celery app with controlled config ie. being able to give the celery config dict as parameter. related to T1410 | 31 January 2019, 14:45:37 UTC |
70581b6 | David Douard | 30 January 2019, 09:43:40 UTC | Add a /site-map endpoint that lists published routes for this server | 31 January 2019, 10:15:50 UTC |
5880c52 | David Douard | 31 January 2019, 09:22:41 UTC | Activate the support for options from environment variables for swh-scheduler tool so that one can type (typically in a venv, with services running in dockers): (venv) swh-environment$ export SWH_SCHEDULER_URL=http://127.0.0.1:5008 (venv) swh-environment$ swh-scheduler task-type list | 31 January 2019, 09:29:43 UTC |
9bc5640 | David Douard | 31 January 2019, 09:21:13 UTC | Fix 'swh-scheduler runner' command: rollback() has beed removed from the SchedulerBackend and is not needed any more there. | 31 January 2019, 09:29:43 UTC |
174d89b | David Douard | 31 January 2019, 09:18:33 UTC | Fix get_scheduler's cls value when using 'swh-scheduler --url' cli option also ensure args dict does not have default db settings (unsupported by the RemoteScheduler class). | 31 January 2019, 09:29:43 UTC |
6da09a1 | David Douard | 30 January 2019, 15:55:31 UTC | Fix a regression introduced in 61c91b82 when deleting a click.option, one would better delete the function argument as well... | 30 January 2019, 15:58:11 UTC |
b25c7cd | Valentin Lorentz | 30 January 2019, 10:27:00 UTC | Drop 'except Exception', it catches too many errors. eg. ImportErrors when negotiate is not installed. | 30 January 2019, 12:55:58 UTC |
84cded2 | David Douard | 30 January 2019, 11:21:28 UTC | BaseDb.copy_to's default_columns has been renamed as default_values | 30 January 2019, 11:22:51 UTC |
4fc7a89 | David Douard | 30 January 2019, 09:19:11 UTC | Make the prepare_event helper function pre-aggregate the events with same url and strip these urls as well. It makes no sense to register 2 different URLs when they are equal to a trailing ws detail. As a result, we must preaggregate them because the swh_cache_put() sql function won't allow several 'on conflict' for the same id. | 30 January 2019, 10:51:22 UTC |
4117d5a | David Douard | 29 January 2019, 14:34:04 UTC | Rewrite updater/test_backend.py with pytest and use the postgresql fixture also implement the test with more precise expected behavior, especially the content pre-aggregation of events and the url stripping. As is, this test will fail, the pre-aggregation and url stripping being implemented in the following revision. | 30 January 2019, 09:57:11 UTC |
ebee014 | David Douard | 30 January 2019, 09:14:19 UTC | Kill DbBackend class we can now use directly the implementation of the copy_to() method from swh.core's BaseDb, so we just have to extract the format_query as a simple function (which it should have been since the beginning). Adapt updater/backend.py acordingly. | 30 January 2019, 09:57:11 UTC |
f338b75 | David Douard | 29 January 2019, 13:29:22 UTC | Refactor swh/scheduler/updater as well - use the same config system as the main backend, with the same conventions, - do not make SchedulerUpdaterBackend inherit from DbBackend, use a simple association, similar to the SchedulerBackend class, - refactor the ghtorrent the same (explicit config), - same for the updater writer - move their main functions in cli.py - adapt tests accordingly | 30 January 2019, 09:49:59 UTC |
48e5372 | David Douard | 29 January 2019, 13:24:17 UTC | Fix tests for the scheduler and the API adapt the configuration to latest refactorings (especially the 'scheduling_db' config entry which is now just 'db'). Also refactor the scheduler tests to simplify the test class a bit: constants used in the test do not need to be in the setUp of the test class, making this setUp method useless. Doing so, ensure to use simple dicts as test constants instead of copy-the-modify them. This is (unit)test file, the dumbest, the better. | 30 January 2019, 09:49:59 UTC |
61c91b8 | David Douard | 29 January 2019, 13:11:07 UTC | Refactor config handling in cli.py Move the config file loading in the main cli group so that every command in this group have a consistent config loading behavior. This means that some cli commands "signatures" have changed: - every command now accepts a -C/--config-file option - the --cls has been dropped: either you give a config file, or passing a --database or --url option determine the 'class' of backend to use, - the api-server command 'config-path' argument has been dropped (use --config-file instead), | 30 January 2019, 09:49:59 UTC |
63af874 | David Douard | 29 January 2019, 12:50:14 UTC | Move sheduler's default conf in swh.scheduler | 30 January 2019, 09:49:59 UTC |
a840ec4 | David Douard | 29 January 2019, 13:07:35 UTC | Make configuration of SWHElasticSearchClient use an explicit and consistent behavior instead of looking the config file for this entity in a hard to find dedicated file, expect a config object (dict) as constructor kwargs and look for its config under the 'elasticsearch' section. | 30 January 2019, 09:49:59 UTC |
488b154 | David Douard | 29 January 2019, 12:53:56 UTC | Remove the main function from listener.py it's now in cli.py | 30 January 2019, 09:49:59 UTC |
cebc11d | David Douard | 24 January 2019, 15:33:45 UTC | Refactor the scheduler's backend to use swh.core.db.BaseDb (part 2) so it uses a proper connection pool to access the database. | 30 January 2019, 09:46:29 UTC |
94258bd | David Douard | 24 January 2019, 15:33:45 UTC | Refactor the scheduler's backend to use swh.core.db.BaseDb so it uses a proper connection pool to access the database. | 30 January 2019, 09:33:54 UTC |
35c285f | David Douard | 24 January 2019, 15:28:59 UTC | Add debug statements in the runner | 30 January 2019, 09:33:54 UTC |
7f51159 | David Douard | 24 January 2019, 15:19:37 UTC | Make the 'runner' cli command a bit less verbose do only report the number of scheduled tasks at info level, if any, and lower the 'Run ready tasks' log message at debug level. | 30 January 2019, 09:33:54 UTC |
63e750a | David Douard | 24 January 2019, 15:18:32 UTC | Small fix in the 'task respawn' cli command when respawning several tasks at once. | 30 January 2019, 09:33:54 UTC |
1203544 | David Douard | 24 January 2019, 15:13:31 UTC | Do not crash the listener if a message has already been ack'ed Note sure whether we should be concerned by the fact this sometimes occurs (under heavy load in the docker env). | 30 January 2019, 09:33:54 UTC |
0252051 | David Douard | 24 January 2019, 15:01:04 UTC | prevent pytest from displaying gazillions of warnings especially the infamous psycopg2 one. | 30 January 2019, 09:33:54 UTC |
7b81304 | Valentin Lorentz | 29 January 2019, 15:28:40 UTC | Increase the max queue size of the origin_metadata indexer. It's going very fast now, enough to empty its queue between two scheduler-runner runs. | 29 January 2019, 16:12:25 UTC |
2f019b5 | Jenkins for Software Heritage | 28 January 2019, 15:30:41 UTC | Updated debian changelog for version 0.0.40 | 28 January 2019, 15:30:41 UTC |
7137135 | Jenkins for Software Heritage | 28 January 2019, 15:30:40 UTC | New upstream version 0.0.40 | 28 January 2019, 15:30:40 UTC |
96eccb2 | Jenkins for Software Heritage | 28 January 2019, 15:30:40 UTC | Updated version 0.0.40 from 'debian/upstream/0.0.40' with Debian dir a02987f29d4557014dce169b0685002ab3aa4913 | 28 January 2019, 15:30:40 UTC |
53136b7 | Antoine R. Dumont (@ardumont) | 28 January 2019, 15:22:53 UTC | swh.scheduler.tests: Mark db tests as such This will work around the current debian package build failure Related T1498 | 28 January 2019, 15:22:53 UTC |
e26aec7 | Nicolas Dandrimont | 18 January 2019, 16:45:02 UTC | Force tox environment to C.UTF-8 locale Works around https://github.com/ClearcodeHQ/pytest-postgresql/issues/16 | 18 January 2019, 16:45:02 UTC |
df1cca3 | David Douard | 17 January 2019, 10:22:13 UTC | Add debug logging in the SWHTask class instead of replicating the same logging code everywhere. | 17 January 2019, 10:24:47 UTC |
c3d21c0 | Jenkins for Software Heritage | 16 January 2019, 12:42:37 UTC | Updated debian changelog for version 0.0.39 | 16 January 2019, 12:42:37 UTC |
1255ce0 | Jenkins for Software Heritage | 16 January 2019, 12:42:37 UTC | Updated version 0.0.39 from 'debian/upstream/0.0.39' with Debian dir ecd14dd31eec5fe18a922c83999d3cebd6bae0fd | 16 January 2019, 12:42:37 UTC |
3a4f062 | Jenkins for Software Heritage | 16 January 2019, 12:42:36 UTC | New upstream version 0.0.39 | 16 January 2019, 12:42:36 UTC |
caaa44b | David Douard | 16 January 2019, 08:56:32 UTC | Revert "tox: pifpaf is not needed any more" This reverts commit f267f454fb91b421994f4ceabb50baa70982b76d. Pushed by mistake. | 16 January 2019, 08:56:32 UTC |
f267f45 | David Douard | 15 January 2019, 17:11:48 UTC | tox: pifpaf is not needed any more | 15 January 2019, 17:11:48 UTC |
99bf79e | David Douard | 15 January 2019, 17:06:41 UTC | enforce dep on pytest<4 see https://github.com/pytest-dev/pytest/issues/4641 It should be possible to let this constraint go when celery 4.3 is out | 15 January 2019, 17:11:37 UTC |
e1c25d2 | David Douard | 15 January 2019, 09:17:17 UTC | Replace task tests (in test_task.py) with pytest-based ones also remove now useless celery_testing.py and scheduler_testing.py files. | 15 January 2019, 16:39:32 UTC |
e741c93 | David Douard | 15 January 2019, 08:59:30 UTC | Add a 'swh_scheduler' pytest fixture that creates a swh scheduler usable for tests this uses the pytest-postgresql package to manage the database life cycle. | 15 January 2019, 16:39:10 UTC |
9725365 | David Douard | 14 January 2019, 09:24:41 UTC | Configure the celery result backend (as 'rpc://') by default the result backend must be configured to be able to save (celery) group results (as it is now the case for lister tasks for example). | 15 January 2019, 14:02:06 UTC |
6cb1813 | David Douard | 14 January 2019, 09:23:07 UTC | Add a few debug statements in cli | 15 January 2019, 14:02:06 UTC |
c0f9320 | David Douard | 14 January 2019, 09:23:41 UTC | Add a new 'task respawn' command that allows to respawn any task immediately (or any later date). | 15 January 2019, 14:02:01 UTC |
cafcb46 | David Douard | 14 January 2019, 09:03:12 UTC | Add a 'next_run' argument to the SchedulerBackend.set_status_tasks method so this method can be used to respawn a task immediately. | 15 January 2019, 13:57:44 UTC |
1aadc10 | David Douard | 14 January 2019, 09:12:21 UTC | Add a 'task list' cli command to list tasks with search criterions and not only pending tasks. | 15 January 2019, 13:57:39 UTC |
b3fd48e | David Douard | 14 January 2019, 09:07:12 UTC | Add a 'full' flag argument to the pretty_print_task function to display also the status and priority fields. | 15 January 2019, 13:49:49 UTC |
e0f224e | David Douard | 14 January 2019, 09:05:14 UTC | Add a SchedulerBackend.search_tasks method | 15 January 2019, 09:20:22 UTC |
2dbdb6c | David Douard | 14 January 2019, 09:21:00 UTC | Add a new 'task-type add' cli command | 15 January 2019, 09:20:22 UTC |
c3bb48d | David Douard | 14 January 2019, 08:59:38 UTC | Make SchedulerBackend.create_task_type work with only a subset of keys Not all keys are mandatory, so do not expect all the possible keys for the task_type table to be given when calling create_task_type(). Note: no validation is made whether the given set of keys fullfill the table constraints. | 15 January 2019, 09:20:22 UTC |
4c75330 | David Douard | 14 January 2019, 09:10:11 UTC | Add a new task-type cli command group and move the task_type listing in there | 14 January 2019, 10:38:19 UTC |
d658f93 | David Douard | 14 January 2019, 08:56:34 UTC | Add a few debug statements in swh.sceduler.backend | 14 January 2019, 10:31:14 UTC |
6bf1110 | David Douard | 14 January 2019, 08:50:43 UTC | Fix swh.scheduler.compute_nb_tasks_from function to return integers instead of float numbers. | 14 January 2019, 10:31:14 UTC |
996e905 | David Douard | 10 January 2019, 14:41:08 UTC | Add a --priority cmdline option to the 'swh-scheduler task add' tool | 14 January 2019, 10:31:09 UTC |
9f33c05 | David Douard | 09 January 2019, 17:55:48 UTC | Make the SWHTask class the default base class for tasks and add some kind of unit tests. | 10 January 2019, 14:43:40 UTC |
20be147 | David Douard | 09 January 2019, 16:37:19 UTC | Kill swh.scheduler.api.server.launch() in favor of the 'swh-scheduler api-server' command. | 10 January 2019, 14:43:40 UTC |
5c02d51 | David Douard | 09 January 2019, 15:41:32 UTC | Add a logging statement in the runner cli command also log an eventual exception instead of crashing the runner service. | 10 January 2019, 14:43:39 UTC |
292e5dc | David Douard | 07 January 2019, 15:53:15 UTC | Kill the CustomCelery class use functions instead of methods. This is required to be able to use celery pytest fixtures so one can really test celery tasks (especially when a task spawns sub tasks). one (get_queue_lenth) of the 3 methods has been added as (monkeypatched) method on the Celery class for the sake of bw compat, but this should really be removed as well as soon as possible (seems only used in swh-archiver). | 10 January 2019, 14:43:39 UTC |
96ad58b | David Douard | 07 January 2019, 13:26:00 UTC | Move logging configuration into the cli group function so that logging level config can be consistently set for all swh-scheduler commands. | 10 January 2019, 14:43:39 UTC |
69f1759 | David Douard | 07 January 2019, 13:19:54 UTC | Move the scheduler verification from the main cli group definition to subcommands since it's actually the responsibility of each subcommand to decide whether it can run without a properly configured scheduler instance. This is also required so the user can run: swh-scheduler subcommand --help even with a non-properly configured scheduler. | 10 January 2019, 14:43:39 UTC |
df075ba | David Douard | 07 January 2019, 10:34:49 UTC | Add 3 cli commands: runner, listener and api-server These commands do what they say, ie. start a runner, listener or API server process. Note that processes are not daemonized and run in front. Typically used as: swh-scheduler --cls local --database postgresql:///?service=swh api-server --host 127.0.0.1 --port 5008 swh-scheduler --cls remote --url http://127.0.0.1:5008 runner --period 10 swh-scheduler --cls remote --url http://127.0.0.1:5008 listener | 10 January 2019, 14:43:39 UTC |
6eb80f5 | David Douard | 07 January 2019, 10:32:41 UTC | Use a dict as click context obj in cli This is needed to be able to add more context objects (see following revisions). | 10 January 2019, 14:43:39 UTC |
584724d | David Douard | 21 December 2018, 15:52:57 UTC | Add a new SWHTask class to be used as base class for swh celery tasks It is meant to be used to declare swh tasks via the task decorator instead of subclassing the (now deprecated) Task class. It is typically used like: from swh.scheduler.celery_backend.config import app from swh.scheduler.tasks import SWHTask @app.task(base=SWHTask) def ping(): return 'pong' | 10 January 2019, 14:43:30 UTC |
baa9376 | Jenkins for Software Heritage | 09 January 2019, 18:32:14 UTC | Updated debian changelog for version 0.0.38 | 09 January 2019, 18:32:14 UTC |
4d07231 | Jenkins for Software Heritage | 09 January 2019, 18:32:13 UTC | Updated version 0.0.38 from 'debian/upstream/0.0.38' with Debian dir de1ece2c64c9b30b8f5856c06f30cfa066422db5 | 09 January 2019, 18:32:13 UTC |
f2faafc | Jenkins for Software Heritage | 09 January 2019, 18:32:12 UTC | New upstream version 0.0.38 | 09 January 2019, 18:32:12 UTC |
b812434 | David Douard | 21 December 2018, 15:48:02 UTC | Replace the TaskRouter class by a simple function class-based router is a remainder of celery 3. | 08 January 2019, 09:39:49 UTC |
8559cec | David Douard | 21 December 2018, 15:49:59 UTC | Improve logging of the listener - do use a dedicated logger instead of the root logger, - add a couple of logging statements (in perform_action methods), - replace the --verbose cli option by --log-level | 08 January 2019, 09:39:49 UTC |
be0e938 | David Douard | 21 December 2018, 15:44:56 UTC | Improve logging configuration in celery's setup_log_handler function - allow to pass the loglevel as a string, - kill useless tmp variables, - add a filter to prevent amqp's heartbeat_tick debug messages. | 08 January 2019, 09:39:49 UTC |
b6bc2f2 | Nicolas Dandrimont | 18 December 2018, 16:08:45 UTC | Explicitly register class-based tasks inheriting from our own class This lets go of the metaclass madness imported from Celery 3, and goes for an explicit task registration mechanism as advised in Celery 4. We do explicit registration of all our tasks in the 'worker ready' signal, just before they automatically subscribe to the task queues. Unfortunately that signal is not emitted by the "test fixture" worker, so we need to explicitly register class-based tasks that are being used in tests. This doesn't show up for functions as the @task decorator handles registration. | 19 December 2018, 14:39:10 UTC |
05c641b | David Douard | 18 December 2018, 17:02:34 UTC | Refactor a bit the 'swh-scheduler task list-pending' cli tool since the task-type is mandatory, make it a command argument instead of an option, and make it variadic, so one can list several pending task types at once. Also do not use the pager. Let the user decide whether she wants paginated results. | 18 December 2018, 17:38:59 UTC |
2582293 | David Douard | 18 December 2018, 17:00:06 UTC | Add a new 'swh-schedule task add' command that allows to easily insert a new task in the scheduler's database, eg. swh-scheduler --database 'service=swh-scheduler' \ task add swh-lister-debian distribution=stretch policy=oneshot | 18 December 2018, 17:38:59 UTC |