[CalendarServer-changes] [8726] CalendarServer/trunk/twistedcaldav
source_changes at macosforge.org
source_changes at macosforge.org
Fri Feb 17 15:34:47 PST 2012
Revision: 8726
http://trac.macosforge.org/projects/calendarserver/changeset/8726
Author: sagen at apple.com
Date: 2012-02-17 15:34:47 -0800 (Fri, 17 Feb 2012)
Log Message:
-----------
When normalizing CUAddrs during migration, http(s) addresses should be made "relative" -- only examine the path portion.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/test/test_upgrade.py
CalendarServer/trunk/twistedcaldav/upgrade.py
Modified: CalendarServer/trunk/twistedcaldav/test/test_upgrade.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_upgrade.py 2012-02-17 21:16:47 UTC (rev 8725)
+++ CalendarServer/trunk/twistedcaldav/test/test_upgrade.py 2012-02-17 23:34:47 UTC (rev 8726)
@@ -20,6 +20,7 @@
from twistedcaldav.config import config
from twistedcaldav.directory.xmlfile import XMLDirectoryService
from twistedcaldav.directory.resourceinfo import ResourceInfoDatabase
+from twistedcaldav.ical import Component
from twistedcaldav.mail import MailGatewayTokensDatabase
from twistedcaldav.upgrade import (
xattrname, UpgradeError, upgradeData, updateFreeBusySet,
@@ -1467,6 +1468,10 @@
StubRecord("User A", 123, ("mailto:a at example.com", "urn:uuid:123")),
"mailto:b at example.com" :
StubRecord("User B", 234, ("mailto:b at example.com", "urn:uuid:234")),
+ "/principals/users/a" :
+ StubRecord("User A", 123, ("mailto:a at example.com", "urn:uuid:123")),
+ "/principals/users/b" :
+ StubRecord("User B", 234, ("mailto:b at example.com", "urn:uuid:234")),
}
directory = StubDirectory()
@@ -1478,6 +1483,13 @@
# would have been 8 times without the cuaCache.
self.assertEquals(directory.count, 3)
+ # Ensure normalization ignores the non-path part of http(s) CUAs
+ newData, changed = normalizeCUAddrs(normalizeEventWithHTTP, directory, cuaCache)
+ self.assertTrue("urn:uuid:123" in newData)
+ self.assertTrue("urn:uuid:234" in newData)
+ self.assertFalse("http" in newData)
+
+
normalizeEvent = """BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
@@ -1495,8 +1507,24 @@
END:VCALENDAR
""".replace("\n", "\r\n")
+normalizeEventWithHTTP = """BEGIN:VCALENDAR
+VERSION:2.0
+BEGIN:VEVENT
+TRANSP:OPAQUE
+UID:1E238CA1-3C95-4468-B8CD-C8A399F78C71
+DTSTART:20090203
+DTEND:20090204
+ORGANIZER;CN="User A":http://example.com/principals/users/a/
+SUMMARY:New Event
+DESCRIPTION:Foo
+ATTENDEE;CN="User A";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:http://example.com/principals/users/a/
+ATTENDEE;CN="User B";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:http://example.com/principals/users/b/
+END:VEVENT
+END:VCALENDAR
+""".replace("\n", "\r\n")
+
event01_before = """BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 3.0//EN
Modified: CalendarServer/trunk/twistedcaldav/upgrade.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/upgrade.py 2012-02-17 21:16:47 UTC (rev 8725)
+++ CalendarServer/trunk/twistedcaldav/upgrade.py 2012-02-17 23:34:47 UTC (rev 8726)
@@ -20,6 +20,7 @@
import xattr, os, zlib, hashlib, datetime, pwd, grp, shutil, errno, operator
from zlib import compress
from cPickle import loads as unpickle, UnpicklingError
+from urlparse import urlsplit
from twext.python.log import Logger
from twext.web2.dav import davxml
@@ -588,6 +589,12 @@
cal = Component.fromString(data)
def lookupFunction(cuaddr):
+
+ # If cuaddr is http(s), examine only the path portion, ignoring the
+ # hostname and port
+ if cuaddr.startswith("http"):
+ cuaddr = urlsplit(cuaddr)[2]
+
# Return cached results, if any.
if cuaCache.has_key(cuaddr):
return cuaCache[cuaddr]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120217/42772b7a/attachment.html>
More information about the calendarserver-changes
mailing list