[CalendarServer-changes] [9276] CalendarServer/branches/users/glyph/uuid-normalize/twistedcaldav/ directory/calendaruserproxy.py

source_changes at macosforge.org source_changes at macosforge.org
Thu May 24 13:33:41 PDT 2012


Revision: 9276
          http://trac.macosforge.org/projects/calendarserver/changeset/9276
Author:   glyph at apple.com
Date:     2012-05-24 13:33:41 -0700 (Thu, 24 May 2012)
Log Message:
-----------
schema upgrader for proxy database to normalize possibly-UUID portions of the data

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/uuid-normalize/twistedcaldav/directory/calendaruserproxy.py

Modified: CalendarServer/branches/users/glyph/uuid-normalize/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/branches/users/glyph/uuid-normalize/twistedcaldav/directory/calendaruserproxy.py	2012-05-24 20:33:38 UTC (rev 9275)
+++ CalendarServer/branches/users/glyph/uuid-normalize/twistedcaldav/directory/calendaruserproxy.py	2012-05-24 20:33:41 UTC (rev 9276)
@@ -47,6 +47,7 @@
 from twistedcaldav.directory.principal import formatLinks
 from twistedcaldav.directory.principal import formatPrincipals
 
+from twistedcaldav.directory.util import normalizeUUID
 from twistedcaldav.config import config, fullServerPath
 from twistedcaldav.database import AbstractADBAPIDatabase, ADBAPISqliteMixin,\
     ADBAPIPostgreSQLMixin
@@ -415,11 +416,11 @@
 
     """
 
-    schema_version = "4"
+    schema_version = "5"
     schema_type    = "CALENDARUSERPROXY"
-    
+
     class ProxyDBMemcacher(Memcacher):
-        
+
         def __init__(self, namespace):
             super(ProxyDB.ProxyDBMemcacher, self).__init__(namespace, key_normalization=config.Memcached.ProxyDBKeyNormalization)
 
@@ -774,6 +775,7 @@
             ifnotexists=True,
         )
 
+
     @inlineCallbacks
     def _db_upgrade_data_tables(self, old_version):
         """
@@ -797,6 +799,18 @@
                 ifnotexists=True,
             )
 
+        if int(old_version) < 5:
+            for groupname, member in (
+                    (yield self.query("select GROUPNAME, MEMBER from GROUPS"))
+                ):
+                groupPrincipalUID, groupMode = groupname.split("#")
+                yield self._db_execute("""
+                    update GROUPS set (GROUPNAME = :1, MEMBER = :2)
+                    where GROUPNAME = :1 and MEMBER = :2
+                """, "#".join([normalizeUUID(groupPrincipalUID), groupMode]),
+                              normalizeUUID(member))
+
+
     def _db_empty_data_tables(self):
         """
         Empty the underlying database tables.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120524/63afb65f/attachment-0001.html>


More information about the calendarserver-changes mailing list