yum: fix 'package == version' syntax (#47744)

(cherry picked from commit 4b8f2c99d2)
This commit is contained in:
Martin Krizek 2018-10-30 16:28:22 +01:00 committed by Toshio Kuratomi
parent 009a3b34bc
commit 44088ef64d
3 changed files with 35 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- yum - fix "package == version" syntax (https://github.com/ansible/ansible/pull/47744)

View file

@ -94,7 +94,7 @@ class YumDnf(with_metaclass(ABCMeta, object)):
# Fail if someone passed a space separated string # Fail if someone passed a space separated string
# https://github.com/ansible/ansible/issues/46301 # https://github.com/ansible/ansible/issues/46301
if any((' ' in name and '@' not in name for name in self.names)): if any((' ' in name and '@' not in name and '==' not in name for name in self.names)):
module.fail_json( module.fail_json(
msg='It appears that a space separated string of packages was passed in ' msg='It appears that a space separated string of packages was passed in '
'as an argument. To operate on several packages, pass a comma separated ' 'as an argument. To operate on several packages, pass a comma separated '

View file

@ -556,3 +556,35 @@
name: foo name: foo
state: absent state: absent
when: not (ansible_distribution == "Fedora" and ansible_distribution_major_version|int < 26) when: not (ansible_distribution == "Fedora" and ansible_distribution_major_version|int < 26)
# https://github.com/ansible/ansible/issues/47689
- block:
- name: Install foo == 1.0
yum:
name: "foo == 1.0"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "yum_result.changed"
- "rpm_result.stdout.startswith('foo-1.0-1')"
- name: Verify yum module outputs
assert:
that:
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
always:
- name: Clean up
yum:
name: foo
state: absent
when: ansible_pkg_mgr == 'yum'