------------------------------------------------------------
revno: 6668
committer: Barry Warsaw <[email protected]>
branch nick: 3.0
timestamp: Tue 2009-01-06 23:45:34 -0500
message:
  Complete the integration of MTA setup with list creation and deletion.  Make
  Postfix lmtp file more compliant with the Postfix docs.  (Thanks Patrick
  Koetter).
  
  Fix a few more lazr.config conversion issues.
  
  Fix bin/show_qfiles, and add a --summary switch.
modified:
  mailman/Utils.py
  mailman/app/lifecycle.py
  mailman/bin/add_members.py
  mailman/bin/create_list.py
  mailman/bin/genaliases.py
  mailman/bin/show_qfiles.py
  mailman/mta/postfix.py

=== modified file 'mailman/Utils.py'
--- a/mailman/Utils.py  2009-01-05 05:54:19 +0000
+++ b/mailman/Utils.py  2009-01-07 04:45:34 +0000
@@ -318,8 +318,8 @@
 
 def MakeRandomPassword(length=None):
     if length is None:
-        length = int(config.member_password_length)
-    if as_boolean(config.user_friendly_passwords):
+        length = int(config.passwords.member_password_length)
+    if as_boolean(config.passwords.user_friendly_passwords):
         password = UserFriendly_MakeRandomPassword(length)
     else:
         password = Secure_MakeRandomPassword(length)

=== modified file 'mailman/app/lifecycle.py'
--- a/mailman/app/lifecycle.py  2009-01-05 05:54:19 +0000
+++ b/mailman/app/lifecycle.py  2009-01-07 04:45:34 +0000
@@ -54,8 +54,7 @@
     # Coordinate with the MTA, as defined in the configuration file.
     module_name, class_name = config.mta.incoming.rsplit('.', 1)
     __import__(module_name)
-    mta = getattr(sys.modules[module_name], class_name)
-    mta().create(mlist)
+    getattr(sys.modules[module_name], class_name)().create(mlist)
     # Create any owners that don't yet exist, and subscribe all addresses as
     # owners of the mailing list.
     usermgr = config.db.user_manager
@@ -82,10 +81,9 @@
         # Delete the mailing list from the database.
         config.db.list_manager.delete(mailing_list)
         # Do the MTA-specific list deletion tasks
-##         if config.MTA:
-##             modname = 'mailman.MTA.' + config.MTA
-##             __import__(modname)
-##             sys.modules[modname].remove(mailing_list)
+        module_name, class_name = config.mta.incoming.rsplit('.', 1)
+        __import__(module_name)
+        getattr(sys.modules[module_name], class_name)().create(mlist)
         # Remove the list directory.
         removeables.append(os.path.join(config.LIST_DATA_DIR, fqdn_listname))
     # Remove any stale locks associated with the list.

=== modified file 'mailman/bin/add_members.py'
--- a/mailman/bin/add_members.py        2009-01-03 10:47:41 +0000
+++ b/mailman/bin/add_members.py        2009-01-07 04:45:34 +0000
@@ -28,7 +28,7 @@
 from mailman.app.membership import add_member
 from mailman.config import config
 from mailman.core import errors
-from mailman.interfaces import AlreadySubscribedError, DeliveryMode
+from mailman.interfaces.member import AlreadySubscribedError, DeliveryMode
 from mailman.options import SingleMailingListOptions
 
 _ = i18n._

=== modified file 'mailman/bin/create_list.py'
--- a/mailman/bin/create_list.py        2009-01-03 10:13:41 +0000
+++ b/mailman/bin/create_list.py        2009-01-07 04:45:34 +0000
@@ -23,7 +23,7 @@
 from mailman.app.lifecycle import create_list
 from mailman.config import config
 from mailman.core import errors
-from mailman.interfaces import ListAlreadyExistsError
+from mailman.interfaces.listmanager import ListAlreadyExistsError
 from mailman.options import SingleMailingListOptions
 
 
@@ -32,7 +32,7 @@
 
 
 class ScriptOptions(SingleMailingListOptions):
-    usage=_("""\
+    usage = _("""\
 %prog [options]
 
 Create a new mailing list.

=== modified file 'mailman/bin/genaliases.py'
--- a/mailman/bin/genaliases.py 2009-01-05 00:41:05 +0000
+++ b/mailman/bin/genaliases.py 2009-01-07 04:45:34 +0000
@@ -21,7 +21,9 @@
     ]
 
 
-from mailman.core.plugins import get_plugin
+import sys
+
+from mailman.config import config
 from mailman.i18n import _
 from mailman.options import Options
 
@@ -52,8 +54,9 @@
     options.initialize()
 
     # Get the MTA-specific module.
-    mta = get_plugin('mailman.mta')
-    mta().regenerate()
+    module_path, class_path = config.mta.incoming.rsplit('.', 1)
+    __import__(module_path)
+    getattr(sys.modules[module_path], class_path)().regenerate()
 
 
 

=== modified file 'mailman/bin/show_qfiles.py'
--- a/mailman/bin/show_qfiles.py        2009-01-05 00:41:05 +0000
+++ b/mailman/bin/show_qfiles.py        2009-01-07 04:45:34 +0000
@@ -15,49 +15,75 @@
 # You should have received a copy of the GNU General Public License along with
 # GNU Mailman.  If not, see <http://www.gnu.org/licenses/>.
 
+import os
 import sys
-import optparse
+
 from cPickle import load
 
-from mailman.configuration import config
+from mailman.config import config
 from mailman.i18n import _
-from mailman.version import MAILMAN_VERSION
+from mailman.options import Options
 
 
 
-def parseargs():
-    parser = optparse.OptionParser(version=MAILMAN_VERSION,
-                                   usage=_("""\
+class ScriptOptions(Options):
+    usage = _("""
 %%prog [options] qfiles ...
 
-Show the contents of one or more Mailman queue files."""))
-    parser.add_option('-q', '--quiet',
-                      default=False, action='store_true',
-                      help=_("Don't print 'helpful' message delimiters."))
-    parser.add_option('-C', '--config',
-                      help=_('Alternative configuration file to use'))
-    opts, args = parser.parse_args()
-    return parser, opts, args
+Show the contents of one or more Mailman queue files.""")
+
+    def add_options(self):
+        super(ScriptOptions, self).add_options()
+        self.parser.add_option(
+            '-q', '--quiet',
+            default=False, action='store_true',
+            help=_("Don't print 'helpful' message delimiters."))
+        self.parser.add_option(
+            '-s', '--summary',
+            default=False, action='store_true',
+            help=_('Show a summary of queue files.'))
 
 
 
 def main():
-    parser, opts, args = parseargs()
-    config.load(opts.config)
+    options = ScriptOptions()
+    options.initialize()
 
-    for filename in args:
-        if not opts.quiet:
+    if options.options.summary:
+        queue_totals = {}
+        files_by_queue = {}
+        for switchboard in config.switchboards.values():
+            total = 0
+            file_mappings = {}
+            for filename in os.listdir(switchboard.queue_directory):
+                base, ext = os.path.splitext(filename)
+                file_mappings[ext] = file_mappings.get(ext, 0) + 1
+                total += 1
+            files_by_queue[switchboard.queue_directory] = file_mappings
+            queue_totals[switchboard.queue_directory] = total
+        # Sort by queue name.
+        for queue_directory in sorted(files_by_queue):
+            total = queue_totals[queue_directory]
+            print queue_directory
+            print _('\tfile count: $total')
+            file_mappings = files_by_queue[queue_directory]
+            for ext in sorted(file_mappings):
+                print '\t{0}: {1}'.format(ext, file_mappings[ext])
+        return
+    # No summary.
+    for filename in options.arguments:
+        if not options.options.quiet:
             print '====================>', filename
-        fp = open(filename)
-        if filename.endswith(".pck"):
-            msg = load(fp)
-            data = load(fp)
-            if data.get('_parsemsg'):
-                sys.stdout.write(msg)
+        with open(filename) as fp:
+            if filename.endswith('.pck'):
+                msg = load(fp)
+                data = load(fp)
+                if data.get('_parsemsg'):
+                    sys.stdout.write(msg)
+                else:
+                    sys.stdout.write(msg.as_string())
             else:
-                sys.stdout.write(msg.as_string())
-        else:
-            sys.stdout.write(fp.read())
+                sys.stdout.write(fp.read())
 
 
 

=== modified file 'mailman/mta/postfix.py'
--- a/mailman/mta/postfix.py    2009-01-07 00:55:59 +0000
+++ b/mailman/mta/postfix.py    2009-01-07 04:45:34 +0000
@@ -98,13 +98,13 @@
                     # len('-subscribe') + '@'.
                     longest = len(list_name + domain) + 10
                     print >> fp, """\
-...@{1:{3}}lmtp:{2.mta.lmtp_host}:{2.mta.lmtp_port}""".format(
+...@{1:{3}}lmtp:inet:{2.mta.lmtp_host}:{2.mta.lmtp_port}""".format(
                         list_name, domain, config,
                         # Add 1 because the bare list name has no dash.
                         longest + 1)
                     for destination in SUBDESTINATIONS:
                         print >> fp, """\
-{0}-...@{2:{4}}lmtp:{3.mta.lmtp_host}:{3.mta.lmtp_port}""".format(
+{0}-...@{2:{4}}lmtp:inet:{3.mta.lmtp_host}:{3.mta.lmtp_port}""".format(
                         list_name, destination, domain, config,
                         longest - len(destination))
                 print >> fp



--
Primary development focus
https://code.launchpad.net/~mailman-coders/mailman/3.0

You are receiving this branch notification because you are subscribed to it.
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to