[CalendarServer-changes] [3299] CalendarServer/branches/users/sagen/localization-3280
source_changes at macosforge.org
source_changes at macosforge.org
Fri Oct 31 11:11:21 PDT 2008
Revision: 3299
http://trac.macosforge.org/projects/calendarserver/changeset/3299
Author: sagen at apple.com
Date: 2008-10-31 11:11:21 -0700 (Fri, 31 Oct 2008)
Log Message:
-----------
Adding LocalesDirectory and Language to config; now falls back to english if locale files not found; polling for mail is less noisy; failure to process emails won't leave them in the inbox
Modified Paths:
--------------
CalendarServer/branches/users/sagen/localization-3280/conf/caldavd-test.plist
CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/config.py
CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/localization.py
CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/mail.py
Modified: CalendarServer/branches/users/sagen/localization-3280/conf/caldavd-test.plist
===================================================================
--- CalendarServer/branches/users/sagen/localization-3280/conf/caldavd-test.plist 2008-10-31 17:34:20 UTC (rev 3298)
+++ CalendarServer/branches/users/sagen/localization-3280/conf/caldavd-test.plist 2008-10-31 18:11:21 UTC (rev 3299)
@@ -638,6 +638,13 @@
<string>logs/caldavd-pydir.sock</string>
</dict>
+ <key>Localization</key>
+ <dict>
+ <key>LocalesDirectory</key>
+ <string>locales</string>
+ <key>Language</key>
+ <string>en</string>
+ </dict>
</dict>
</plist>
Modified: CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/config.py
===================================================================
--- CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/config.py 2008-10-31 17:34:20 UTC (rev 3298)
+++ CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/config.py 2008-10-31 18:11:21 UTC (rev 3299)
@@ -290,7 +290,17 @@
"IdleConnectionTimeOut": 15,
"UIDReservationTimeOut": 30 * 60,
+
#
+ # Localization
+ #
+ "Localization" : {
+ "LocalesDirectory" : "/usr/share/caldavd/locales",
+ "Language" : "en",
+ },
+
+
+ #
# Implementation details
#
# The following are specific to how the server is built, and useful
Modified: CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/localization.py
===================================================================
--- CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/localization.py 2008-10-31 17:34:20 UTC (rev 3298)
+++ CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/localization.py 2008-10-31 18:11:21 UTC (rev 3299)
@@ -88,20 +88,24 @@
import gettext
import inspect
import datetime
+from twistedcaldav.config import config
class translationTo(object):
translations = {}
- def __init__(self, lang, domain='calendarserver', localeDir='locales'):
+ def __init__(self, lang, domain='calendarserver', localeDir=None):
+ if localeDir is None:
+ localeDir = config.Localization["LocalesDirectory"]
+
# Cache gettext translation objects in class.translations
key = (lang, domain, localeDir)
self.translation = self.translations.get(key, None)
if self.translation is None:
self.translation = gettext.translation(domain=domain,
- localedir=localeDir, languages=[lang, 'en'])
+ localedir=localeDir, languages=[lang, 'en'], fallback=True)
self.translations[key] = self.translation
def __enter__(self):
Modified: CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/mail.py
===================================================================
--- CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/mail.py 2008-10-31 17:34:20 UTC (rev 3298)
+++ CalendarServer/branches/users/sagen/localization-3280/twistedcaldav/mail.py 2008-10-31 18:11:21 UTC (rev 3299)
@@ -263,6 +263,8 @@
log.debug("Injecting to %s: %s %s" % (url, str(headers), data))
factory = client.HTTPClientFactory(url, method='POST', headers=headers,
postdata=data, agent="iMIP gateway")
+ factory.noisy = False
+
if useSSL:
reactor.connectSSL(host, port, factory, ssl.ClientContextFactory())
else:
@@ -483,8 +485,9 @@
# Compute token, add to db, generate email and send it
calendar = ical.Component.fromString(request.content.read())
headers = request.getAllHeaders()
+ language = config.Localization["Language"]
self.mailer.outbound(headers['originator'], headers['recipient'],
- calendar, language='en')
+ calendar, language=language)
# TODO: what to return?
return """
@@ -579,7 +582,7 @@
# TODO: what to do in this case?
pass
- self.log_error("Mail gateway processing DSN %s" % (msgId,))
+ self.log_warn("Mail gateway processing DSN %s" % (msgId,))
return fn(organizer, attendee, calendar, msgId)
def processReply(self, msg, fn):
@@ -630,33 +633,39 @@
def inbound(self, message, fn=injectMessage):
- msg = email.message_from_string(message)
+ try:
+ msg = email.message_from_string(message)
- isDSN, action, calBody = self.checkDSN(msg)
- if isDSN:
- if action == 'failed' and calBody:
- # This is a DSN we can handle
- return self.processDSN(calBody, msg['Message-ID'], fn)
- else:
- # It's a DSN without enough to go on
- self.log_error("Mail gateway can't process DSN %s" % (msg['Message-ID'],))
- return
+ isDSN, action, calBody = self.checkDSN(msg)
+ if isDSN:
+ if action == 'failed' and calBody:
+ # This is a DSN we can handle
+ return self.processDSN(calBody, msg['Message-ID'], fn)
+ else:
+ # It's a DSN without enough to go on
+ self.log_error("Mail gateway can't process DSN %s" % (msg['Message-ID'],))
+ return
- self.log_info("Mail gateway received message %s from %s to %s" %
- (msg['Message-ID'], msg['From'], msg['To']))
+ self.log_info("Mail gateway received message %s from %s to %s" %
+ (msg['Message-ID'], msg['From'], msg['To']))
- return self.processReply(msg, fn)
+ return self.processReply(msg, fn)
+ except Exception, e:
+ # Don't let a failure of any kind stop us
+ self.log_error("Failed to process message: %s" % (e,))
+
+
def outbound(self, organizer, attendee, calendar, language='en'):
# create token, send email
token = self.db.getToken(organizer, attendee)
if token is None:
token = self.db.createToken(organizer, attendee)
- self.log_info("Mail gateway created token %s for %s (organizer) and %s (attendee)" % (token, organizer, attendee))
+ self.log_debug("Mail gateway created token %s for %s (organizer) and %s (attendee)" % (token, organizer, attendee))
else:
- self.log_info("Mail gateway reusing token %s for %s (organizer) and %s (attendee)" % (token, organizer, attendee))
+ self.log_debug("Mail gateway reusing token %s for %s (organizer) and %s (attendee)" % (token, organizer, attendee))
settings = config.Scheduling['iMIP']['Sending']
fullServerAddress = settings['Address']
@@ -891,7 +900,6 @@
htmlText = htmlTemplate % details
- self.log_info(htmlText)
msgHtml = MIMEText(htmlText.encode("UTF-8"), "html", "UTF-8")
msgHtmlRelated.attach(msgHtml)
@@ -1043,6 +1051,7 @@
from twisted.internet import reactor
self.reactor = reactor
self.nextPoll = None
+ self.noisy = False
def retry(self, connector=None):
# TODO: if connector is None:
@@ -1218,6 +1227,7 @@
if reactor is None:
from twisted.internet import reactor
self.reactor = reactor
+ self.noisy = False
def handleMessage(self, message):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20081031/1da7ed25/attachment-0001.html>
More information about the calendarserver-changes
mailing list