[CalendarServer-changes] [8478] CalendarServer/trunk/twistedcaldav/upgrade.py

source_changes at macosforge.org source_changes at macosforge.org
Tue Jan 3 12:47:41 PST 2012


Revision: 8478
          http://trac.macosforge.org/projects/calendarserver/changeset/8478
Author:   cdaboo at apple.com
Date:     2012-01-03 12:47:32 -0800 (Tue, 03 Jan 2012)
Log Message:
-----------
Cache directory UUIDs that fail so we can short circuit them if they appear again.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/upgrade.py

Modified: CalendarServer/trunk/twistedcaldav/upgrade.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/upgrade.py	2012-01-03 18:15:00 UTC (rev 8477)
+++ CalendarServer/trunk/twistedcaldav/upgrade.py	2012-01-03 20:47:32 UTC (rev 8478)
@@ -1019,20 +1019,28 @@
             try:
                 itemsToProcess = list(inboxItems)
                 totalItems = len(itemsToProcess)
+                ignoreUUIDs = set()
                 for ctr, inboxItem in enumerate(itemsToProcess):
                     log.info("Processing %d/%d inbox item: %s" % (ctr+1, totalItems, inboxItem,))
                     ignore, uuid, ignore, fileName = inboxItem.rsplit("/", 3)
+                    
+                    if uuid in ignoreUUIDs:
+                        log.debug("Ignored inbox item - uuid ignored: %s" % (inboxItem,))
+                        inboxItems.remove(inboxItem)
+                        continue
 
                     record = directory.recordWithUID(uuid)
                     if record is None:
                         log.debug("Ignored inbox item - no record: %s" % (inboxItem,))
                         inboxItems.remove(inboxItem)
+                        ignoreUUIDs.add(uuid)
                         continue
 
                     principal = principalCollection.principalForRecord(record)
                     if principal is None or not isinstance(principal, DirectoryCalendarPrincipalResource):
                         log.debug("Ignored inbox item - no principal: %s" % (inboxItem,))
                         inboxItems.remove(inboxItem)
+                        ignoreUUIDs.add(uuid)
                         continue
 
                     request = FakeRequest(root, "PUT", None)
@@ -1049,6 +1057,7 @@
                         if calendarHome is None:
                             log.debug("Ignored inbox item - no calendar home: %s" % (inboxItem,))
                             inboxItems.remove(inboxItem)
+                            ignoreUUIDs.add(uuid)
                             continue
     
                         inbox = yield calendarHome.getChild("inbox")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120103/4c21b6ac/attachment.html>


More information about the calendarserver-changes mailing list