summaryrefslogtreecommitdiff
path: root/Mailman/database/model/message.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-07-22 19:52:34 -0400
committerBarry Warsaw2007-07-22 19:52:34 -0400
commit2e4314fc178f34170b82aaa2f8ed4d0f5440f4f4 (patch)
treefa45f70d2643a8f42d727feb9de694e7c78ac1a8 /Mailman/database/model/message.py
parent8158f01c930d856b0ff892aab53cfbbcc25c85ec (diff)
downloadmailman-2e4314fc178f34170b82aaa2f8ed4d0f5440f4f4.tar.gz
mailman-2e4314fc178f34170b82aaa2f8ed4d0f5440f4f4.tar.zst
mailman-2e4314fc178f34170b82aaa2f8ed4d0f5440f4f4.zip
The start of a message store definition. Whether this will end up being used
for the archive or not is left to be seen. Define an interface, test, and implementation of a basic message store using globally unique identifiers of the form: archive/hash/seqno - archive is the base url of the archive, e.g. http://archives.example.com. This is available in the List-Archive header. - hash is the base32 encoded sha1 hash of the message's Message-ID and Date headers, which it must have. This is available in the X-List-ID-Hash header. - seqno is a sequence number specific to the archive which will uniquely identify the message should there be a Message-ID/Date collision. this is available in the X-List-Sequence-Number header. Added a MESSAGES_DIR variable to the config. Added a .message_store attribute to the config.
Diffstat (limited to 'Mailman/database/model/message.py')
-rw-r--r--Mailman/database/model/message.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Mailman/database/model/message.py b/Mailman/database/model/message.py
new file mode 100644
index 000000000..df8371c6a
--- /dev/null
+++ b/Mailman/database/model/message.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2007 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.
+
+from elixir import *
+from zope.interface import implements
+
+
+
+class Message(Entity):
+ """A message in the message store."""
+
+ has_field('hash', Unicode)
+ has_field('path', Unicode)
+ has_field('message_id', Unicode)
+
+ using_options(shortnames=True)