[CalendarServer-changes] [5369] CalendarServer/trunk/twext/web2/dav/resource.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri Mar 19 20:34:27 PDT 2010
Revision: 5369
http://trac.macosforge.org/projects/calendarserver/changeset/5369
Author: wsanchez at apple.com
Date: 2010-03-19 20:34:24 -0700 (Fri, 19 Mar 2010)
Log Message:
-----------
Unroll defGen
Modified Paths:
--------------
CalendarServer/trunk/twext/web2/dav/resource.py
Modified: CalendarServer/trunk/twext/web2/dav/resource.py
===================================================================
--- CalendarServer/trunk/twext/web2/dav/resource.py 2010-03-20 00:55:55 UTC (rev 5368)
+++ CalendarServer/trunk/twext/web2/dav/resource.py 2010-03-20 03:34:24 UTC (rev 5369)
@@ -1967,43 +1967,43 @@
"""
# See if already cached
- if not hasattr(request, "quota"):
+ if hasattr(request, "quota"):
+ if request.quota.has_key(self):
+ return succeed(request.quota[self])
+ else:
request.quota = {}
- if request.quota.has_key(self):
- yield request.quota[self]
- return
# Check this resource first
if self.isCollection():
qroot = self.quotaRoot(request)
if qroot is not None:
- used = waitForDeferred(self.currentQuotaUse(request))
- yield used
- used = used.getResult()
- available = qroot - used
- if available < 0:
- available = 0
- request.quota[self] = (available, used)
- yield request.quota[self]
- return
+ def gotUsage(used):
+ available = qroot - used
+ if available < 0:
+ available = 0
+ request.quota[self] = (available, used)
+ return (available, used)
+
+ d = self.currentQuotaUse(request)
+ d.addCallback(gotUsage)
+ return d
# Check the next parent
url = request.urlForResource(self)
if url != "/":
- parent = waitForDeferred(request.locateResource(parentForURL(url)))
- yield parent
- parent = parent.getResult()
- d = waitForDeferred(parent.quota(request))
- yield d
- request.quota[self] = d.getResult()
+ def gotQuota(quota):
+ request.quota[self] = quota
+ return quota
+
+ d = request.locateResource(parentForURL(url))
+ d.addCallback(lambda p: p.quota(request))
+ d.addCallback(gotQuota)
+ return d
else:
request.quota[self] = None
- yield request.quota[self]
- return
+ return succeed(request.quota[self])
- quota = deferredGenerator(quota)
-
def hasQuota(self, request):
"""
Check whether this resource is undre quota control by checking
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100319/33a74e2b/attachment.html>
More information about the calendarserver-changes
mailing list