diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-09-24 13:07:15 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-09-25 11:58:47 -0400 |
commit | 6d4d8df68717780239fad273dd722359db10e64b (patch) | |
tree | c50c94430a417cab3c97084022d85332065b022b /src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py | |
parent | dd28e90f183972cc2a395094ce3e3f72e861953f (diff) | |
download | bcfg2-6d4d8df68717780239fad273dd722359db10e64b.tar.gz bcfg2-6d4d8df68717780239fad273dd722359db10e64b.tar.bz2 bcfg2-6d4d8df68717780239fad273dd722359db10e64b.zip |
expanded pylint tests
Diffstat (limited to 'src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py')
-rw-r--r-- | src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py | 53 |
1 files changed, 13 insertions, 40 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py b/src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py index fb303bdbe..5f4fa6ad7 100644 --- a/src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py +++ b/src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py @@ -1,46 +1,19 @@ +""" Handle <Path type="symlink" ...> entries """ + import os -import sys -try: - from base import POSIXTool -except ImportError: - # py3k, incompatible syntax with py2.4 - exec("from .base import POSIXTool") +from Bcfg2.Client.Tools.POSIX.base import POSIXLinkTool -class POSIXSymlink(POSIXTool): - __req__ = ['name', 'to'] - def verify(self, entry, modlist): - rv = True +class POSIXSymlink(POSIXLinkTool): + """ Handle <Path type="symlink" ...> entries """ + __linktype__ = "symlink" - try: - sloc = os.readlink(entry.get('name')) - if sloc != entry.get('to'): - entry.set('current_to', sloc) - msg = ("Symlink %s points to %s, should be %s" % - (entry.get('name'), sloc, entry.get('to'))) - self.logger.debug("POSIX: " + msg) - entry.set('qtext', "\n".join([entry.get('qtext', ''), msg])) - rv = False - except OSError: - self.logger.debug("POSIX: %s %s does not exist" % - (entry.tag, entry.get("name"))) - entry.set('current_exists', 'false') + def _verify(self, entry): + sloc = os.readlink(entry.get('name')) + if sloc != entry.get('to'): + entry.set('current_to', sloc) return False + return True - return POSIXTool.verify(self, entry, modlist) and rv - - def install(self, entry): - ondisk = self._exists(entry, remove=True) - if ondisk: - self.logger.info("POSIX: Symlink %s cleanup failed" % - entry.get('name')) - try: - os.symlink(entry.get('to'), entry.get('name')) - rv = True - except OSError: - err = sys.exc_info()[1] - self.logger.error("POSIX: Failed to create symlink %s to %s: %s" % - (entry.get('name'), entry.get('to'), err)) - rv = False - return POSIXTool.install(self, entry) and rv - + def _link(self, entry): + return os.symlink(entry.get('to'), entry.get('name')) |