Check for link in path in utils.path_dwim_relative()

This allows an included path to be relative to a directory, if the
basedir of the original path is a symlink. In that case, the path
is normalized and the file is searched for in the normalized path.

Fixes #3312
This commit is contained in:
James Cammarata 2013-09-12 20:44:10 -05:00
parent d2bf244eb8
commit d0236f6ada

View file

@ -254,7 +254,11 @@ def path_dwim_relative(original, dirname, source, playbook_base, check=True):
# (used by roles code)
basedir = os.path.dirname(original)
template2 = os.path.join(basedir, '..', dirname, source)
if os.path.islink(basedir):
basedir = unfrackpath(basedir)
template2 = os.path.join(basedir, dirname, source)
else:
template2 = os.path.join(basedir, '..', dirname, source)
source2 = path_dwim(basedir, template2)
if os.path.exists(source2):
return source2