@ -40,7 +40,7 @@ yumdnf_argument_spec = dict(
security = dict ( type = ' bool ' , default = False ) ,
security = dict ( type = ' bool ' , default = False ) ,
skip_broken = dict ( type = ' bool ' , default = False ) ,
skip_broken = dict ( type = ' bool ' , default = False ) ,
# removed==absent, installed==present, these are accepted as aliases
# 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_cache = dict ( type = ' bool ' , default = False , aliases = [ ' expire-cache ' ] ) ,
update_only = dict ( required = False , default = " no " , type = ' bool ' ) ,
update_only = dict ( required = False , default = " no " , type = ' bool ' ) ,
validate_certs = dict ( type = ' bool ' , default = True ) ,
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. '
' 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
# This should really be redefined by both the yum and dnf module but a
# default isn't a bad idea
# default isn't a bad idea
self . lockfile = ' /var/run/yum.pid '
self . lockfile = ' /var/run/yum.pid '