mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 13:52:54 +00:00
Correct yum and dnf autoremove behavior (#47902)
* Correct yum and dnf autoremove behavior Sanity check args passed to autoremove Fixes #47184 Signed-off-by: Adam Miller <admiller@redhat.com> * fix docs Signed-off-by: Adam Miller <admiller@redhat.com>
This commit is contained in:
@@ -40,7 +40,7 @@ yumdnf_argument_spec = dict(
|
||||
security=dict(type='bool', default=False),
|
||||
skip_broken=dict(type='bool', default=False),
|
||||
# removed==absent, installed==present, these are accepted as aliases
|
||||
state=dict(type='str', default='present', choices=['absent', 'installed', 'latest', 'present', 'removed']),
|
||||
state=dict(type='str', default=None, choices=['absent', 'installed', 'latest', 'present', 'removed']),
|
||||
update_cache=dict(type='bool', default=False, aliases=['expire-cache']),
|
||||
update_only=dict(required=False, default="no", type='bool'),
|
||||
validate_certs=dict(type='bool', default=True),
|
||||
@@ -104,6 +104,19 @@ class YumDnf(with_metaclass(ABCMeta, object)):
|
||||
'string of packages or a list of packages.'
|
||||
)
|
||||
|
||||
# Sanity checking for autoremove
|
||||
if self.state is None:
|
||||
if self.autoremove:
|
||||
self.state = "absent"
|
||||
else:
|
||||
self.state = "present"
|
||||
|
||||
if self.autoremove and (self.state != "absent"):
|
||||
self.module.fail_json(
|
||||
msg="Autoremove should be used alone or with state=absent",
|
||||
results=[],
|
||||
)
|
||||
|
||||
# This should really be redefined by both the yum and dnf module but a
|
||||
# default isn't a bad idea
|
||||
self.lockfile = '/var/run/yum.pid'
|
||||
|
||||
Reference in New Issue
Block a user