summaryrefslogtreecommitdiff
path: root/cron
Commit message (Collapse)AuthorAgeFilesLines
...
* main(): All owner refereces should point to the mailman-owner@dom.ainbwarsaw2001-11-201-5/+7
| | | | | | | | | | | address instead of the mailman-admin@dom.ain address. We don't want people contacting the site owner to be bounce processed. Also, Utils.get_site_email()'s second argument should no longer include the leading dash. Set the `errorsto' metadata to the mailman-bounces address, and add a `verp' flag in the metadata set to VERP_PASSWORD_REMINDERS.
* pending_requests(): Subscription ID records unpack to a 6 tuple now,bwarsaw2001-11-091-2/+9
| | | | | which includes the fullname, but also watch out for older records which don't include the fullname.
* main(): If the site list is missing, write a log message to logs/errorbwarsaw2001-11-051-1/+10
| | | | | and exit with a non-zero status (so cron should let us know there's a problem).
* mimelib -> emailbwarsaw2001-10-223-10/+4
|
* Ben Gertzfield's patch to hardcode the path to the python executablebwarsaw2001-09-071-1/+3
| | | | | | | into the script's #! line -- based on --with-python settings, without losing CVS revision history. Install from the build directory.
* Ben Gertzfield's patch to hardcode the path to the python executablebwarsaw2001-09-076-6/+6
| | | | | | | | | | | | | into the script's #! line -- based on --with-python settings, without losing CVS revision history. #! /usr/bin/env python becomes #! @PYTHON@ which gets substituted for in configure.
* Massively rewritten so as to (hopefully) simplify the logic, and notbwarsaw2001-08-041-100/+109
| | | | | send the password reminder as if it's coming from the "first" public mailing list. Instead it comes from the "site list".
* Split SCRIPTS into FILES and PROGRAMS. The former is installed withbwarsaw2001-08-041-5/+8
| | | | | mode 644 while the latter is installed with mode 775. This lets you run cron scripts from the command line.
* Reorder the imports so mm_cfg is always the first module importedbwarsaw2001-07-276-9/+30
| | | | | | | | | | | | | | | after paths. Because these scripts are run from cron with "python -S" they must import mm_cfg before attempting to import mimelib; mm_cfg hacks sys.path to include site-packages which -S inhibits. For those scripts that already import mm_cfg, add a comment describing the import order dependencies. For those that didn't, add a comment about why it's being imported. Also, gate_news: Removed the _ContinueLoop docstring so translators have one less non-translatable docstring to worry about. Closes Thomas's SF patch #443803.
* poll_newsgroup(): work around Python 2.0 restriction on continue inside trytwouters2001-07-261-1/+8
| | | | clauses.
* Dang, the usual oversight.bwarsaw2001-07-261-1/+1
|
* main(): Use archive_dir() instead of the archive_directory attribute.bwarsaw2001-07-261-1/+1
|
* poll_newsgroup(): Untested patch so that newsgroup messages withbwarsaw2001-07-251-1/+8
| | | | broken MIME boundaries are ignored.
* All membership related attribute access should use the MemberAdaptorbwarsaw2001-07-191-2/+2
| | | | | | | API instead, e.g. GetUserOption() -> getMemberOption() GetUserSubscribedAddress() -> getMemberCPAddress()
* No longer necessary. qrunner is now a proper daemon and shouldn't bebwarsaw2001-07-061-290/+0
| | | | invoked from cron.
* Removed qrunner cron script, as it has been obsoleted bybwarsaw2001-07-051-2/+2
| | | | bin/mailmanctl and bin/qrunner.
* Lots of changes to make this act more like a traditional daemon and tobwarsaw2001-07-031-67/+59
| | | | | | | | | | | | | | | | | | | | | | | | | remove the run-from-cron functionality (yes, I know this script shouldn't be in cron/ anymore, but moving it is a PITA). Specifically, Removed the SIGCHLD signal handler since this will no longer be run as a cron job. Added a PIDFILE global to name the file holding the pid of the master qrunner process. sighup_handler(): When the master gets a SIGHUP, send a SIGINT to all the children so that they'll exit. This has two benefits: it will automatically close all open log files, and the auto-restart feature will mean all the children will see any changes to the source code (i.e they'll restart and thus import afresh any updated modules). master(): When the main loop exits, be sure to include the watchdog_pid in the list of children to SIGINT. main(): Removed the -b/--background flag. Write the pid of the current process to data/qrunner.pid so that it can be exited externally via: kill -INT `cat data/qrunner.pid` Convert all syslog() calls to new style.
* Don't run qrunner as a cron job any more (it's now a daemon).bwarsaw2001-07-031-3/+0
|
* mail_passwords(): Fixed missing translation markings; found by Ousmanebwarsaw2001-07-021-1/+1
| | | | Wilane.
* start_runner(): Put the invocation of qrclass().run() inside the try:bwarsaw2001-06-071-1/+1
| | | | | so that KeyboardInterrupts that percolate through are caught and ignored.
* A few more updates to get this script working. Specifically,bwarsaw2001-06-041-20/+27
| | | | | | | | | | | | | | main(): Only lock the list during the NumRequestsPending() call. We don't actually change the state of the list data, but the ListAdmin interface requires the list to be locked even to read (yes, this is bogus). Also, fix the _() marked string to use the required auto-interpolation. pending_requests(): Mark some additional strings for i18n. Also, pending subscription requests include the language in the unpacked data (fix the tuple unpacking).
* main(): Fix typo (missing ')') found by Ousmane Wilane.twouters2001-06-041-1/+1
|
* sighup_handler(): Be sure to propagate the SIGHUP to all the qrunnerbwarsaw2001-06-021-8/+12
| | | | | | | children, so they re-open their log files too. Move the `kids' dictionary (with keys being the pids of the children), to module global `KIDS' so sighup_handler() can have access to it.
* sighup_handler(): New global function, installed as a signal handlerbwarsaw2001-06-021-1/+15
| | | | | | | | | for SIGHUP to force all the log files to close and be re-opened on the next write. master(): Catch OSError, EINTR that can happen if a signal (e.g. SIGHUP) is caught during the wait() system call. It's enough to just restart the os.wait().
* de-string-module-ificationbwarsaw2001-05-311-9/+11
| | | | | main(): Use the new world order for sending a message (i.e. not through HandlerAPI). Also, do the mlist.Save() in the try: block.
* main(): Do not send a password reminder to a user if they havebwarsaw2001-05-251-7/+9
| | | | | | | | | | | suppressed reminders for a particular list. The user will have to disable reminders for all lists they are members of if they really don't want to get any such messages. mail_passwords(): Convert away from the old-style HandlerAPI mechanism of sending the reminder message. Also, de-string-module-ification.
* Be sure to set the language to the DEFAULT_SERVER_LANGUAGE as soon asbwarsaw2001-05-181-1/+4
| | | | possible.
* main(): MailList objects have grown a bump_digest_volume() method thatbwarsaw2001-05-011-3/+2
| | | | | encapsulates all the work necessary to bump the digest number. Use this instead of hacking the list attributes directly.
* main(): MailList objects have grown a send_digest_now() method thatbwarsaw2001-05-011-26/+6
| | | | | encapsulates all the work necessary to send a digest. Use this instead of the send_digests() function -- which has been removed.
* start_runner(): Due to race conditions, the subproc could get thebwarsaw2001-04-031-1/+6
| | | | SIGINT inside the syslog call. It's of no consequence.
* master(): Rework the while 1 loop so that it's inside the try/exceptbwarsaw2001-04-021-4/+4
| | | | | KeyboardError instead of outside it. This prevents the anomolous tracebacks that sometimes occur when ^C is used to kill qrunner.
* Improvements to make sure multiple qrunner masters aren't running atbwarsaw2001-03-011-15/+62
| | | | | | | | | | | | | the same time. Specifically, main(): Create a master qrunner lock file, with a lifetime of 10 days (but see below) and exit if that lock cannot be acquired. master(): Start the lock-refresher subprocess and restart it if it happens to exit. start_lock_refresher(): A tiny subprocess that owns the qrunner lock and periodically (once a day) wakes up to refresh it.
* usage(): Standard usage printing function.bwarsaw2001-02-161-7/+24
| | | | | | main(), master(): Add a -n/--no-restart option which inhibits a restart of child processes when they exit. Very helpful for debugging.
* Duh, don't try to import mimelib.Parser until after the paths havebwarsaw2001-02-161-2/+2
| | | | | | been hacked (thanks Ron Jarrell). I hadn't been trying this as a cron job, and the Python on my path has mimelib installed (and I wasn't using -S).
* Very significant changes to support the new Runner classes, and thebwarsaw2001-02-151-21/+167
| | | | | | | change in model to a long-running process. New usage options are added, including -r to run a specific runner exactly once, and -b to run the process in the backround.
* Convert to using the new ToDigest module which stores its digests in abwarsaw2001-02-151-20/+23
| | | | | Unix mailbox file instead of the separate next-digest and next-digest-topics files.
* De-string-module-ify.bwarsaw2001-02-151-17/+23
| | | | | | | | References to HandlerAPI module removed. Use the new mimelib and switchboard interfaces. Add some i18n markup.
* mail_passwords(): subj is marked for translation. Call maketext()bwarsaw2000-12-261-2/+3
| | | | with the list's preferred language.
* main(): Call maketext() with the list's preferred language.bwarsaw2000-12-261-1/+1
|
* First step in the conversion to a multiple-queue model. This scriptbwarsaw2000-12-201-246/+22
| | | | | | | | | | | | | | | gets simplified considerably because the bulk of the logic is moved into classes in the Mailman.Queue package. The next step might be to make the queues long running processes watchdogged by the qrunner. QRUNNERS is a list of classes to instantiate to run through the various queue directories. Currently there are only incoming, outgoing, and usenet queues. Each qrunner is run in it's own child process (via fork), so we need to be more careful about race conditions in the re-queuing logic. main(): Pretty simple now, it just forks and waits on the child processes.
* process_lists(): Wrap the open_newsgroup() call in a try/except tobwarsaw2000-12-201-2/+6
| | | | | catch any socket errors coming back from the nntp connection attempts.
* Start of support for i18n; marking of translatable strings.bwarsaw2000-12-071-5/+6
| | | | Use extended print statement and other Python 2.0 features.
* Add bumpdigests to the list of cron scripts to install.bwarsaw2000-11-011-1/+1
|
* Minor typo in docstring.bwarsaw2000-10-301-1/+1
|
* Cron script for bumping the digest volume number.bwarsaw2000-10-301-0/+91
|
* dispose_message(): For mail destined to either the -admin or thebwarsaw2000-09-181-1/+3
| | | | | -owner address, explicit set the 'noack' flag to false so the Replybot module will act on it. Closes bug #114603.
* mail_passwords(): Set the msgdata in DeliverToUser() to contain thebwarsaw2000-09-151-2/+7
| | | | | | | | | | "_nolist" volatile key, which indicates to the delivery pipeline that it shouldn't include list specific information (e.g. List-Id:). Closes SF bug #114127, Jitterbug PR#149. main(): DeliverToUser() requires the list to be locked, so be sure to lock a_public_list around the call to mail_passwords() otherwise exceptions will occur and lock turds will be left!
* Turn off incessant logging on every execution.bwarsaw2000-09-141-2/+2
|
* Minor clean up. Also turn off incessant logging on every execution.bwarsaw2000-09-141-4/+0
|
* main(): GetAbsoluteScriptURL() => GetScriptURL(..., absolute=1)bwarsaw2000-08-011-1/+1
|