mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-04 01:13:00 +00:00
[PR #11949/dd5bd733 backport][stable-12] apt_rpm: handle update-kernel rc=1 when no new kernel is available (#11973)
apt_rpm: handle `update-kernel` rc=1 when no new kernel is available (#11949)
* fix(apt_rpm): do not fail when update-kernel finds no new kernel
update-kernel exits with rc=1 when the kernel is already at the latest
version. Handle this case gracefully by checking for the known
"There are no available kernels" message in stderr and returning
changed=False instead of raising an error.
Fixes #10055
* fix(apt_rpm): add changelog fragment for #11949
* Apply suggestion from review
---------
(cherry picked from commit dd5bd733fc)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
6e379091a4
commit
064dc97956
2 changed files with 8 additions and 1 deletions
|
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- "apt_rpm - do not fail when ``update_kernel`` finds no new kernel available (https://github.com/ansible-collections/community.general/issues/10055, https://github.com/ansible-collections/community.general/pull/11949)."
|
||||
|
|
@ -144,6 +144,7 @@ APT_PATH = "/usr/bin/apt-get"
|
|||
RPM_PATH = "/usr/bin/rpm"
|
||||
APT_GET_ZERO = "\n0 upgraded, 0 newly installed"
|
||||
UPDATE_KERNEL_ZERO = "\nTry to install new kernel "
|
||||
UPDATE_KERNEL_NO_NEW = "There are no available kernels"
|
||||
|
||||
|
||||
def local_rpm_package_name(path):
|
||||
|
|
@ -233,8 +234,12 @@ def dist_upgrade(module):
|
|||
|
||||
def update_kernel(module):
|
||||
rc, out, err = module.run_command(
|
||||
["/usr/sbin/update-kernel", "-y"], check_rc=True, environ_update={"LANGUAGE": "C", "LC_ALL": "C"}
|
||||
["/usr/sbin/update-kernel", "-y"], environ_update={"LANGUAGE": "C", "LC_ALL": "C"}
|
||||
)
|
||||
if rc != 0:
|
||||
if UPDATE_KERNEL_NO_NEW in err:
|
||||
return (False, out)
|
||||
module.fail_json(msg=f"Error while updating kernel: {err or out}", rc=rc, stdout=out, stderr=err)
|
||||
return (UPDATE_KERNEL_ZERO not in out, out)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue