summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xroles/mailman/files/periodic.py23
-rw-r--r--roles/mailman/tasks/main.yml8
-rw-r--r--roles/mailman/templates/crontab-mailman3.j21
-rw-r--r--roles/mailman/templates/crontab-webui.j2 (renamed from roles/mailman/templates/crontab.j2)0
4 files changed, 31 insertions, 1 deletions
diff --git a/roles/mailman/files/periodic.py b/roles/mailman/files/periodic.py
new file mode 100755
index 000000000..73dcee08c
--- /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 29eef4515..133b3d930 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 000000000..5be2306c6
--- /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
index 380ffb5bf..380ffb5bf 100644
--- a/roles/mailman/templates/crontab.j2
+++ b/roles/mailman/templates/crontab-webui.j2