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.
This commit is contained in:
Robin Roth 2018-05-14 14:51:10 +02:00 committed by Martin Krizek
parent 42953c40ce
commit d6e711b1de
2 changed files with 17 additions and 2 deletions

View file

@ -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)
else: elif requirements:
if requirements:
cmd += ' -r %s' % requirements cmd += ' -r %s' % requirements
else:
module.exit_json(
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:

View file

@ -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