[Checkins] SVN: zc.recipe.deployment/trunk/ Bugs fixed:
Jim Fulton
jim at zope.com
Fri Mar 5 15:24:09 EST 2010
Log message for revision 109687:
Bugs fixed:
- Fixed a serious bug that cause buildouts to fail when using new
versions of the deployment recipe with older buildouts.
- Made uninstall more tolerant of directories it's about to delete
already being deleted.
Changed:
U zc.recipe.deployment/trunk/README.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/README.txt
===================================================================
--- zc.recipe.deployment/trunk/README.txt 2010-03-05 20:05:23 UTC (rev 109686)
+++ zc.recipe.deployment/trunk/README.txt 2010-03-05 20:24:09 UTC (rev 109687)
@@ -46,6 +46,18 @@
Changes
*******
+0.7.1 (2010-03-05)
+==================
+
+Bugs fixed
+----------
+
+- Fixed a serious bug that cause buildouts to fail when using new
+ versions of the deployment recipe with older buildouts.
+
+- Made uninstall more tolerant of directories it's about to delete
+ already being deleted.
+
0.7.0 (2010-02-01)
==================
Modified: zc.recipe.deployment/trunk/src/zc/recipe/deployment/README.txt
===================================================================
--- zc.recipe.deployment/trunk/src/zc/recipe/deployment/README.txt 2010-03-05 20:05:23 UTC (rev 109686)
+++ zc.recipe.deployment/trunk/src/zc/recipe/deployment/README.txt 2010-03-05 20:24:09 UTC (rev 109687)
@@ -532,18 +532,35 @@
'30 23 * * *\tbob\techo hello world!\n'
-.. cleanup
+.. edge case
- >>> print system(join('bin', 'buildout')+' buildout:parts='),
+ uninstall with no stored prefix
+
+ >>> installed = [l for l in open('.installed.cfg')
+ ... if not l.startswith('prefix =')]
+ >>> open('.installed.cfg', 'w').write(''.join(installed))
+
+ uninstall with some directories already gone:
+
+ >>> rmdir(sample_buildout, 'etc', 'bar')
+ >>> rmdir(sample_buildout, 'var', 'run')
+
+ >>> write('buildout.cfg',
+ ... '''
+ ... [buildout]
+ ... parts =
+ ... ''')
+
+ >>> print system(join('bin', 'buildout')), # doctest: +NORMALIZE_WHITESPACE
Uninstalling cron.
Uninstalling foo.
Running uninstall recipe.
- zc.recipe.deployment: Removing 'PREFIX/etc/bar'
- zc.recipe.deployment: Removing 'PREFIX/etc/cron.d'.
- zc.recipe.deployment: Removing 'PREFIX/etc/init.d'.
- zc.recipe.deployment: Removing 'PREFIX/etc/logrotate.d'.
zc.recipe.deployment: Removing 'PREFIX/var/log/bar'.
- zc.recipe.deployment: Removing 'PREFIX/var/run/bar'.
+
+.. cleanup
+
+ >>> print system(join('bin', 'buildout')+' buildout:parts='),
+
>>> os.path.exists(os.path.join(sample_buildout, 'etc/cron.d/bar-cron'))
False
Modified: zc.recipe.deployment/trunk/src/zc/recipe/deployment/__init__.py
===================================================================
--- zc.recipe.deployment/trunk/src/zc/recipe/deployment/__init__.py 2010-03-05 20:05:23 UTC (rev 109686)
+++ zc.recipe.deployment/trunk/src/zc/recipe/deployment/__init__.py 2010-03-05 20:24:09 UTC (rev 109687)
@@ -81,18 +81,20 @@
def uninstall(name, options):
path = options['etc-directory']
- shutil.rmtree(path)
- logger.info("Removing %r", path)
+ if os.path.isdir(path):
+ shutil.rmtree(path)
+ logger.info("Removing %r", path)
directories = ()
- if options['prefix'] != '/':
+ if options.get('prefix', '/') != '/':
directories = ('crontab', 'rc', 'logrotate')
for d in directories + ('log', 'run'):
path = options[d+'-directory']
- if os.listdir(path):
- logger.warn("Can't remove non-empty directory %r.", path)
- else:
- os.rmdir(path)
- logger.info("Removing %r.", path)
+ if os.path.isdir(path):
+ if os.listdir(path):
+ logger.warn("Can't remove non-empty directory %r.", path)
+ else:
+ os.rmdir(path)
+ logger.info("Removing %r.", path)
def make_dir(name, uid, gid, mode, created):
uname = pwd.getpwuid(uid)[0]
More information about the checkins
mailing list