summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-15 15:25:21 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-16 09:57:53 -0500
commita6a29aa01744cc893741ddf558f415b7c705d3f6 (patch)
treee8bf8fef06c30c3a6cfb16d533306223afa8638f /src/lib/Bcfg2/Client/Tools/POSIX/Directory.py
parent5d58c0435d8d3889d5fa889a65b61565da0a95f6 (diff)
downloadbcfg2-a6a29aa01744cc893741ddf558f415b7c705d3f6.tar.gz
bcfg2-a6a29aa01744cc893741ddf558f415b7c705d3f6.tar.bz2
bcfg2-a6a29aa01744cc893741ddf558f415b7c705d3f6.zip
POSIX: fixed removal of symlinked directories
Diffstat (limited to 'src/lib/Bcfg2/Client/Tools/POSIX/Directory.py')
-rw-r--r--src/lib/Bcfg2/Client/Tools/POSIX/Directory.py16
1 files changed, 2 insertions, 14 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py b/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py
index 9b0b998bb..9d0fe05e0 100644
--- a/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py
+++ b/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py
@@ -3,7 +3,6 @@
import os
import sys
import stat
-import shutil
import Bcfg2.Client.XML
from Bcfg2.Client.Tools.POSIX.base import POSIXTool
@@ -67,25 +66,14 @@ class POSIXDirectory(POSIXTool):
rv &= self._makedirs(entry)
if entry.get('prune', 'false') == 'true':
- ulfailed = False
for pent in entry.findall('Prune'):
pname = pent.get('path')
- ulfailed = False
- if os.path.isdir(pname):
- remove = shutil.rmtree
- else:
- remove = os.unlink
try:
self.logger.debug("POSIX: Removing %s" % pname)
- remove(pname)
+ self._remove(pent)
except OSError:
err = sys.exc_info()[1]
self.logger.error("POSIX: Failed to unlink %s: %s" %
(pname, err))
- ulfailed = True
- if ulfailed:
- # even if prune failed, we still want to install the
- # entry to make sure that we get permissions and
- # whatnot set
- rv = False
+ rv = False
return POSIXTool.install(self, entry) and rv