[CalendarServer-changes] [15342] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Thu Nov 19 17:57:34 PST 2015


Revision: 15342
          http://trac.calendarserver.org//changeset/15342
Author:   cdaboo at apple.com
Date:     2015-11-19 17:57:34 -0800 (Thu, 19 Nov 2015)
Log Message:
-----------
v5/v8 podding fixes.

Modified Paths:
--------------
    CalendarServer/trunk/requirements-cs.txt
    CalendarServer/trunk/twistedcaldav/sharing.py
    CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/localservers.py
    CalendarServer/trunk/txdav/common/datastore/sql.py
    CalendarServer/trunk/txdav/who/delegates.py
    CalendarServer/trunk/txdav/who/groups.py

Modified: CalendarServer/trunk/requirements-cs.txt
===================================================================
--- CalendarServer/trunk/requirements-cs.txt	2015-11-20 01:55:39 UTC (rev 15341)
+++ CalendarServer/trunk/requirements-cs.txt	2015-11-20 01:57:34 UTC (rev 15342)
@@ -7,7 +7,7 @@
     zope.interface==4.1.3
 	    setuptools==18.5
 
-    --editable svn+http://svn.calendarserver.org/repository/calendarserver/twext/trunk@15335#egg=twextpy
+    --editable svn+http://svn.calendarserver.org/repository/calendarserver/twext/trunk@15341#egg=twextpy
         cffi==1.3.0
             pycparser==2.14
         #twisted

Modified: CalendarServer/trunk/twistedcaldav/sharing.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/sharing.py	2015-11-20 01:55:39 UTC (rev 15341)
+++ CalendarServer/trunk/twistedcaldav/sharing.py	2015-11-20 01:57:34 UTC (rev 15342)
@@ -554,11 +554,15 @@
             if sharee is None:
                 returnValue(False)
 
-        result = (yield self._newStoreObject.inviteUIDToShare(
-            sharee.principalUID(),
-            invitationBindModeFromXMLMap[type(ace)],
-            summary,
-        ))
+        try:
+            result = (yield self._newStoreObject.inviteUIDToShare(
+                sharee.principalUID(),
+                invitationBindModeFromXMLMap[type(ace)],
+                summary,
+            ))
+        except Exception as e:
+            self.log.error("Could not send sharing invite '{userid}': {ex}", userid=userid, ex=e)
+            result = None
 
         returnValue(result)
 
@@ -577,7 +581,11 @@
         else:
             returnValue(False)
 
-        result = (yield self._newStoreObject.uninviteUIDFromShare(uid))
+        try:
+            result = (yield self._newStoreObject.uninviteUIDFromShare(uid))
+        except Exception as e:
+            self.log.error("Could not send sharing uninvite '{userid}': {ex}", userid=userid, ex=e)
+            result = None
 
         returnValue(result)
 

Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/localservers.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/localservers.py	2015-11-20 01:55:39 UTC (rev 15341)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/ischedule/localservers.py	2015-11-20 01:57:34 UTC (rev 15342)
@@ -105,8 +105,8 @@
         return self._thisServer
 
 
-    def allServersExceptThis(self):
-        return filter(lambda x: x != self._thisServer, self._servers.values())
+    def allServersExceptThis(self, filter_v5=False):
+        return filter(lambda x: x != self._thisServer and not (filter_v5 and x.v5), self._servers.values())
 
 
     def installReverseProxies(self, maxClients):

Modified: CalendarServer/trunk/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/sql.py	2015-11-20 01:55:39 UTC (rev 15341)
+++ CalendarServer/trunk/txdav/common/datastore/sql.py	2015-11-20 01:57:34 UTC (rev 15342)
@@ -1951,9 +1951,11 @@
 
             if status is None:
                 createStatus = _HOME_STATUS_NORMAL if record.thisServer() else _HOME_STATUS_EXTERNAL
+                if record.server() is not None and record.server().v5:
+                    raise RecordNotAllowedError("Cannot create external home for user on v5 pod: {}".format(uid))
             elif status == _HOME_STATUS_MIGRATING:
                 if record.thisServer():
-                    raise RecordNotAllowedError("Cannot migrate a user data for a user already hosted on this server")
+                    raise RecordNotAllowedError("Cannot migrate user data for a user already hosted on this server")
                 createStatus = status
             elif status in (_HOME_STATUS_NORMAL, _HOME_STATUS_EXTERNAL,):
                 createStatus = status

Modified: CalendarServer/trunk/txdav/who/delegates.py
===================================================================
--- CalendarServer/trunk/txdav/who/delegates.py	2015-11-20 01:55:39 UTC (rev 15341)
+++ CalendarServer/trunk/txdav/who/delegates.py	2015-11-20 01:57:34 UTC (rev 15342)
@@ -568,7 +568,10 @@
         @param readWrite: if True, read and write access is granted; read-only
             access otherwise
         """
-        return txn.store().conduit.send_set_delegates(txn, delegator, delegates, readWrite)
+        if delegator.server().v5:
+            return succeed(None)
+        else:
+            return txn.store().conduit.send_set_delegates(txn, delegator, delegates, readWrite)
 
 
     def _podDelegates(self, txn, delegator, readWrite, expanded=False):
@@ -584,7 +587,10 @@
         """
 
         log.debug("_podDelegates for: {uid} and read-write = {rw} and expanded = {expanded}", uid=delegator.uid, rw=readWrite, expanded=expanded)
-        return txn.store().conduit.send_get_delegates(txn, delegator, readWrite, expanded)
+        if delegator.server().v5:
+            return succeed(set())
+        else:
+            return txn.store().conduit.send_get_delegates(txn, delegator, readWrite, expanded)
 
 
     @inlineCallbacks
@@ -602,10 +608,14 @@
         """
 
         log.debug("_podDelegators for: {uid} and read-write = {rw}", uid=delegate.uid, rw=readWrite)
-        results = yield DeferredList([
-            txn.store().conduit.send_get_delegators(txn, server, delegate, readWrite) for
-            server in txn.directoryService().serversDB().allServersExceptThis()
-        ], consumeErrors=True)
+        otherServers = txn.directoryService().serversDB().allServersExceptThis(filter_v5=True)
+        if len(otherServers) != 0:
+            results = yield DeferredList([
+                txn.store().conduit.send_get_delegators(txn, server, delegate, readWrite) for
+                server in txn.directoryService().serversDB().allServersExceptThis()
+            ], consumeErrors=True)
+        else:
+            results = []
         delegators = set()
         for result in results:
             if result and result[0]:

Modified: CalendarServer/trunk/txdav/who/groups.py
===================================================================
--- CalendarServer/trunk/txdav/who/groups.py	2015-11-20 01:55:39 UTC (rev 15341)
+++ CalendarServer/trunk/txdav/who/groups.py	2015-11-20 01:57:34 UTC (rev 15342)
@@ -513,10 +513,13 @@
         )
 
         # Also get group delegates from other pods
-        if txn.directoryService().serversDB() is not None and len(txn.directoryService().serversDB().allServersExceptThis()) != 0:
+        if (
+            txn.directoryService().serversDB() is not None and
+            len(txn.directoryService().serversDB().allServersExceptThis(filter_v5=True)) != 0
+        ):
             results = yield DeferredList([
                 txn.store().conduit.send_all_group_delegates(txn, server) for
-                server in txn.directoryService().serversDB().allServersExceptThis()
+                server in txn.directoryService().serversDB().allServersExceptThis(filter_v5=True)
             ], consumeErrors=True)
             for result in results:
                 if result and result[0]:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20151119/aacd3427/attachment.html>


More information about the calendarserver-changes mailing list