[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