[CalendarServer-changes] [8179] CalendarServer/trunk/twistedcaldav/directory
source_changes at macosforge.org
source_changes at macosforge.org
Mon Oct 10 13:24:12 PDT 2011
Revision: 8179
http://trac.macosforge.org/projects/calendarserver/changeset/8179
Author: sagen at apple.com
Date: 2011-10-10 13:24:11 -0700 (Mon, 10 Oct 2011)
Log Message:
-----------
Remove logic which auto-purges delegates missing from the directory.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py
Modified: CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py 2011-10-10 18:36:59 UTC (rev 8178)
+++ CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py 2011-10-10 20:24:11 UTC (rev 8179)
@@ -155,7 +155,7 @@
class CalendarUserProxyPrincipalResource (
CalDAVComplianceMixIn, PermissionsMixIn, DAVResourceWithChildrenMixin,
- DAVPrincipalResource):
+ DAVPrincipalResource, LoggingMixIn):
"""
Calendar user proxy principal resource.
"""
@@ -370,7 +370,6 @@
# Get member UIDs from database and map to principal resources
members = yield self._index().getMembers(self.uid)
found = []
- missing = []
for uid in members:
p = self.pcollection.principalForUID(uid)
if p:
@@ -379,15 +378,8 @@
# existing principals are removed
yield self._index().refreshPrincipal(uid)
else:
- missing.append(uid)
+ self.log_warn("Delegate is missing from directory: %s" % (uid,))
- # Clean-up ones that are missing
- for uid in missing:
- cacheTimeout = config.DirectoryService.params.get("cacheTimeout", 30) * 60 # in seconds
-
- yield self._index().removePrincipal(uid,
- delay=cacheTimeout*2)
-
returnValue(found)
def groupMembers(self):
Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py 2011-10-10 18:36:59 UTC (rev 8178)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py 2011-10-10 20:24:11 UTC (rev 8179)
@@ -410,151 +410,7 @@
("Chris Lecroy",),
)
- @inlineCallbacks
- def test_InvalidUserProxy(self):
-
- # Set up the in-memory (non-null) memcacher:
- config.ProcessType = "Single"
- calendaruserproxy.ProxyDBService._memcacher._memcacheProtocol = None
- principal = self._getPrincipalByShortName(
- DirectoryService.recordType_users, "wsanchez")
- db = principal._calendar_user_proxy_index()
-
- # Set the clock to the epoch:
- theTime = 0
- db._memcacher.theTime = theTime
-
-
- for doMembershipFirst in (True, False):
- for proxyType in ("calendar-proxy-read", "calendar-proxy-write"):
-
- principal = self._getPrincipalByShortName(DirectoryService.recordType_users, "wsanchez")
- proxyGroup = principal.getChild(proxyType)
-
- testPrincipal = self._getPrincipalByShortName(DirectoryService.recordType_users, "cdaboo")
-
- fakePrincipal = self._getPrincipalByShortName(DirectoryService.recordType_users, "dreid")
- fakeProxyGroup = fakePrincipal.getChild(proxyType)
-
- yield self._addProxy(
- principal,
- proxyType,
- testPrincipal,
- )
-
- members = yield proxyGroup._index().getMembers(proxyGroup.uid)
- self.assertEquals(len(members), 1)
-
- yield self._addProxy(
- fakePrincipal,
- proxyType,
- testPrincipal,
- )
- members = yield fakeProxyGroup._index().getMembers(fakeProxyGroup.uid)
- self.assertEquals(len(members), 1)
-
- uids = [p.principalUID() for p in (yield testPrincipal.groupMemberships())]
- self.assertTrue("5FF60DAD-0BDE-4508-8C77-15F0CA5C8DD1#%s" % (proxyType,) in uids)
-
- memberships = yield testPrincipal._calendar_user_proxy_index().getMemberships(testPrincipal.principalUID())
- self.assertEquals(len(memberships), 2)
-
- yield self._addProxy(
- principal,
- proxyType,
- fakePrincipal,
- )
- members = yield proxyGroup._index().getMembers(proxyGroup.uid)
- self.assertEquals(len(members), 2)
-
- # Remove the dreid user from the directory service
-
- delRec = self.directoryService.recordWithShortName(
- DirectoryService.recordType_users, "dreid")
- self.directoryService._removeFromIndex(delRec)
-
- cacheTimeout = config.DirectoryService.params.get("cacheTimeout", 30) * 60 * 2
-
- @inlineCallbacks
- def _membershipTest():
-
- uids = [p.principalUID() for p in (yield testPrincipal.groupMemberships())]
- self.assertTrue("5FF60DAD-0BDE-4508-8C77-15F0CA5C8DD1#%s" % (proxyType,) not in uids)
-
- memberships = yield testPrincipal._calendar_user_proxy_index().getMemberships(testPrincipal.principalUID())
- self.assertEquals(len(memberships), 1)
-
- @inlineCallbacks
- def _membersTest(theTime):
- yield self._groupMembersTest(
- DirectoryService.recordType_users, "wsanchez",
- proxyType,
- ("Cyrus Daboo",),
- )
-
- # Trigger the proxy DB clean up, which won't actually
- # remove anything because we haven't exceeded the timeout
- yield proxyGroup.groupMembers()
-
- # Advance 10 seconds
- theTime += 10
- db._memcacher.theTime = theTime
-
- # When we first examine the members, we have not exceeded
- # the clean-up timeout, so we'll still have 2:
- members = yield proxyGroup._index().getMembers(proxyGroup.uid)
- self.assertEquals(len(members), 2)
-
- # Restore removed user
- self.directoryService._forceReload()
-
- # Trigger the proxy DB clean up, which will actually
- # remove the deletion timer because the principal has been
- # restored
- yield proxyGroup.groupMembers()
-
- # Verify the deletion timer has been removed
- result = yield db._memcacher.checkDeletionTimer("5FF60DAD-0BDE-4508-8C77-15F0CA5C8DD1")
- self.assertEquals(result, None)
-
- # Remove the dreid user from the directory service
- delRec = self.directoryService.recordWithShortName(
- DirectoryService.recordType_users, "dreid")
- self.directoryService._removeFromIndex(delRec)
-
- # Trigger the proxy DB clean up, which won't actually
- # remove anything because we haven't exceeded the timeout
- yield proxyGroup.groupMembers()
-
- # Advance beyond the timeout
- theTime += cacheTimeout
- db._memcacher.theTime = theTime
-
- # Trigger the proxy DB clean up
- yield proxyGroup.groupMembers()
-
- # The missing principal has now been cleaned out of the
- # proxy DB
- members = yield proxyGroup._index().getMembers(proxyGroup.uid)
- self.assertEquals(len(members), 1)
- returnValue(theTime)
-
-
- if doMembershipFirst:
- yield _membershipTest()
- theTime = yield _membersTest(theTime)
- else:
- theTime = yield _membersTest(theTime)
- yield _membershipTest()
-
- # Restore removed user
- self.directoryService._forceReload()
-
- yield self._clearProxy(principal, proxyType)
- yield self._clearProxy(fakePrincipal, proxyType)
-
-
@inlineCallbacks
def test_NonAsciiProxy(self):
"""
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111010/090565f1/attachment-0001.html>
More information about the calendarserver-changes
mailing list