[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