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 #27345pull/4420/head
parent
c770d657f3
commit
e0b0e61b32
|
@ -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 New Issue