Tolerate win line endings on windows module_util load (#37291)
* tolerate windows line endings when loading windows module utils. Helpful for old custom windows modules. * add test modules to demonstrate win line ending module load behaviour. * attempt to fix sanity check failures * pep8 fix * explict skip of test modules from shebang check (core modules must still have expected unix style line endings) * switch to rstrip() following core team meeting feedback
This commit is contained in:
parent
4e38036bbd
commit
ad94d03ba1
6 changed files with 31 additions and 1 deletions
|
@ -826,7 +826,7 @@ def _find_module_utils(module_name, b_module_data, module_path, module_args, tas
|
||||||
become_required = True
|
become_required = True
|
||||||
|
|
||||||
for m in set(module_names):
|
for m in set(module_names):
|
||||||
m = to_text(m)
|
m = to_text(m).rstrip() # tolerate windows line endings
|
||||||
mu_path = ps_module_utils_loader.find_plugin(m, ".psm1")
|
mu_path = ps_module_utils_loader.find_plugin(m, ".psm1")
|
||||||
if not mu_path:
|
if not mu_path:
|
||||||
raise AnsibleError('Could not find imported module support code for \'%s\'.' % m)
|
raise AnsibleError('Could not find imported module support code for \'%s\'.' % m)
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!powershell
|
||||||
|
|
||||||
|
#Requires -Module Ansible.ModuleUtils.Legacy
|
||||||
|
|
||||||
|
Exit-Json @{ data="success" }
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!powershell
|
||||||
|
# POWERSHELL_COMMON
|
||||||
|
|
||||||
|
Exit-Json @{ data="success" }
|
|
@ -14,6 +14,22 @@
|
||||||
that:
|
that:
|
||||||
- new_way.data == 'success'
|
- new_way.data == 'success'
|
||||||
|
|
||||||
|
- name: call old WANTS_JSON module with windows line endings
|
||||||
|
legacy_only_old_way_win_line_ending:
|
||||||
|
register: old_way_win
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- old_way_win.data == 'success'
|
||||||
|
|
||||||
|
- name: call module with only legacy requires and windows line endings
|
||||||
|
legacy_only_new_way_win_line_ending:
|
||||||
|
register: new_way_win
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- new_way_win.data == 'success'
|
||||||
|
|
||||||
- name: call module with local module_utils
|
- name: call module with local module_utils
|
||||||
uses_local_utils:
|
uses_local_utils:
|
||||||
register: local_utils
|
register: local_utils
|
||||||
|
|
|
@ -8,6 +8,8 @@ def main():
|
||||||
'test/integration/targets/template/files/foo.dos.txt',
|
'test/integration/targets/template/files/foo.dos.txt',
|
||||||
'test/integration/targets/win_regmerge/templates/win_line_ending.j2',
|
'test/integration/targets/win_regmerge/templates/win_line_ending.j2',
|
||||||
'test/integration/targets/win_template/files/foo.dos.txt',
|
'test/integration/targets/win_template/files/foo.dos.txt',
|
||||||
|
'test/integration/targets/win_module_utils/library/legacy_only_new_way_win_line_ending.ps1',
|
||||||
|
'test/integration/targets/win_module_utils/library/legacy_only_old_way_win_line_ending.ps1',
|
||||||
])
|
])
|
||||||
|
|
||||||
for path in sys.argv[1:] or sys.stdin.read().splitlines():
|
for path in sys.argv[1:] or sys.stdin.read().splitlines():
|
||||||
|
|
|
@ -25,6 +25,8 @@ def main():
|
||||||
|
|
||||||
skip = set([
|
skip = set([
|
||||||
'hacking/cherrypick.py',
|
'hacking/cherrypick.py',
|
||||||
|
'test/integration/targets/win_module_utils/library/legacy_only_new_way_win_line_ending.ps1',
|
||||||
|
'test/integration/targets/win_module_utils/library/legacy_only_old_way_win_line_ending.ps1',
|
||||||
])
|
])
|
||||||
|
|
||||||
for path in sys.argv[1:] or sys.stdin.read().splitlines():
|
for path in sys.argv[1:] or sys.stdin.read().splitlines():
|
||||||
|
|
Loading…
Reference in a new issue