[CalendarServer-changes] [5370] CalendarServer/trunk/twext/web2/dav/resource.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri Mar 19 20:57:56 PDT 2010
Revision: 5370
http://trac.macosforge.org/projects/calendarserver/changeset/5370
Author: wsanchez at apple.com
Date: 2010-03-19 20:57:55 -0700 (Fri, 19 Mar 2010)
Log Message:
-----------
deferredGenerator -> inlineCallbacks and unroll defGens
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 03:34:24 UTC (rev 5369)
+++ CalendarServer/trunk/twext/web2/dav/resource.py 2010-03-20 03:57:55 UTC (rev 5370)
@@ -2014,28 +2014,20 @@
# Check this one first
if self.hasQuotaRoot(request):
- yield True
- return
+ return succeed(True)
# Look at each parent
try:
url = request.urlForResource(self)
if url != "/":
- parent = waitForDeferred(
- request.locateResource(parentForURL(url))
- )
- yield parent
- parent = parent.getResult()
- d = waitForDeferred(parent.hasQuota(request))
- yield d
- yield d.getResult()
+ d = request.locateResource(parentForURL(url))
+ d.addCallback(lambda p: p.hasQuota(request))
+ return d
else:
- yield False
+ return succeed(False)
except NoURLForResourceError:
- yield False
-
- hasQuota = deferredGenerator(hasQuota)
-
+ return succeed(False)
+
def hasQuotaRoot(self, request):
"""
@return: a C{True} if this resource has quota root, C{False} otherwise.
@@ -2053,6 +2045,7 @@
else:
return None
+ @inlineCallbacks
def quotaRootParent(self, request):
"""
Return the next quota root above this resource.
@@ -2064,16 +2057,11 @@
url = request.urlForResource(self)
while (url != "/"):
url = parentForURL(url)
- parent = waitForDeferred(request.locateResource(url))
- yield parent
- parent = parent.getResult()
+ parent = (yield request.locateResource(url))
if parent.hasQuotaRoot(request):
- yield parent
- return
+ returnValue(parent)
- yield None
-
- quotaRootParent = deferredGenerator(quotaRootParent)
+ returnValue(None)
def setQuotaRoot(self, request, maxsize):
"""
@@ -2103,6 +2091,7 @@
"""
unimplemented(self)
+ @inlineCallbacks
def checkQuota(self, request, available):
"""
Check to see whether all quota roots have sufficient available
@@ -2122,18 +2111,13 @@
quota = quotaroot.quotaRoot(request)
if quota is not None:
if available > quota[0]:
- yield False
- return
+ returnValue(False)
# Check the next parent with a quota root
- quotaroot = waitForDeferred(quotaroot.quotaRootParent(request))
- yield quotaroot
- quotaroot = quotaroot.getResult()
+ quotaroot = (yield quotaroot.quotaRootParent(request))
- yield True
+ returnValue(True)
- checkQuota = deferredGenerator(checkQuota)
-
def quotaSizeAdjust(self, request, adjust):
"""
Update the quota used value on all quota root parents of this
@@ -2147,26 +2131,20 @@
# Check this resource first
if self.isCollection():
if self.hasQuotaRoot(request):
- d = waitForDeferred(self.updateQuotaUse(request, adjust))
- yield d
- d.getResult()
- yield None
- return
+ d = self.updateQuotaUse(request, adjust)
+ d.addCallback(lambda _: None) # FIXME: do we need this?
+ 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.quotaSizeAdjust(request, adjust))
- yield d
- d.getResult()
+ d = request.locateResource(parentForURL(url))
+ d.addCallback(lambda p: p.quotaSizeAdjust(request, adjust))
+ d.addCallback(lambda _: None) # FIXME: do we need this?
+ return d
- yield None
+ return succeed(None)
- quotaSizeAdjust = deferredGenerator(quotaSizeAdjust)
-
def currentQuotaUse(self, request):
"""
Get the cached quota use value, or if not present (or invalid)
@@ -2424,7 +2402,6 @@
"""
unimplemented(self)
- @deferredGenerator
def principalMatch(self, href):
"""
Check whether the supplied principal matches this principal or
@@ -2434,14 +2411,14 @@
"""
uri = str(href)
if self.principalURL() == uri:
- yield True
- return
+ return succeed(True)
else:
- d = waitForDeferred(self.expandedGroupMembers())
- yield d
- members = d.getResult()
- member_uris = [member.principalURL() for member in members]
- yield uri in member_uris
+ d = self.expandedGroupMembers()
+ d.addCallback(
+ lambda members:
+ uri in [member.principalURL() for member in members]
+ )
+ return d
class DAVPrincipalCollectionResource (DAVResource):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100319/ea529df4/attachment-0001.html>
More information about the calendarserver-changes
mailing list