summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/Tools/POSIX/Symlink.py
blob: 5f4fa6ad76de820f52c02e88f526df82df370cdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
""" Handle <Path type="symlink" ...> entries """

import os
from Bcfg2.Client.Tools.POSIX.base import POSIXLinkTool


class POSIXSymlink(POSIXLinkTool):
    """ Handle <Path type="symlink" ...> entries """
    __linktype__ = "symlink"

    def _verify(self, entry):
        sloc = os.readlink(entry.get('name'))
        if sloc != entry.get('to'):
            entry.set('current_to', sloc)
            return False
        return True

    def _link(self, entry):
        return os.symlink(entry.get('to'), entry.get('name'))