[CalendarServer-changes] [4073] CalendarServer/branches/users/sagen/resource-delegates-4066

source_changes at macosforge.org source_changes at macosforge.org
Thu Apr 23 17:40:57 PDT 2009


Revision: 4073
          http://trac.macosforge.org/projects/calendarserver/changeset/4073
Author:   sagen at apple.com
Date:     2009-04-23 17:40:57 -0700 (Thu, 23 Apr 2009)
Log Message:
-----------
Ignore old proxy db if a new one is already in place -- the new one was generated from XML.

Modified Paths:
--------------
    CalendarServer/branches/users/sagen/resource-delegates-4066/calendarserver/provision/test/test_root.py
    CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/test_upgrade.py
    CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/util.py
    CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/upgrade.py

Modified: CalendarServer/branches/users/sagen/resource-delegates-4066/calendarserver/provision/test/test_root.py
===================================================================
--- CalendarServer/branches/users/sagen/resource-delegates-4066/calendarserver/provision/test/test_root.py	2009-04-23 23:47:07 UTC (rev 4072)
+++ CalendarServer/branches/users/sagen/resource-delegates-4066/calendarserver/provision/test/test_root.py	2009-04-24 00:40:57 UTC (rev 4073)
@@ -49,7 +49,10 @@
         return 1
 
 class RootTests(TestCase):
+
     def setUp(self):
+        super(RootTests, self).setUp()
+
         self.docroot = self.mktemp()
         os.mkdir(self.docroot)
 

Modified: CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/test_upgrade.py
===================================================================
--- CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/test_upgrade.py	2009-04-23 23:47:07 UTC (rev 4072)
+++ CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/test_upgrade.py	2009-04-24 00:40:57 UTC (rev 4073)
@@ -16,6 +16,7 @@
 
 from twistedcaldav.config import config
 from twistedcaldav.directory.calendaruserproxy import CalendarUserProxyDatabase
+from twistedcaldav.resource import ResourceInfoDatabase
 from twistedcaldav.upgrade import UpgradeError, upgradeData, updateFreeBusySet
 from twistedcaldav.test.util import TestCase
 from calendarserver.tools.util import getDirectory
@@ -132,28 +133,7 @@
         self.assertFalse(os.path.exists(os.path.join(config.DocumentRoot, "principals",)))
         self.assertTrue(os.path.exists(os.path.join(config.DataRoot, CalendarUserProxyDatabase.dbFilename)))
 
-    def test_partialUpgrade(self):
-        """
-        Test the behavior of a partial upgrade (one where /principals exists but the proxy db does not) from old server to new.
-        """
 
-        self.setUpInitialStates()
-
-        config.DocumentRoot = self.olddocrootnodb
-        config.DataRoot = self.newdataroot
-        
-        # Check pre-conditions
-        self.assertTrue(os.path.exists(os.path.join(config.DocumentRoot, "principals")))
-        self.assertTrue(os.path.isdir(os.path.join(config.DocumentRoot, "principals")))
-        self.assertFalse(os.path.exists(os.path.join(config.DocumentRoot, "principals", CalendarUserProxyDatabase.dbOldFilename)))
-        self.assertFalse(os.path.exists(os.path.join(config.DataRoot, CalendarUserProxyDatabase.dbFilename)))
-
-        upgradeData(config)
-        
-        # Check post-conditions
-        self.assertFalse(os.path.exists(os.path.join(config.DocumentRoot, "principals",)))
-        self.assertFalse(os.path.exists(os.path.join(config.DataRoot, CalendarUserProxyDatabase.dbFilename)))
-
     def test_noUpgrade(self):
         """
         Test the behavior of running on a new server (i.e. no upgrade needed).
@@ -174,31 +154,7 @@
         self.assertFalse(os.path.exists(os.path.join(config.DocumentRoot, "principals",)))
         self.assertTrue(os.path.exists(os.path.join(config.DataRoot, CalendarUserProxyDatabase.dbFilename)))
 
-    def test_failedUpgrade(self):
-        """
-        Test the behavior of failed upgrade from old server to new where proxy DB exists in two locations.
-        """
 
-        self.setUpInitialStates()
-
-        config.DocumentRoot = self.olddocroot
-        config.DataRoot = self.existingdataroot
-        
-        # Check pre-conditions
-        self.assertTrue(os.path.exists(os.path.join(config.DocumentRoot, "principals")))
-        self.assertTrue(os.path.isdir(os.path.join(config.DocumentRoot, "principals")))
-        self.assertTrue(os.path.exists(os.path.join(config.DocumentRoot, "principals", CalendarUserProxyDatabase.dbOldFilename)))
-        self.assertTrue(os.path.exists(os.path.join(config.DataRoot, CalendarUserProxyDatabase.dbFilename)))
-
-        self.assertRaises(UpgradeError, upgradeData, config)
-        
-        # Check post-conditions
-        self.assertTrue(os.path.exists(os.path.join(config.DocumentRoot, "principals")))
-        self.assertTrue(os.path.isdir(os.path.join(config.DocumentRoot, "principals")))
-        self.assertTrue(os.path.exists(os.path.join(config.DocumentRoot, "principals", CalendarUserProxyDatabase.dbOldFilename)))
-        self.assertTrue(os.path.exists(os.path.join(config.DataRoot, CalendarUserProxyDatabase.dbFilename)))
-        
-
     def test_freeBusyUpgrade(self):
         """
         Test the updating of calendar-free-busy-set xattrs on inboxes
@@ -379,7 +335,11 @@
             },
             CalendarUserProxyDatabase.dbFilename :
             {
-                "@contents" : "",
+                "@contents" : None,
+            },
+            ResourceInfoDatabase.dbFilename :
+            {
+                "@contents" : None,
             }
         }
 
@@ -479,7 +439,11 @@
             },
             CalendarUserProxyDatabase.dbFilename :
             {
-                "@contents" : "",
+                "@contents" : None,
+            },
+            ResourceInfoDatabase.dbFilename :
+            {
+                "@contents" : None,
             }
         }
 
@@ -595,7 +559,11 @@
             },
             CalendarUserProxyDatabase.dbFilename :
             {
-                "@contents" : "",
+                "@contents" : None,
+            },
+            ResourceInfoDatabase.dbFilename :
+            {
+                "@contents" : None,
             }
         }
 
@@ -712,7 +680,11 @@
             },
             CalendarUserProxyDatabase.dbFilename :
             {
-                "@contents" : "",
+                "@contents" : None,
+            },
+            ResourceInfoDatabase.dbFilename :
+            {
+                "@contents" : None,
             }
         }
 
@@ -799,7 +771,11 @@
             },
             CalendarUserProxyDatabase.dbFilename :
             {
-                "@contents" : "",
+                "@contents" : None,
+            },
+            ResourceInfoDatabase.dbFilename :
+            {
+                "@contents" : None,
             }
         }
 

Modified: CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/util.py
===================================================================
--- CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/util.py	2009-04-23 23:47:07 UTC (rev 4072)
+++ CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/test/util.py	2009-04-24 00:40:57 UTC (rev 4073)
@@ -94,12 +94,16 @@
 
                 if childStructure.has_key("@contents"):
                     # This is a file
-                    with open(childPath) as child:
-                        contents = child.read()
-                        if contents != childStructure["@contents"]:
-                            print "Contents mismatch:", childPath
-                            print "Expected:\n%s\n\nActual:\n%s\n" % (childStructure["@contents"], contents)
-                            return False
+                    if childStructure["@contents"] is None:
+                        # We don't care about the contents
+                        pass
+                    else:
+                        with open(childPath) as child:
+                            contents = child.read()
+                            if contents != childStructure["@contents"]:
+                                print "Contents mismatch:", childPath
+                                print "Expected:\n%s\n\nActual:\n%s\n" % (childStructure["@contents"], contents)
+                                return False
 
                 else:
                     # This is a directory
@@ -126,6 +130,7 @@
 
             if actual:
                 # There are unexpected children
+                print "Unexpected:", actual
                 return False
 
             return True

Modified: CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/upgrade.py
===================================================================
--- CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/upgrade.py	2009-04-23 23:47:07 UTC (rev 4072)
+++ CalendarServer/branches/users/sagen/resource-delegates-4066/twistedcaldav/upgrade.py	2009-04-24 00:40:57 UTC (rev 4073)
@@ -198,24 +198,20 @@
 
     def doProxyDatabaseMoveUpgrade(config, uid=-1, gid=-1):
 
+        # See if the new one is already present
+        newDbPath = os.path.join(config.DataRoot,
+            CalendarUserProxyDatabase.dbFilename)
+        if os.path.exists(newDbPath):
+            # Nothing to be done, it's already in the new location
+            return
+
         # See if the old DB is present
         oldDbPath = os.path.join(config.DocumentRoot, "principals",
             CalendarUserProxyDatabase.dbOldFilename)
         if not os.path.exists(oldDbPath):
-            # Nothing to be done
+            # Nothing to be moved
             return
 
-        # See if the new one is already present
-        newDbPath = os.path.join(config.DataRoot,
-            CalendarUserProxyDatabase.dbFilename)
-        if os.path.exists(newDbPath):
-            # We have a problem - both the old and new ones exist. Stop the server
-            # from starting up and alert the admin to this condition
-            raise UpgradeError(
-                "Upgrade Error: unable to move the old calendar user proxy database at '%s' to '%s' because the new database already exists."
-                % (oldDbPath, newDbPath,)
-            )
-
         # Now move the old one to the new location
         try:
             if not os.path.exists(config.DataRoot):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090423/f94a7afb/attachment-0001.html>


More information about the calendarserver-changes mailing list