[CalendarServer-changes] [4494] CalendarServer/branches/more-deferreds-3

source_changes at macosforge.org source_changes at macosforge.org
Thu Aug 13 12:23:00 PDT 2009


Revision: 4494
          http://trac.macosforge.org/projects/calendarserver/changeset/4494
Author:   william_short at apple.com
Date:     2009-08-13 12:22:57 -0700 (Thu, 13 Aug 2009)
Log Message:
-----------
closer. 35 failures

Modified Paths:
--------------
    CalendarServer/branches/more-deferreds-3/bin/caldavd
    CalendarServer/branches/more-deferreds-3/twistedcaldav/directory/calendar.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/method/get.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/method/put_common.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/method/report_common.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/resource.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/implicit.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/processing.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/scheduler.py
    CalendarServer/branches/more-deferreds-3/twistedcaldav/static.py

Modified: CalendarServer/branches/more-deferreds-3/bin/caldavd
===================================================================
--- CalendarServer/branches/more-deferreds-3/bin/caldavd	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/bin/caldavd	2009-08-13 19:22:57 UTC (rev 4494)
@@ -120,4 +120,4 @@
 
 echo exec "${python}" "${twistdpath}" "${twistd_reactor}" ${daemonize} ${username} ${groupname} "${plugin_name}" ${configfile} ${service_type} ${profile} "${child_reactor}";
 
-exec "${python}" "${twistdpath}" ${twistd_reactor}  ${daemonize} ${username} ${groupname} "${plugin_name}" ${configfile} ${service_type} ${profile} ${child_reactor};
+exec "${python}" "${twistdpath}" ${twistd_reactor} ${daemonize} ${username} ${groupname} "${plugin_name}" ${configfile} ${service_type} ${profile} ${child_reactor};

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/directory/calendar.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/directory/calendar.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/directory/calendar.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -251,7 +251,35 @@
     """
     Calendar home collection resource.
     """
+    @classmethod
+    def fetch(cls, *a, **kw):
+        d = super(DirectoryCalendarHomeResource, cls).fetch(*a, **kw)
+        def _populateChildren(self):
+            # Cache children which must be of a specific type
+            childlist = (
+                ("inbox" , ScheduleInboxResource ),
+                ("outbox", ScheduleOutboxResource),
+            )
+            if config.EnableDropBox:
+                childlist += (
+                    ("dropbox", DropBoxHomeResource),
+                )
+            if config.FreeBusyURL.Enabled:
+                childlist += (
+                    ("freebusy", FreeBusyURLResource),
+                )
+            ds = []
+            for name, cls in childlist:
+                d = self.provisionChild(name)
+                def _newChild(child):
+                    assert isinstance(child, cls), "Child %r is not a %s: %r" % (name, cls.__name__, child)
+                    self.putChild(name, child)
+                d.addCallback(_newChild)
+                ds.append(d)
+            return gatherResults(ds).addCallback(lambda _: self)
 
+        return d.addCallback(_populateChildren)
+
     def __init__(self, parent, record):
         """
         @param path: the path to the file which will back the resource.
@@ -264,6 +292,7 @@
         self.record = record
         self.parent = parent
 
+
     def provisionDefaultCalendars(self):
 
         # Disable notifications during provisioning

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/method/get.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/method/get.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/method/get.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -1,4 +1,4 @@
-##
+\##
 # Copyright (c) 2005-2008 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -53,8 +53,8 @@
             if not isowner:
                 # Now "filter" the resource calendar data through the CALDAV:calendar-data element and apply
                 # access restrictions to the data.
-                caldata = caldavxml.CalendarData().elementFromResourceWithAccessRestrictions(self, access).calendarData()
-
+                el = yield caldavxml.CalendarData().elementFromResourceWithAccessRestrictions(self, access)
+                caldata = el.calendarData()
                 response = Response()
                 response.stream = MemoryStream(caldata)
                 response.headers.setHeader("content-type", MimeType.fromString("text/calendar; charset=utf-8"))

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/method/put_common.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/method/put_common.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/method/put_common.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -703,9 +703,10 @@
             if old_has_private_comments and not new_has_private_comments:
                 # Transfer old comments to new calendar
                 log.debug("Private Comments properties were entirely removed by the client. Restoring existing properties.")
-                self.destination.iCalendar().addCallback(self.calendar.transferProperties,
-                                                         "X-CALENDARSERVER-PRIVATE-COMMENT",
-                                                         "X-CALENDARSERVER-ATTENDEE-COMMENT")
+                self.destination.iCalendar().addCallback(
+                    lambda _: self.calendar.transferProperties(
+                        "X-CALENDARSERVER-PRIVATE-COMMENT",
+                        "X-CALENDARSERVER-ATTENDEE-COMMENT"))
                 self.calendardata = None
         
         return new_has_private_comments

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/method/report_common.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/method/report_common.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/method/report_common.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -417,7 +417,7 @@
                     fbinfo[fbtype_index_mapper.get(fbtype, 0)].append(clipped)
                 
         else:
-            calendar = yield ncalresource.iCalendar(name)
+            calendar = yield calresource.iCalendar(name)
             
             # The calendar may come back as None if the resource is being changed, or was deleted
             # between our initial index query and getting here. For now we will ignore this error, but in

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/resource.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/resource.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/resource.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -488,10 +488,10 @@
         """
         assert depth in ("0", "1", "infinity"), "Invalid depth: %s" % (depth,)
 
-        def checkPrivilegesError(failure):
+        def checkPrivilegesError(failure, children):
             failure.trap(AccessDeniedError)
 
-            reactor.callLater(0, getChild)
+            reactor.callLater(0, getChild, children)
 
         def checkPrivileges(child):
             if privileges is None:
@@ -521,7 +521,7 @@
                 childpath = joinURL(basepath, childname)
                 child = request.locateResource(childpath)
                 child.addCallback(checkPrivileges)
-                child.addCallbacks(gotChild, checkPrivilegesError, (childpath, children))
+                child.addCallbacks(gotChild, checkPrivilegesError, (childpath, children), None, (children,))
                 child.addErrback(completionDeferred.errback)
 
         completionDeferred = Deferred()

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/implicit.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/implicit.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/implicit.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -767,7 +767,7 @@
         else:
             # Make sure ORGANIZER is not changed
             if self.resource.exists():
-                self.oldcalendar = self.resource.iCalendar()
+                self.oldcalendar = yield self.resource.iCalendar()
                 oldOrganizer = self.oldcalendar.getOrganizer()
                 newOrganizer = self.calendar.getOrganizer()
                 if oldOrganizer != newOrganizer:

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/processing.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/processing.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/processing.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -132,7 +132,7 @@
         self.recipient_calendar_name = None
         calendar_resource, resource_name, calendar_collection, calendar_collection_uri = (yield getCalendarObjectForPrincipals(self.request, self.recipient.principal, self.uid))
         if calendar_resource:
-            self.recipient_calendar = calendar_resource.iCalendar()
+            self.recipient_calendar = yield calendar_resource.iCalendar()
             self.recipient_calendar_collection = calendar_collection
             self.recipient_calendar_collection_uri = calendar_collection_uri
             self.recipient_calendar_name = resource_name

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/scheduler.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/scheduler.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/scheduling/scheduler.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -564,7 +564,7 @@
     
         # Attendee's Outbox MUST be the request URI
         attendeePrincipal = self.resource.principalForCalendarUserAddress(attendee)
-        d = attendeePrincipal.scheduleOutboxURL(self.request)
+        d = attendeePrincipal.scheduleOutboxURL()
         def _gotOutboxURL(outboxURL):
             if attendeePrincipal:
                 if self.doingPOST and outboxURL != self.request.uri:

Modified: CalendarServer/branches/more-deferreds-3/twistedcaldav/static.py
===================================================================
--- CalendarServer/branches/more-deferreds-3/twistedcaldav/static.py	2009-08-13 19:22:56 UTC (rev 4493)
+++ CalendarServer/branches/more-deferreds-3/twistedcaldav/static.py	2009-08-13 19:22:57 UTC (rev 4494)
@@ -316,8 +316,8 @@
             if not isowner:
                 # Now "filter" the resource calendar data through the CALDAV:calendar-data element and apply
                 # access restrictions to the data.
-                return caldavxml.CalendarData().elementFromResourceWithAccessRestrictions(self, access).calendarData()
-
+                d = caldavxml.CalendarData().elementFromResourceWithAccessRestrictions(self, access)
+                return d.addCallback(lambda el: el.calendarData())
         return self.iCalendarText()
 
     def iCalendarText(self, name=None):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090813/6cae4bba/attachment-0001.html>


More information about the calendarserver-changes mailing list