new patch - adds a 'boolean' function to the module_common class and cleans up

the apt module to use it
pull/723/head
Seth Vidal 12 years ago
parent c4c53d545a
commit 21a35bde00

@ -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)

@ -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…
Cancel
Save