[CalendarServer-changes] [9723] CalendarServer/trunk/twistedcaldav/directory
source_changes at macosforge.org
source_changes at macosforge.org
Fri Aug 17 10:09:13 PDT 2012
Revision: 9723
http://trac.macosforge.org/projects/calendarserver/changeset/9723
Author: sagen at apple.com
Date: 2012-08-17 10:09:13 -0700 (Fri, 17 Aug 2012)
Log Message:
-----------
Only call the groupsChanged( ) method on principals when we're not starting from scratch.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/directory.py
CalendarServer/trunk/twistedcaldav/directory/test/test_directory.py
Modified: CalendarServer/trunk/twistedcaldav/directory/directory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/directory.py 2012-08-17 03:40:21 UTC (rev 9722)
+++ CalendarServer/trunk/twistedcaldav/directory/directory.py 2012-08-17 17:09:13 UTC (rev 9723)
@@ -727,10 +727,12 @@
self.log_info("Group membership snapshot file does not yet exist")
fast = False
previousMembers = {}
+ callGroupsChanged = False
else:
self.log_info("Group membership snapshot file exists: %s" %
(snapshotFile.path,))
previousMembers = pickle.loads(snapshotFile.getContent())
+ callGroupsChanged = True
if useLock:
self.log_info("Attempting to acquire group membership cache lock")
@@ -843,7 +845,7 @@
changedMembers.add(member)
# For principals whose group membership has changed, call groupsChanged()
- if not fast and hasattr(self.directory, "principalCollection"):
+ if callGroupsChanged and not fast and hasattr(self.directory, "principalCollection"):
for member in changedMembers:
record = yield self.directory.recordWithCachedGroupsAlias(
self.directory.recordType_users, member)
@@ -863,7 +865,7 @@
self.log_info("Group memberships cache updated")
- returnValue((fast, len(members)))
+ returnValue((fast, len(members), len(changedMembers)))
Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_directory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_directory.py 2012-08-17 03:40:21 UTC (rev 9722)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_directory.py 2012-08-17 17:09:13 UTC (rev 9723)
@@ -281,7 +281,7 @@
# Allow an update by unlocking the cache
yield cache.releaseLock()
- self.assertEquals((False, 8), (yield updater.updateCache()))
+ self.assertEquals((False, 8, 8), (yield updater.updateCache()))
# Verify cache is populated:
self.assertTrue((yield cache.isPopulated()))
@@ -370,7 +370,7 @@
# that wsanchez is only a proxy for gemini (since that assignment does not involve groups)
self.directoryService.xmlFile = dirTest.child("accounts-modified.xml")
self.directoryService._alwaysStat = True
- self.assertEquals((False, 7), (yield updater.updateCache()))
+ self.assertEquals((False, 7, 1), (yield updater.updateCache()))
delegate = self._getPrincipalByShortName(DirectoryService.recordType_users, "wsanchez")
proxyFor = (yield delegate.proxyFor(True))
self.assertEquals(
@@ -510,9 +510,10 @@
yield cache.acquireLock()
self.assertFalse((yield cache.isPopulated()))
- fast, numMembers = (yield updater.updateCache(fast=True))
+ fast, numMembers, numChanged = (yield updater.updateCache(fast=True))
self.assertEquals(fast, False)
self.assertEquals(numMembers, 8)
+ self.assertEquals(numChanged, 8)
self.assertTrue(snapshotFile.exists())
self.assertTrue((yield cache.isPopulated()))
@@ -528,9 +529,10 @@
self.assertEquals(numMembers, 0)
# Try an update which faults in from the directory (fast=False)
- fast, numMembers = (yield updater.updateCache(fast=False))
+ fast, numMembers, numChanged = (yield updater.updateCache(fast=False))
self.assertEquals(fast, False)
self.assertEquals(numMembers, 8)
+ self.assertEquals(numChanged, 0)
# Verify the snapshot contains the pickled dictionary we expect
members = pickle.loads(snapshotFile.getContent())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120817/106913f5/attachment-0001.html>
More information about the calendarserver-changes
mailing list