[CalendarServer-changes] [9463] CalendarServer/trunk/contrib/migration
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jul 19 13:47:37 PDT 2012
Revision: 9463
http://trac.macosforge.org/projects/calendarserver/changeset/9463
Author: sagen at apple.com
Date: 2012-07-19 13:47:36 -0700 (Thu, 19 Jul 2012)
Log Message:
-----------
Migration extra script uses .bak extension with number preceding it, rather than trailing it (e.g. .bak.1)
Modified Paths:
--------------
CalendarServer/trunk/contrib/migration/calendarmigrator.py
CalendarServer/trunk/contrib/migration/test/test_migrator.py
Modified: CalendarServer/trunk/contrib/migration/calendarmigrator.py
===================================================================
--- CalendarServer/trunk/contrib/migration/calendarmigrator.py 2012-07-18 21:24:50 UTC (rev 9462)
+++ CalendarServer/trunk/contrib/migration/calendarmigrator.py 2012-07-19 20:47:36 UTC (rev 9463)
@@ -596,7 +596,7 @@
newDocumentRoot = os.path.join(newDataRoot, newDocumentRootValue)
# Move aside whatever is there
if diskAccessor.exists(newDataRoot):
- renameTo = nextAvailable(newDataRoot + ".bak", diskAccessor=diskAccessor)
+ renameTo = nextAvailable(newDataRoot, "bak", diskAccessor=diskAccessor)
diskAccessor.rename(newDataRoot, renameTo)
if diskAccessor.exists(absolutePathWithRoot(sourceRoot, oldCalDataRootValueProcessed)):
@@ -769,26 +769,30 @@
return os.path.join(root, path)
-def nextAvailable(path, diskAccessor=None):
+def nextAvailable(path, ext, diskAccessor=None):
"""
- If path doesn't exist, return path. Otherwise return the first path name
- following the path.NNN pattern that doesn't exist, where NNN starts at 1
+ If path.ext doesn't exist, return path.ext. Otherwise return the first path name
+ following the path.N.ext pattern that doesn't exist, where N starts at 1
and increments until a non-existent path name is determined.
@param path: path to examine
@type path: C{str}
- @returns: non-existent path name C{str}
+ @param ext: filename extension to append (don't include ".")
+ @type ext: C{str}
+ @returns: non-existent path name
+ @rtype: C{str}
"""
if diskAccessor is None:
diskAccessor = DiskAccessor()
- if not diskAccessor.exists(path):
- return path
+ newPath = "%s.%s" % (path, ext)
+ if not diskAccessor.exists(newPath):
+ return newPath
i = 1
while(True):
- newPath = "%s.%d" % (path, i)
+ newPath = "%s.%d.%s" % (path, i, ext)
if not diskAccessor.exists(newPath):
return newPath
i += 1
Modified: CalendarServer/trunk/contrib/migration/test/test_migrator.py
===================================================================
--- CalendarServer/trunk/contrib/migration/test/test_migrator.py 2012-07-18 21:24:50 UTC (rev 9462)
+++ CalendarServer/trunk/contrib/migration/test/test_migrator.py 2012-07-19 20:47:36 UTC (rev 9463)
@@ -1040,8 +1040,8 @@
"/Volumes/External/CalendarServer/Documents/calendars/" : True,
"/Volumes/External/CalendarServer/Calendar and Contacts Data/" : True,
"/Volumes/External/CalendarServer/Calendar and Contacts Data.bak/" : True,
- "/Volumes/External/CalendarServer/Calendar and Contacts Data.bak.1/" : True,
- "/Volumes/External/CalendarServer/Calendar and Contacts Data.bak.2/" : True,
+ "/Volumes/External/CalendarServer/Calendar and Contacts Data.1.bak/" : True,
+ "/Volumes/External/CalendarServer/Calendar and Contacts Data.2.bak/" : True,
"/Library/Server/Previous/Library/CalendarServer/Data/" : True,
"/Volumes/External/AddressBookServer/Documents/addressbooks/" : True,
"/Library/Server/Previous/Library/AddressBookServer/Data/" : True,
@@ -1064,7 +1064,7 @@
[ # expected DiskAccessor history
('rename',
'/Volumes/External/CalendarServer/Calendar and Contacts Data',
- '/Volumes/External/CalendarServer/Calendar and Contacts Data.bak.3'),
+ '/Volumes/External/CalendarServer/Calendar and Contacts Data.3.bak'),
('ditto', '/Library/Server/Previous/Library/CalendarServer/Data', '/Volumes/External/CalendarServer/Calendar and Contacts Data'),
('rename', '/Volumes/External/CalendarServer/Documents', '/Volumes/External/CalendarServer/Calendar and Contacts Data/Documents'),
('chown-recursive', '/Volumes/External/CalendarServer/Calendar and Contacts Data', FakeUser.pw_uid, FakeGroup.gr_gid),
@@ -1511,12 +1511,12 @@
def test_nextAvailable(self):
data = [
( { }, "a.bak" ),
- ( { "a.bak": True }, "a.bak.1" ),
- ( { "a.bak": True, "a.bak.1" : True }, "a.bak.2" ),
+ ( { "a.bak": True }, "a.1.bak" ),
+ ( { "a.bak": True, "a.1.bak" : True }, "a.2.bak" ),
]
for paths, expected in data:
accessor = StubDiskAccessor(paths)
- actual = nextAvailable("a.bak", diskAccessor=accessor)
+ actual = nextAvailable("a", "bak", diskAccessor=accessor)
self.assertEquals(actual, expected)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120719/db34f459/attachment.html>
More information about the calendarserver-changes
mailing list