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
|
||||
|
||||
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")
|
||||
if not mu_path:
|
||||
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:
|
||||
- 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
|
||||
uses_local_utils:
|
||||
register: local_utils
|
||||
|
|
|
@ -8,6 +8,8 @@ def main():
|
|||
'test/integration/targets/template/files/foo.dos.txt',
|
||||
'test/integration/targets/win_regmerge/templates/win_line_ending.j2',
|
||||
'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():
|
||||
|
|
|
@ -25,6 +25,8 @@ def main():
|
|||
|
||||
skip = set([
|
||||
'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():
|
||||
|
|
Loading…
Reference in a new issue