Allow empty list of names in pip module (#38789)

pip 10 gives exit code 1 for empty argument lists (pip < 10 gave exit 0)
see also https://github.com/pypa/pip/pull/4210

To still allow playbooks to pass when giving empty lists, don't call
pip in that case, but show a warning.
pull/40079/head
Robin Roth 6 years ago committed by Martin Krizek
parent 42953c40ce
commit d6e711b1de

@ -496,9 +496,13 @@ def main():
if name: if name:
for pkg in name: for pkg in name:
cmd += ' %s' % _get_full_name(pkg, version) cmd += ' %s' % _get_full_name(pkg, version)
elif requirements:
cmd += ' -r %s' % requirements
else: else:
if requirements: module.exit_json(
cmd += ' -r %s' % requirements changed=False,
warnings=["No valid name or requirements file found."],
)
if module.check_mode: if module.check_mode:
if extra_args or requirements or state == 'latest' or not name: if extra_args or requirements or state == 'latest' or not name:

@ -208,3 +208,14 @@
assert: assert:
that: that:
- "venv_chdir.changed" - "venv_chdir.changed"
# ansible#38785
- name: allow empty list of packages
pip:
name: []
register: pip_install_empty
- name: ensure empty install is successful
assert:
that:
- not pip_install_empty.changed

Loading…
Cancel
Save