[CalendarServer-changes] [10004] CalendarServer/branches/users/gaya/sharedgroups

source_changes at macosforge.org source_changes at macosforge.org
Mon Nov 5 13:28:10 PST 2012


Revision: 10004
          http://trac.calendarserver.org//changeset/10004
Author:   gaya at apple.com
Date:     2012-11-05 13:28:10 -0800 (Mon, 05 Nov 2012)
Log Message:
-----------
fix shared group address book metainfo

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/sharedgroups/calendarserver/tools/dbinspect.py
    CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
    CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
    CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_schema/current.sql
    CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_tables.py
    CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/test/util.py

Modified: CalendarServer/branches/users/gaya/sharedgroups/calendarserver/tools/dbinspect.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/calendarserver/tools/dbinspect.py	2012-11-05 18:38:16 UTC (rev 10003)
+++ CalendarServer/branches/users/gaya/sharedgroups/calendarserver/tools/dbinspect.py	2012-11-05 21:28:10 UTC (rev 10004)
@@ -778,10 +778,11 @@
             schema.ATTACHMENT,
 
             schema.ADDRESSBOOK_OBJECT_REVISIONS,
-
-            schema.ADDRESSBOOK,
+            
+            schema.ABO_MEMBERS
+            schema.ADDRESSBOOK_OBJECT,
             #schema.ADDRESSBOOK_BIND, - cascades
-            #schema.ADDRESSBOOK_OBJECT, - cascades
+            #schema.ABO_FOREIGN_MEMBERS, - cascades
 
             schema.ADDRESSBOOK_HOME,
             #schema.ADDRESSBOOK_HOME_METADATA, - cascades

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py	2012-11-05 18:38:16 UTC (rev 10003)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py	2012-11-05 21:28:10 UTC (rev 10004)
@@ -145,7 +145,6 @@
         DAL statement to create an addressbook object with all default values.
         """
         abo = schema.ADDRESSBOOK_OBJECT
-        assert schema.ADDRESSBOOK_OBJECT == schema.ADDRESSBOOK
         return Insert(
             {abo.RESOURCE_ID: schema.RESOURCE_ID_SEQ,
              abo.ADDRESSBOOK_RESOURCE_ID: Parameter("addressbookResourceID"),
@@ -169,8 +168,8 @@
     # structured tables.  (new, preferred)
     _homeSchema = schema.ADDRESSBOOK_HOME
     _bindSchema = schema.ADDRESSBOOK_BIND
-    _homeChildSchema = schema.ADDRESSBOOK
-    _homeChildMetaDataSchema = schema.ADDRESSBOOK_METADATA
+    _homeChildSchema = schema.ADDRESSBOOK_OBJECT
+    _homeChildMetaDataSchema = schema.ADDRESSBOOK_OBJECT
     _revisionsSchema = schema.ADDRESSBOOK_OBJECT_REVISIONS
     _objectSchema = schema.ADDRESSBOOK_OBJECT
 
@@ -233,16 +232,6 @@
         return super(AddressBook, self).unshare(EADDRESSBOOKTYPE)
 
 
-    @classproperty
-    def _insertHomeChildMetaData(cls): #@NoSelf
-        """
-        DAL statement to create a home child with all default values.
-        """
-        child = cls._homeChildMetaDataSchema
-        return Insert({child.RESOURCE_ID: Parameter("resourceID")},
-                      Return=(child.CREATED, child.MODIFIED))
-
-
     @classmethod
     @inlineCallbacks
     def _createChild(cls, home, name):  #@NoSelf
@@ -278,13 +267,6 @@
                 kind=_ABO_KIND_GROUP,
                 ))[0]
 
-        # TODO: remove metadata table
-        created, modified = (
-            yield cls._insertHomeChildMetaData.on(
-                home._txn,
-                resourceID=resourceID,
-                ))[0]
-
         returnValue((resourceID, created, modified))
 
 
@@ -394,13 +376,15 @@
             Return=aboMembers.GROUP_ID
         ).on(self._txn)
 
+        print("remove:self=%s, deleted from groupIDs=%s" % (self, groupIDs,))
+
         # add to foreign member table row by UID
         assert self._ownerAddressBookResourceID
         for groupID in groupIDs:
             if groupID[0] != self._ownerAddressBookResourceID:
                 # remove on address book, add aboForeignMembers row to local groups only
                 yield Insert(
-                        {aboForeignMembers.GROUP_ID: groupID,
+                        {aboForeignMembers.GROUP_ID: groupID[0],
                          aboForeignMembers.ADDRESSBOOK_ID: self._ownerAddressBookResourceID,
                          aboForeignMembers.MEMBER_ADDRESS: "urn:uuid:" + self._uid, }
                     ).on(self._txn)

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py	2012-11-05 18:38:16 UTC (rev 10003)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py	2012-11-05 21:28:10 UTC (rev 10004)
@@ -2501,16 +2501,25 @@
                    bind.BIND_STATUS,
                    bind.MESSAGE]
         columns.extend(cls.metadataColumns())
-        return Select(columns,
-                     From=child.join(
-                         bind, child.RESOURCE_ID == bind.RESOURCE_ID,
-                         'left outer').join(
-                         childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
-                         'left outer'),
-                     Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
-                           ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
 
+        if child == childMetaData:
+            return Select(columns,
+                         From=child.join(
+                             bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+                             'left outer'),
+                         Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
+                               ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
+        else:
+            return Select(columns,
+                         From=child.join(
+                             bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+                             'left outer').join(
+                             childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
+                             'left outer'),
+                         Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
+                               ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
 
+
     def shareMode(self):
         """
         @see: L{ICalendar.shareMode}

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_schema/current.sql
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_schema/current.sql	2012-11-05 18:38:16 UTC (rev 10003)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_schema/current.sql	2012-11-05 21:28:10 UTC (rev 10004)
@@ -390,18 +390,6 @@
     primary key(GROUP_ID, MEMBER_ADDRESS) -- implicit index
 );
 
--- #### TODO: DELETE, USE CREATED and MODIFIED in ADDRESSS_BOOK_OBJECT instead ####
---------------------------
--- AddressBook Metadata --
---------------------------
-
-create table ADDRESSBOOK_METADATA (
-  RESOURCE_ID integer   primary key references ADDRESSBOOK_OBJECT on delete cascade, -- implicit index
-  CREATED     timestamp default timezone('UTC', CURRENT_TIMESTAMP),
-  MODIFIED    timestamp default timezone('UTC', CURRENT_TIMESTAMP)
-);
-
-
 ----------------------
 -- AddressBook Bind --
 ----------------------

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_tables.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_tables.py	2012-11-05 18:38:16 UTC (rev 10003)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_tables.py	2012-11-05 21:28:10 UTC (rev 10004)
@@ -91,8 +91,6 @@
     schema.ADDRESSBOOK_OBJECT.VCARD_UID
 schema.ADDRESSBOOK_OBJECT.PARENT_RESOURCE_ID = \
     schema.ADDRESSBOOK_OBJECT.ADDRESSBOOK_RESOURCE_ID
-schema.ADDRESSBOOK = \
-    schema.ADDRESSBOOK_OBJECT
 
 
 
@@ -195,7 +193,7 @@
 ADDRESSBOOK_HOME_METADATA_TABLE = _S(schema.ADDRESSBOOK_HOME_METADATA)
 NOTIFICATION_HOME_TABLE = _S(schema.NOTIFICATION_HOME)
 CALENDAR_TABLE = _S(schema.CALENDAR)
-ADDRESSBOOK_TABLE = _S(schema.ADDRESSBOOK)
+ADDRESSBOOK_TABLE = _S(schema.ADDRESSBOOK_OBJECT)
 CALENDAR_BIND_TABLE = _S(schema.CALENDAR_BIND)
 ADDRESSBOOK_BIND_TABLE = _S(schema.ADDRESSBOOK_BIND)
 CALENDAR_OBJECT_REVISIONS_TABLE = _S(schema.CALENDAR_OBJECT_REVISIONS)

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/test/util.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/test/util.py	2012-11-05 18:38:16 UTC (rev 10003)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/test/util.py	2012-11-05 21:28:10 UTC (rev 10004)
@@ -211,6 +211,7 @@
                   'NOTIFICATION_OBJECT_REVISIONS',
                   'ADDRESSBOOK_OBJECT_REVISIONS',
                   'CALENDAR_OBJECT_REVISIONS',
+                  'ABO_MEMBERS',
                   'ADDRESSBOOK_OBJECT',
                   'CALENDAR_OBJECT',
                   'CALENDAR_BIND',
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20121105/c0c9974e/attachment-0001.html>


More information about the calendarserver-changes mailing list