summaryrefslogtreecommitdiff
path: root/Mailman/queue
diff options
context:
space:
mode:
authorBarry Warsaw2008-02-08 08:12:04 -0500
committerBarry Warsaw2008-02-08 08:12:04 -0500
commit3bf12766c0e16a2259a77f76b3a98b457788b5d3 (patch)
treed0a6a3e8285372e4a816fff842673fe39ba96bdd /Mailman/queue
parent0478757a09b4173937d75103fa96444b6b085300 (diff)
downloadmailman-3bf12766c0e16a2259a77f76b3a98b457788b5d3.tar.gz
mailman-3bf12766c0e16a2259a77f76b3a98b457788b5d3.tar.zst
mailman-3bf12766c0e16a2259a77f76b3a98b457788b5d3.zip
Diffstat (limited to 'Mailman/queue')
-rw-r--r--Mailman/queue/docs/incoming.txt20
-rw-r--r--Mailman/queue/incoming.py2
-rw-r--r--Mailman/queue/pipeline.py39
3 files changed, 49 insertions, 12 deletions
diff --git a/Mailman/queue/docs/incoming.txt b/Mailman/queue/docs/incoming.txt
index 04c0cfa04..9dc22a9ef 100644
--- a/Mailman/queue/docs/incoming.txt
+++ b/Mailman/queue/docs/incoming.txt
@@ -22,7 +22,7 @@ Accepted messages
We have a message that is going to be sent to the mailing list. This message
is so perfectly fine for posting that it will be accepted and forward to the
-prep queue.
+pipeline queue.
>>> msg = message_from_string("""\
... From: aperson@example.com
@@ -46,18 +46,18 @@ The incoming queue runner runs until it is empty.
>>> incoming = make_testable_runner(IncomingRunner)
>>> incoming.run()
-And now the message is in the prep queue.
+And now the message is in the pipeline queue.
>>> from Mailman.configuration import config
>>> from Mailman.queue import Switchboard
- >>> prep_queue = Switchboard(config.PREPQUEUE_DIR)
- >>> len(prep_queue.files)
+ >>> pipeline_queue = Switchboard(config.PIPELINEQUEUE_DIR)
+ >>> len(pipeline_queue.files)
1
>>> incoming_queue = Switchboard(config.INQUEUE_DIR)
>>> len(incoming_queue.files)
0
>>> from Mailman.tests.helpers import get_queue_messages
- >>> item = get_queue_messages(prep_queue)[0]
+ >>> item = get_queue_messages(pipeline_queue)[0]
>>> print item.msg.as_string()
From: aperson@example.com
To: _xtest@example.com
@@ -78,8 +78,8 @@ Held messages
-------------
The list moderator sets the emergency flag on the mailing list. The built-in
-chain will now hold all posted messages, so nothing will show up in the prep
-queue.
+chain will now hold all posted messages, so nothing will show up in the
+pipeline queue.
# XXX This checks the vette log file because there is no other evidence
# that this chain has done anything.
@@ -92,7 +92,7 @@ queue.
>>> inject(u'_xtest@example.com', msg)
>>> file_pos = fp.tell()
>>> incoming.run()
- >>> len(prep_queue.files)
+ >>> len(pipeline_queue.files)
0
>>> len(incoming_queue.files)
0
@@ -124,7 +124,7 @@ new chain and set it as the mailing list's start chain.
>>> inject(u'_xtest@example.com', msg)
>>> file_pos = fp.tell()
>>> incoming.run()
- >>> len(prep_queue.files)
+ >>> len(pipeline_queue.files)
0
>>> len(incoming_queue.files)
0
@@ -158,7 +158,7 @@ tests above.
>>> inject(u'_xtest@example.com', msg)
>>> file_pos = fp.tell()
>>> incoming.run()
- >>> len(prep_queue.files)
+ >>> len(pipeline_queue.files)
0
>>> len(incoming_queue.files)
0
diff --git a/Mailman/queue/incoming.py b/Mailman/queue/incoming.py
index 649ce2213..55d653990 100644
--- a/Mailman/queue/incoming.py
+++ b/Mailman/queue/incoming.py
@@ -26,8 +26,6 @@ prepared for delivery. Rejections, discards, and holds are processed
immediately.
"""
-
-
from Mailman.app.chains import process
from Mailman.configuration import config
from Mailman.queue import Runner
diff --git a/Mailman/queue/pipeline.py b/Mailman/queue/pipeline.py
new file mode 100644
index 000000000..5ccee0a20
--- /dev/null
+++ b/Mailman/queue/pipeline.py
@@ -0,0 +1,39 @@
+# Copyright (C) 2008 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+
+"""The pipeline queue runner.
+
+This runner's purpose is to take messages that have been approved for posting
+through the 'preparation pipeline'. This pipeline adds, deletes and modifies
+headers, calculates message recipients, and more.
+"""
+
+from Mailman.app.pipeline import process
+from Mailman.configuration import config
+from Mailman.queue import runner
+
+
+
+class PipelineRunner(Runner):
+ QDIR = config.PIPELINEQUEUE_DIR
+
+ def _dispose(self, mlist, msg, msgdata):
+ # Process the message through the mailing list's pipeline.
+ process(mlist, msg, msgdata, mlist.pipeline)
+ # Do not keep this message queued.
+ return False
+