[Checkins] SVN: zc.recipe.deployment/trunk/ - Fix for 0.9 -> 0.10 .installed.cfg migration

jackie cvs-admin at zope.org
Wed Apr 10 21:00:33 UTC 2013


Log message for revision 130188:
  - Fix for 0.9 -> 0.10 .installed.cfg migration
  
  

Changed:
  U   zc.recipe.deployment/trunk/CHANGES.txt
  U   zc.recipe.deployment/trunk/src/zc/recipe/deployment/README.txt
  U   zc.recipe.deployment/trunk/src/zc/recipe/deployment/__init__.py

-=-
Modified: zc.recipe.deployment/trunk/CHANGES.txt
===================================================================
--- zc.recipe.deployment/trunk/CHANGES.txt	2013-04-10 16:18:30 UTC (rev 130187)
+++ zc.recipe.deployment/trunk/CHANGES.txt	2013-04-10 21:00:32 UTC (rev 130188)
@@ -4,7 +4,7 @@
 0.10.1 (unreleased)
 ===================
 
-- Nothing changed yet.
+- Fix for 0.9 -> 0.10 .installed.cfg migration
 
 
 0.10.0 (2013-03-28)

Modified: zc.recipe.deployment/trunk/src/zc/recipe/deployment/README.txt
===================================================================
--- zc.recipe.deployment/trunk/src/zc/recipe/deployment/README.txt	2013-04-10 16:18:30 UTC (rev 130187)
+++ zc.recipe.deployment/trunk/src/zc/recipe/deployment/README.txt	2013-04-10 21:00:32 UTC (rev 130188)
@@ -243,7 +243,37 @@
     >>> os.path.exists('' + os.path.join(sample_buildout, 'PREFIX/var/run/foo'))
     False
 
+Prior to zc.recipe.deployment 0.10.0, some directories (eg., cache-directory,
+lib-directory) were not managed by zc.recipe.deployment.  So on uninstall, we
+can expect any nonexistent directory keys to be silently ignored.
 
+    >>> _ = system(join('bin', 'buildout')), # doctest: +NORMALIZE_WHITESPACE
+    >>> new_installed_contents = ""
+    >>> with open(
+    ...         os.path.join(sample_buildout, ".installed.cfg")) as fi:
+    ...     for line in fi.readlines():
+    ...         if (not line.startswith("cache-directory = ") and
+    ...                 not line.startswith("lib-directory = ")):
+    ...             new_installed_contents += line
+    >>> with open(
+    ...         os.path.join(sample_buildout, ".installed.cfg"), 'w') as fi:
+    ...     fi.write(new_installed_contents)
+    >>> print system(join('bin', 'buildout')+' buildout:parts='),
+    Uninstalling foo.
+    Running uninstall recipe.
+    zc.recipe.deployment: Removing '/tmp/tmpcokpi_buildoutSetUp/_TEST_/sample-buildout/etc/foo'
+    zc.recipe.deployment: Removing '/tmp/tmpcokpi_buildoutSetUp/_TEST_/sample-buildout/etc/cron.d'.
+    zc.recipe.deployment: Removing '/tmp/tmpcokpi_buildoutSetUp/_TEST_/sample-buildout/etc/init.d'.
+    zc.recipe.deployment: Removing '/tmp/tmpcokpi_buildoutSetUp/_TEST_/sample-buildout/etc/logrotate.d'.
+    zc.recipe.deployment: Removing '/tmp/tmpcokpi_buildoutSetUp/_TEST_/sample-buildout/var/log/foo'.
+    zc.recipe.deployment: Removing '/tmp/tmpcokpi_buildoutSetUp/_TEST_/sample-buildout/var/run/foo'.
+
+We'll finish the cleanup our modified .installed.cfg missed.
+
+    >>> os.removedirs(os.path.join(sample_buildout, 'var/cache/foo'))
+    >>> os.removedirs(os.path.join(sample_buildout, 'var/lib/foo'))
+
+
 Deployment Name
 ===============
 

Modified: zc.recipe.deployment/trunk/src/zc/recipe/deployment/__init__.py
===================================================================
--- zc.recipe.deployment/trunk/src/zc/recipe/deployment/__init__.py	2013-04-10 16:18:30 UTC (rev 130187)
+++ zc.recipe.deployment/trunk/src/zc/recipe/deployment/__init__.py	2013-04-10 21:00:32 UTC (rev 130188)
@@ -165,7 +165,9 @@
     if options.get('prefix', '/') != '/':
         directories = ('crontab', 'rc', 'logrotate')
     for d in directories + ('cache', 'lib', 'log', 'run'):
-        path = options[d+'-directory']
+        path = options.get(d+'-directory')
+        if not path:
+            continue
         if os.path.isdir(path):
             if os.listdir(path):
                 logger.warn("Can't remove non-empty directory %r.", path)



More information about the checkins mailing list