dnf: handle error when latest pkg not found (#39720)
* dnf: handle error when latest pkg not found * Add integration test
This commit is contained in:
parent
3c389aee73
commit
bf702e6d88
2 changed files with 21 additions and 2 deletions
|
@ -393,7 +393,10 @@ def ensure(module, base, state, names, autoremove):
|
||||||
# best effort causes to install the latest package
|
# best effort causes to install the latest package
|
||||||
# even if not previously installed
|
# even if not previously installed
|
||||||
base.conf.best = True
|
base.conf.best = True
|
||||||
base.install(pkg_spec)
|
try:
|
||||||
|
base.install(pkg_spec)
|
||||||
|
except dnf.exceptions.MarkingError as e:
|
||||||
|
failures.append((pkg_spec, to_native(e)))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# state == absent
|
# state == absent
|
||||||
|
|
|
@ -192,7 +192,7 @@
|
||||||
- sharutils
|
- sharutils
|
||||||
state: removed
|
state: removed
|
||||||
|
|
||||||
- name: install non-existent rpm
|
- name: install non-existent rpm
|
||||||
dnf:
|
dnf:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
with_items:
|
with_items:
|
||||||
|
@ -410,3 +410,19 @@
|
||||||
that:
|
that:
|
||||||
- "'changed' in dnf_result"
|
- "'changed' in dnf_result"
|
||||||
- "'results' in dnf_result"
|
- "'results' in dnf_result"
|
||||||
|
|
||||||
|
# https://github.com/ansible/ansible/issues/39704
|
||||||
|
- name: install non-existent rpm, state=latest
|
||||||
|
dnf:
|
||||||
|
name: non-existent-rpm
|
||||||
|
state: latest
|
||||||
|
ignore_errors: yes
|
||||||
|
register: dnf_result
|
||||||
|
|
||||||
|
- name: verify the result
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "dnf_result is failed"
|
||||||
|
- "'non-existent-rpm' in dnf_result['failures'][0]"
|
||||||
|
- "'no package matched' in dnf_result['failures'][0]"
|
||||||
|
- "'Failed to install some of the specified packages' in dnf_result['msg']"
|
||||||
|
|
Loading…
Reference in a new issue