[CalendarServer-changes] [4888] CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/ scheduling

source_changes at macosforge.org source_changes at macosforge.org
Tue Dec 22 08:17:35 PST 2009


Revision: 4888
          http://trac.macosforge.org/projects/calendarserver/changeset/4888
Author:   cdaboo at apple.com
Date:     2009-12-22 08:17:35 -0800 (Tue, 22 Dec 2009)
Log Message:
-----------
Fix implicit refreshes across partitions.

Modified Paths:
--------------
    CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/implicit.py
    CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/scheduler.py

Modified: CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/implicit.py
===================================================================
--- CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/implicit.py	2009-12-22 16:16:03 UTC (rev 4887)
+++ CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/implicit.py	2009-12-22 16:17:35 UTC (rev 4888)
@@ -32,12 +32,11 @@
 from twistedcaldav.method import report_common
 from twistedcaldav.scheduling import addressmapping
 from twistedcaldav.scheduling.cuaddress import InvalidCalendarUser,\
-    LocalCalendarUser
+    LocalCalendarUser, PartitionedCalendarUser
 from twistedcaldav.scheduling.icaldiff import iCalDiff
 from twistedcaldav.scheduling.itip import iTipGenerator, iTIPRequestStatus
 from twistedcaldav.scheduling.scheduler import CalDAVScheduler
 from twistedcaldav.scheduling.utils import getCalendarObjectForPrincipals
-from twistedcaldav.directory.principal import DirectoryCalendarPrincipalResource
 
 __all__ = [
     "ImplicitScheduler",
@@ -853,6 +852,10 @@
         calendar_resource, _ignore_name, _ignore_collection, _ignore_uri = (yield getCalendarObjectForPrincipals(self.request, self.organizerPrincipal, self.uid))
         if calendar_resource:
             self.organizer_calendar = calendar_resource.iCalendar()
+        elif isinstance(self.organizerAddress, PartitionedCalendarUser):
+            # For partitioning where the organizer is on a different node, we will assume that the attendee's copy
+            # of the event is up to date and "authoritative". So we pretend that is the organizer copy
+            self.organizer_calendar = self.oldcalendar
         
     def isAttendeeChangeInsignificant(self):
         """

Modified: CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/scheduler.py
===================================================================
--- CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/scheduler.py	2009-12-22 16:16:03 UTC (rev 4887)
+++ CalendarServer/branches/users/cdaboo/partition-4464/twistedcaldav/scheduling/scheduler.py	2009-12-22 16:17:35 UTC (rev 4888)
@@ -417,7 +417,7 @@
 
         # Now process partitioned recipients
         if partitioned_recipients:
-            yield self.generateRemoteSchedulingResponses(partitioned_recipients, responses, freebusy, getattr(self.request, 'suppressRefresh', False))
+            yield self.generateRemoteSchedulingResponses(partitioned_recipients, responses, freebusy, getattr(self.request, 'doing_attendee_refresh', False))
 
         # To reduce chatter, we suppress certain messages
         if not getattr(self.request, 'suppressRefresh', False):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20091222/f66eac31/attachment.html>


More information about the calendarserver-changes mailing list