From 62d9e34b8f6849328171676d1a464679b5ebc11c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Bompard?= Date: Fri, 4 Dec 2015 15:15:11 +0000 Subject: [PATCH] Add a cron job for Mailman 3 --- roles/mailman/files/periodic.py | 23 +++++++++++++++++++ roles/mailman/tasks/main.yml | 8 ++++++- roles/mailman/templates/crontab-mailman3.j2 | 1 + .../{crontab.j2 => crontab-webui.j2} | 0 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100755 roles/mailman/files/periodic.py create mode 100644 roles/mailman/templates/crontab-mailman3.j2 rename roles/mailman/templates/{crontab.j2 => crontab-webui.j2} (100%) diff --git a/roles/mailman/files/periodic.py b/roles/mailman/files/periodic.py new file mode 100755 index 0000000000..73dcee08cb --- /dev/null +++ b/roles/mailman/files/periodic.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +import os +import sys + +from mailman.core.initialize import initialize +from mailman.config import config +from mailman.interfaces.pending import IPendings +from mailman.interfaces.requests import IListRequests, RequestType +from zope.component import getUtility + + +def clean_pended(): + getUtility(IPendings).evict() + + +if __name__ == '__main__': + if os.getuid() == 0: + print("This script must be run as the mailman user", file=sys.stderr) + sys.exit(1) + initialize(config_path="/etc/mailman.cfg") + clean_pended() + config.db.commit() diff --git a/roles/mailman/tasks/main.yml b/roles/mailman/tasks/main.yml index 29eef4515d..133b3d9301 100644 --- a/roles/mailman/tasks/main.yml +++ b/roles/mailman/tasks/main.yml @@ -193,7 +193,12 @@ # Crontab # - name: set the hyperkitty crontab - template: src=crontab.j2 dest=/etc/cron.d/hyperkitty + template: src=crontab-webui.j2 dest=/etc/cron.d/hyperkitty + tags: + - config + - mailman +- name: set the mailman crontab + template: src=crontab-mailman3.j2 dest=/etc/cron.d/mailman3 tags: - config - mailman @@ -367,6 +372,7 @@ - pg-give-rights.py - post-update.sh - import-mm2.py + - periodic.py - name: copy the initial user fixture copy: src=postorius.initial-user.json diff --git a/roles/mailman/templates/crontab-mailman3.j2 b/roles/mailman/templates/crontab-mailman3.j2 new file mode 100644 index 0000000000..5be2306c6f --- /dev/null +++ b/roles/mailman/templates/crontab-mailman3.j2 @@ -0,0 +1 @@ +42 * * * * mailman {{ mailman_webui_basedir }}/bin/periodic.py diff --git a/roles/mailman/templates/crontab.j2 b/roles/mailman/templates/crontab-webui.j2 similarity index 100% rename from roles/mailman/templates/crontab.j2 rename to roles/mailman/templates/crontab-webui.j2