diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-11-15 15:25:21 -0500 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-11-16 09:57:53 -0500 |
commit | a6a29aa01744cc893741ddf558f415b7c705d3f6 (patch) | |
tree | e8bf8fef06c30c3a6cfb16d533306223afa8638f /src/lib/Bcfg2/Client/Tools/POSIX/Directory.py | |
parent | 5d58c0435d8d3889d5fa889a65b61565da0a95f6 (diff) | |
download | bcfg2-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.py | 16 |
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 |