mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
new patch - adds a 'boolean' function to the module_common class and cleans up
the apt module to use it
This commit is contained in:
parent
c4c53d545a
commit
21a35bde00
2 changed files with 20 additions and 7 deletions
|
@ -23,6 +23,9 @@ MODULE_COMMON = """
|
|||
# == BEGIN DYNAMICALLY INSERTED CODE ==
|
||||
|
||||
MODULE_ARGS = "<<INCLUDE_ANSIBLE_MODULE_ARGS>>"
|
||||
BOOLEANS_TRUE = ['yes', 'on', '1', 'true', 1]
|
||||
BOOLEANS_FALSE = ['no', 'off', '0', 'false', 0]
|
||||
BOOLEANS = BOOLEANS_TRUE + BOOLEANS_FALSE
|
||||
|
||||
# ansible modules can be written in any language. To simplify
|
||||
# development of Python modules, the functions available here
|
||||
|
@ -42,6 +45,7 @@ import shlex
|
|||
import subprocess
|
||||
import sys
|
||||
import syslog
|
||||
import types
|
||||
|
||||
try:
|
||||
from hashlib import md5 as _md5
|
||||
|
@ -128,6 +132,18 @@ class AnsibleModule(object):
|
|||
log_args = re.sub(r'password=.+ (.*)', r"password=NOT_LOGGING_PASSWORD \1", self.args)
|
||||
syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % log_args)
|
||||
|
||||
def boolean(self, arg):
|
||||
''' return a bool for the arg '''
|
||||
if type(arg) in types.StringTypes:
|
||||
arg = arg.lower()
|
||||
|
||||
if arg in BOOLEANS_TRUE:
|
||||
return True
|
||||
elif arg in BOOLEANS_FALSE:
|
||||
return False
|
||||
else:
|
||||
self.fail_json(msg='Boolean %s not in either boolean list' % arg)
|
||||
|
||||
def jsonify(self, data):
|
||||
return json.dumps(data)
|
||||
|
||||
|
|
11
library/apt
11
library/apt
|
@ -130,7 +130,7 @@ def main():
|
|||
if p['package'] is None and p['update_cache'] != 'yes':
|
||||
module.fail_json(msg='pkg=name and/or update-cache=yes is required')
|
||||
|
||||
install_recommends = (p['install_recommends'] == 'yes')
|
||||
install_recommends = module.boolean(p['install_recommends'])
|
||||
|
||||
cache = apt.Cache()
|
||||
if p['default_release']:
|
||||
|
@ -138,16 +138,13 @@ def main():
|
|||
# reopen cache w/ modified config
|
||||
cache.open(progress=None)
|
||||
|
||||
if p['update_cache'] == 'yes':
|
||||
if modules.boolean(p['update_cache'])
|
||||
cache.update()
|
||||
cache.open(progress=None)
|
||||
if p['package'] == None:
|
||||
module.exit_json(changed=False)
|
||||
|
||||
if p['force'] == 'yes':
|
||||
force_yes = True
|
||||
else:
|
||||
force_yes = False
|
||||
force_yes = modules.boolean(p['force'])
|
||||
|
||||
if p['package'].count('=') > 1:
|
||||
module.fail_json(msg='invalid package spec')
|
||||
|
@ -164,7 +161,7 @@ def main():
|
|||
install(module, p['package'], cache, default_release=p['default_release'],
|
||||
install_recommends=install_recommends,force=force_yes)
|
||||
elif p['state'] == 'removed':
|
||||
remove(module, p['package'], cache, purge = p['purge'])
|
||||
remove(module, p['package'], cache, purge = modules.boolean(p['purge']))
|
||||
|
||||
# this is magic, see lib/ansible/module_common.py
|
||||
#<<INCLUDE_ANSIBLE_MODULE_COMMON>>
|
||||
|
|
Loading…
Reference in a new issue