[CalendarServer-changes] [9981] CalendarServer/branches/users/gaya/sharedgroups/txdav

source_changes at macosforge.org source_changes at macosforge.org
Wed Oct 24 14:29:59 PDT 2012


Revision: 9981
          http://trac.calendarserver.org//changeset/9981
Author:   gaya at apple.com
Date:     2012-10-24 14:29:59 -0700 (Wed, 24 Oct 2012)
Log Message:
-----------
Delete member tables when address book is deleted

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
    CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/test/test_sql.py
    CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
    CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_schema/current.sql

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py	2012-10-24 20:37:53 UTC (rev 9980)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py	2012-10-24 21:29:59 UTC (rev 9981)
@@ -251,7 +251,8 @@
         for groupID in groupIDs:
             yield Insert(
                 {aboForeignMembers.GROUP_ID: groupID,
-                  aboForeignMembers.MEMBER_ADDRESS: "urn:uuid:" + self._uid, }
+                 aboForeignMembers.ADDRESSBOOK_ID: self._addressbook._resourceID,
+                 aboForeignMembers.MEMBER_ADDRESS: "urn:uuid:" + self._uid, }
             ).on(self._txn)
 
         if self._kind == _ABO_KIND_GROUP:
@@ -383,6 +384,7 @@
             for groupID in groupIDs:
                 yield Insert(
                     {aboMembers.GROUP_ID: groupID,
+                     aboMembers.ADDRESSBOOK_ID: self._addressbook._resourceID,
                      aboMembers.MEMBER_ID: self._resourceID, }
                 ).on(self._txn)
 
@@ -429,6 +431,7 @@
             for memberIDToAdd in memberIDsToAdd:
                 yield Insert(
                     {aboMembers.GROUP_ID: self._resourceID,
+                     aboMembers.ADDRESSBOOK_ID: self._addressbook._resourceID,
                      aboMembers.MEMBER_ID: memberIDToAdd, }
                 ).on(self._txn)
 
@@ -449,6 +452,7 @@
             for foreignMemberAddrToAdd in foreignMemberAddrsToAdd:
                 yield Insert(
                     {aboForeignMembers.GROUP_ID: self._resourceID,
+                     aboForeignMembers.ADDRESSBOOK_ID: self._addressbook._resourceID,
                      aboForeignMembers.MEMBER_ADDRESS: foreignMemberAddrToAdd, }
                 ).on(self._txn)
 

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/test/test_sql.py	2012-10-24 20:37:53 UTC (rev 9980)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/test/test_sql.py	2012-10-24 21:29:59 UTC (rev 9981)
@@ -343,6 +343,8 @@
         person = yield abObject.component()
         self.assertEqual(person.resourceUID(), "uid1")
 
+        yield home.removeAddressBookWithName("addressbook")
+
         yield txn.commit()
 
 
@@ -433,6 +435,7 @@
         self.assertEqual(badgroup.resourceKind(), "badgroup")
         self.assertEqual(abObject.kind(), _ABO_KIND_PERSON)
 
+        yield home.removeAddressBookWithName("addressbook")
         yield txn.commit()
 
 
@@ -519,6 +522,7 @@
         foreignMemberRows = yield Select([aboForeignMembers.GROUP_ID, aboForeignMembers.MEMBER_ADDRESS], From=aboForeignMembers).on(txn)
         self.assertEqual(foreignMemberRows, [[groupObject._resourceID, "urn:uuid:uid3"]])
 
+        yield home.removeAddressBookWithName("addressbook")
         yield txn.commit()
 
 

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py	2012-10-24 20:37:53 UTC (rev 9980)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py	2012-10-24 21:29:59 UTC (rev 9981)
@@ -1285,10 +1285,8 @@
         if child is None:
             raise NoSuchHomeChildError()
 
-        try:
-            yield child.remove()
-        finally:
-            self._children.pop(name, None)
+        yield child.remove()
+        self._children.pop(name, None)
 
 
     @classproperty

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-10-24 20:37:53 UTC (rev 9980)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql_schema/current.sql	2012-10-24 21:29:59 UTC (rev 9981)
@@ -362,7 +362,7 @@
 
   create table ADDRESSBOOK_OBJECT (
   RESOURCE_ID             integer      primary key default nextval('RESOURCE_ID_SEQ'),    -- implicit index
-  ADDRESSBOOK_RESOURCE_ID integer      not null references ADDRESSBOOK on delete cascade, -- #### TODO: change to reference ADDRESSBOOK_OBJECT ####
+  ADDRESSBOOK_RESOURCE_ID integer      not null references ADDRESSBOOK on delete cascade, -- #### TODO: change to references ADDRESSBOOK_OBJECT ####
   RESOURCE_NAME           varchar(255) not null,
   VCARD_TEXT              text         not null,
   VCARD_UID               varchar(255) not null,
@@ -394,8 +394,9 @@
 ---------------------------------
 
 create table ABO_MEMBERS (
-    GROUP_ID              integer      references ADDRESSBOOK_OBJECT,			-- AddressBook Object's (kind=='group') RESOURCE_ID
-    MEMBER_ID             integer      not null references ADDRESSBOOK_OBJECT,	-- member AddressBook Object's RESOURCE_ID
+    GROUP_ID              integer      references ADDRESSBOOK_OBJECT,						-- AddressBook Object's (kind=='group') RESOURCE_ID
+ 	ADDRESSBOOK_ID		  integer      not null references ADDRESSBOOK on delete cascade, 	-- #### TODO: change to references ADDRESSBOOK_OBJECT ####
+    MEMBER_ID             integer      not null references ADDRESSBOOK_OBJECT,				-- member AddressBook Object's RESOURCE_ID
     primary key(GROUP_ID, MEMBER_ID) -- implicit index
 );
 
@@ -404,8 +405,9 @@
 ------------------------------------------
 
 create table ABO_FOREIGN_MEMBERS (
-    GROUP_ID              integer      references ADDRESSBOOK_OBJECT,	-- AddressBook Object's (kind=='group') RESOURCE_ID
-    MEMBER_ADDRESS  	  varchar(255) not null, 						-- member AddressBook Object's address
+    GROUP_ID              integer      references ADDRESSBOOK_OBJECT,						-- AddressBook Object's (kind=='group') RESOURCE_ID
+ 	ADDRESSBOOK_ID		  integer      not null references ADDRESSBOOK on delete cascade, 	-- #### TODO: change to references ADDRESSBOOK_OBJECT ####
+    MEMBER_ADDRESS  	  varchar(255) not null, 											-- member AddressBook Object's address
     primary key(GROUP_ID, MEMBER_ADDRESS) -- implicit index
 );
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20121024/e87029fe/attachment-0001.html>


More information about the calendarserver-changes mailing list