[CalendarServer-changes] [4837] CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Dec 7 15:16:52 PST 2009
Revision: 4837
http://trac.macosforge.org/projects/calendarserver/changeset/4837
Author: wsanchez at apple.com
Date: 2009-12-07 15:16:52 -0800 (Mon, 07 Dec 2009)
Log Message:
-----------
Unroll some inlineCallbacks
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
Modified: CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py 2009-12-07 23:05:30 UTC (rev 4836)
+++ CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py 2009-12-07 23:16:52 UTC (rev 4837)
@@ -475,8 +475,8 @@
remove_members = current_members.difference(update_members)
add_members = update_members.difference(current_members)
for member in itertools.chain(remove_members, add_members,):
- _ignore = yield self._memcacher.deleteMembership(member)
- _ignore = yield self._memcacher.deleteMember(principalUID)
+ yield self._memcacher.deleteMembership(member)
+ yield self._memcacher.deleteMember(principalUID)
def setGroupMembersInDatabase(self, principalUID, members):
"""
@@ -534,13 +534,13 @@
elif overdue is None:
# No timer was previously set
- self.log_debug("Delaying removal of missing proxy principal '%s'" %
- (principalUID,))
+ self.log_debug("Delaying removal of missing proxy principal '%s'"
+ % (principalUID,))
self._memcacher.setDeletionTimer(principalUID, delay=delay)
returnValue(None)
- self.log_warn("Removing missing proxy principal for '%s'" %
- (principalUID,))
+ self.log_warn("Removing missing proxy principal for '%s'"
+ % (principalUID,))
for suffix in ("calendar-proxy-read", "calendar-proxy-write",):
groupUID = "%s#%s" % (principalUID, suffix,)
@@ -562,7 +562,6 @@
self._db_commit()
self._memcacher.clearDeletionTimer(principalUID)
- @inlineCallbacks
def getMembers(self, principalUID):
"""
Return the list of group member UIDs for the specified principal.
@@ -571,15 +570,25 @@
"""
def _members():
- return set([row[0] for row in self._db_execute("select MEMBER from GROUPS where GROUPNAME = :1", principalUID)])
+ return set([
+ row[0] for row in
+ self._db_execute("select MEMBER from GROUPS where GROUPNAME = :1", principalUID)
+ ])
- # Pull from cache
- result = yield self._memcacher.getMembers(principalUID)
- if result is None:
- result = _members()
- yield self._memcacher.setMembers(principalUID, result)
- returnValue(result)
+ def gotCachedMembers(members):
+ if members is None:
+ # Cache miss; compute members and update cache
+ members = _members()
+ d = self._memcacher.setMembers(principalUID, members)
+ d.addCallback(lambda _: members)
+ return d
+ else:
+ return members
+ d = self._memcacher.getMembers(principalUID)
+ d.addCallback(gotCachedMembers)
+ return d
+
@inlineCallbacks
def getMemberships(self, principalUID):
"""
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20091207/98bbbab5/attachment.html>
More information about the calendarserver-changes
mailing list