Properly copy the role path when the IncludeRole object is copied
This exposed some additional errors in logic in IncludeFile, which had to be fixed to deal with the fact that the role path (unlike paths from includes) are always absolute paths. Fixes #27345
This commit is contained in:
parent
c770d657f3
commit
e0b0e61b32
2 changed files with 5 additions and 4 deletions
|
@ -103,13 +103,13 @@ class IncludedFile:
|
|||
parent_include = parent_include._parent
|
||||
continue
|
||||
if isinstance(parent_include, IncludeRole):
|
||||
parent_include_dir = os.path.dirname(parent_include._role_path)
|
||||
parent_include_dir = parent_include._role_path
|
||||
else:
|
||||
parent_include_dir = os.path.dirname(templar.template(parent_include.args.get('_raw_params')))
|
||||
if cumulative_path is None:
|
||||
cumulative_path = parent_include_dir
|
||||
elif not os.path.isabs(cumulative_path):
|
||||
if cumulative_path is not None and not os.path.isabs(cumulative_path):
|
||||
cumulative_path = os.path.join(parent_include_dir, cumulative_path)
|
||||
else:
|
||||
cumulative_path = parent_include_dir
|
||||
include_target = templar.template(include_result['include'])
|
||||
if original_task._role:
|
||||
new_basedir = os.path.join(original_task._role._role_path, 'tasks', cumulative_path)
|
||||
|
|
|
@ -127,6 +127,7 @@ class IncludeRole(TaskInclude):
|
|||
new_me._from_files = self._from_files.copy()
|
||||
new_me._parent_role = self._parent_role
|
||||
new_me._role_name = self._role_name
|
||||
new_me._role_path = self._role_path
|
||||
|
||||
return new_me
|
||||
|
||||
|
|
Loading…
Reference in a new issue