diff options
| author | Barry Warsaw | 2009-01-06 23:45:34 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2009-01-06 23:45:34 -0500 |
| commit | d3e2ba2707c99c0a444302b1f013131ea41b7eae (patch) | |
| tree | 3946d242ddda9adab74fb4cf1685319ca43e97ed | |
| parent | 994d079ea50deb58b20c41e506e29278c3c93257 (diff) | |
| download | mailman-d3e2ba2707c99c0a444302b1f013131ea41b7eae.tar.gz mailman-d3e2ba2707c99c0a444302b1f013131ea41b7eae.tar.zst mailman-d3e2ba2707c99c0a444302b1f013131ea41b7eae.zip | |
| -rw-r--r-- | mailman/Utils.py | 4 | ||||
| -rw-r--r-- | mailman/app/lifecycle.py | 10 | ||||
| -rw-r--r-- | mailman/bin/add_members.py | 2 | ||||
| -rw-r--r-- | mailman/bin/create_list.py | 4 | ||||
| -rw-r--r-- | mailman/bin/genaliases.py | 9 | ||||
| -rw-r--r-- | mailman/bin/show_qfiles.py | 80 | ||||
| -rw-r--r-- | mailman/mta/postfix.py | 4 |
7 files changed, 70 insertions, 43 deletions
diff --git a/mailman/Utils.py b/mailman/Utils.py index 31848d5c8..26235d47d 100644 --- a/mailman/Utils.py +++ b/mailman/Utils.py @@ -318,8 +318,8 @@ def Secure_MakeRandomPassword(length): 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) diff --git a/mailman/app/lifecycle.py b/mailman/app/lifecycle.py index 7ea50a055..7b7daadf3 100644 --- a/mailman/app/lifecycle.py +++ b/mailman/app/lifecycle.py @@ -54,8 +54,7 @@ def create_list(fqdn_listname, owners=None): # 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 @@ def remove_list(fqdn_listname, mailing_list=None, archives=True): # 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. diff --git a/mailman/bin/add_members.py b/mailman/bin/add_members.py index 7d30cd228..9c87f4af9 100644 --- a/mailman/bin/add_members.py +++ b/mailman/bin/add_members.py @@ -28,7 +28,7 @@ from mailman import i18n 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._ diff --git a/mailman/bin/create_list.py b/mailman/bin/create_list.py index 0c6039e45..8058a7d67 100644 --- a/mailman/bin/create_list.py +++ b/mailman/bin/create_list.py @@ -23,7 +23,7 @@ from mailman import i18n 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 @@ _ = i18n._ class ScriptOptions(SingleMailingListOptions): - usage=_("""\ + usage = _("""\ %prog [options] Create a new mailing list. diff --git a/mailman/bin/genaliases.py b/mailman/bin/genaliases.py index 786069417..e8916d030 100644 --- a/mailman/bin/genaliases.py +++ b/mailman/bin/genaliases.py @@ -21,7 +21,9 @@ __all__ = [ ] -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 @@ def main(): 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() diff --git a/mailman/bin/show_qfiles.py b/mailman/bin/show_qfiles.py index 3f27ae271..e4b64e0cd 100644 --- a/mailman/bin/show_qfiles.py +++ b/mailman/bin/show_qfiles.py @@ -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()) diff --git a/mailman/mta/postfix.py b/mailman/mta/postfix.py index be7dc9b9b..da265fecf 100644 --- a/mailman/mta/postfix.py +++ b/mailman/mta/postfix.py @@ -98,13 +98,13 @@ class LMTP: # len('-subscribe') + '@'. longest = len(list_name + domain) + 10 print >> fp, """\ -{0}@{1:{3}}lmtp:{2.mta.lmtp_host}:{2.mta.lmtp_port}""".format( +{0}@{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}-{1}@{2:{4}}lmtp:{3.mta.lmtp_host}:{3.mta.lmtp_port}""".format( +{0}-{1}@{2:{4}}lmtp:inet:{3.mta.lmtp_host}:{3.mta.lmtp_port}""".format( list_name, destination, domain, config, longest - len(destination)) print >> fp |
