From 09d5812cbbf8453b88ff90f5d2aefd0922e7f9d7 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Tue, 14 Aug 2012 23:31:13 -0400 Subject: [PATCH] Make easy_install module actually work. mpdehaan requested in ansible/ansible#795 that globals be removed. The response was to remove the lines with the word 'global', but not the actual use of global variables. Which makes the module break silently. Updated to use local variables. --- library/easy_install | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/library/easy_install b/library/easy_install index d810943084..47d3f2c823 100755 --- a/library/easy_install +++ b/library/easy_install @@ -19,14 +19,9 @@ # along with Ansible. If not, see . # -EASY_INSTALL = None -VIRTUALENV = '/usr/local/bin/virtualenv' -ENV = None - - -def _find_easy_install(): - if ENV: - return os.path.join(ENV, 'bin', 'easy_install') +def _find_easy_install(env): + if env: + return os.path.join(env, 'bin', 'easy_install') paths = ['/usr/local/bin', '/usr/bin'] @@ -36,15 +31,15 @@ def _find_easy_install(): return e -def _ensure_virtualenv(): - if os.path.exists(os.path.join(ENV, 'bin', 'activate')): +def _ensure_virtualenv(env, virtualenv): + if os.path.exists(os.path.join(env, 'bin', 'activate')): return 0, '', '' else: - return _run('%s %s' % (VIRTUALENV, ENV)) + return _run('%s %s' % (virtualenv, env)) -def _is_package_installed(name): - cmd = '%s --dry-run %s' % (EASY_INSTALL, name) +def _is_package_installed(name, easy_install): + cmd = '%s --dry-run %s' % (easy_install, name) rc, status_stdout, status_stderr = _run(cmd) return not ('Reading' in status_stdout or 'Downloading' in status_stdout) @@ -66,15 +61,15 @@ def main(): module = AnsibleModule(argument_spec=arg_spec) name = module.params['name'] - ENV = module.params['virtualenv'] - EASY_INSTALL = _find_easy_install() + env = module.params['virtualenv'] + easy_install = _find_easy_install(env) rc = 0 err = '' out = '' - if ENV: - rc_venv, out_venv, err_venv = _ensure_virtualenv() + if env: + rc_venv, out_venv, err_venv = _ensure_virtualenv(env, '/usr/local/bin/virtualenv') rc += rc_venv out += out_venv @@ -82,10 +77,10 @@ def main(): cmd = None changed = False - installed = _is_package_installed(name) + installed = _is_package_installed(name, easy_install) if not installed: - cmd = '%s %s' % (EASY_INSTALL, name) + cmd = '%s %s' % (easy_install, name) rc_pip, out_pip, err_pip = _run(cmd) rc += rc_pip @@ -97,8 +92,8 @@ def main(): if rc != 0: module.fail_json(msg=err, cmd=cmd) - module.exit_json(changed=changed, binary=EASY_INSTALL, - name=name, virtualenv=ENV) + module.exit_json(changed=changed, binary=easy_install, + name=name, virtualenv=env) # this is magic, see lib/ansible/module_common.py #<>