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