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
|
parent_include = parent_include._parent
|
||||||
continue
|
continue
|
||||||
if isinstance(parent_include, IncludeRole):
|
if isinstance(parent_include, IncludeRole):
|
||||||
parent_include_dir = os.path.dirname(parent_include._role_path)
|
parent_include_dir = parent_include._role_path
|
||||||
else:
|
else:
|
||||||
parent_include_dir = os.path.dirname(templar.template(parent_include.args.get('_raw_params')))
|
parent_include_dir = os.path.dirname(templar.template(parent_include.args.get('_raw_params')))
|
||||||
if cumulative_path is None:
|
if cumulative_path is not None and not os.path.isabs(cumulative_path):
|
||||||
cumulative_path = parent_include_dir
|
|
||||||
elif not os.path.isabs(cumulative_path):
|
|
||||||
cumulative_path = os.path.join(parent_include_dir, 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'])
|
include_target = templar.template(include_result['include'])
|
||||||
if original_task._role:
|
if original_task._role:
|
||||||
new_basedir = os.path.join(original_task._role._role_path, 'tasks', cumulative_path)
|
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._from_files = self._from_files.copy()
|
||||||
new_me._parent_role = self._parent_role
|
new_me._parent_role = self._parent_role
|
||||||
new_me._role_name = self._role_name
|
new_me._role_name = self._role_name
|
||||||
|
new_me._role_path = self._role_path
|
||||||
|
|
||||||
return new_me
|
return new_me
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue