Refactor easy_install module

* PEP8 fix
* Rectified string check in package install command stdout
* Add abadger's code review changes

Fixes #22245

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit b5eca624d0)
This commit is contained in:
Abhijeet Kasurde 2017-05-08 21:49:36 +05:30 committed by Toshio Kuratomi
parent 670b09224f
commit 46f75e0f3d
2 changed files with 14 additions and 10 deletions

View file

@ -94,17 +94,23 @@ EXAMPLES = '''
import os import os
import os.path import os.path
import tempfile import tempfile
from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import AnsibleModule
def _is_package_installed(module, name, easy_install, executable_arguments): def install_package(module, name, easy_install, executable_arguments):
executable_arguments = executable_arguments + ['--dry-run']
cmd = '%s %s %s' % (easy_install, ' '.join(executable_arguments), name) cmd = '%s %s %s' % (easy_install, ' '.join(executable_arguments), name)
rc, status_stdout, status_stderr = module.run_command(cmd) rc, out, err = module.run_command(cmd)
return rc, out, err
def _is_package_installed(module, name, easy_install, executable_arguments):
# Copy and add to the arguments
executable_arguments = executable_arguments[:]
executable_arguments.append('--dry-run')
rc, out, err = install_package(module, name, easy_install, executable_arguments)
if rc: if rc:
module.fail_json(msg=status_stderr) module.fail_json(msg=err)
return not ('Reading' in status_stdout or 'Downloading' in status_stdout) return 'Downloading' not in out
def _get_easy_install(module, env=None, executable=None): def _get_easy_install(module, env=None, executable=None):
@ -138,7 +144,7 @@ def main():
name=dict(required=True), name=dict(required=True),
state=dict(required=False, state=dict(required=False,
default='present', default='present',
choices=['present','latest'], choices=['present', 'latest'],
type='str'), type='str'),
virtualenv=dict(default=None, required=False), virtualenv=dict(default=None, required=False),
virtualenv_site_packages=dict(default='no', type='bool'), virtualenv_site_packages=dict(default='no', type='bool'),
@ -186,8 +192,7 @@ def main():
if not installed: if not installed:
if module.check_mode: if module.check_mode:
module.exit_json(changed=True) module.exit_json(changed=True)
cmd = '%s %s %s' % (easy_install, ' '.join(executable_arguments), name) rc_easy_inst, out_easy_inst, err_easy_inst = install_package(module, name, easy_install, executable_arguments)
rc_easy_inst, out_easy_inst, err_easy_inst = module.run_command(cmd)
rc += rc_easy_inst rc += rc_easy_inst
out += out_easy_inst out += out_easy_inst

View file

@ -364,7 +364,6 @@ lib/ansible/modules/notification/slack.py
lib/ansible/modules/notification/twilio.py lib/ansible/modules/notification/twilio.py
lib/ansible/modules/packaging/language/bundler.py lib/ansible/modules/packaging/language/bundler.py
lib/ansible/modules/packaging/language/cpanm.py lib/ansible/modules/packaging/language/cpanm.py
lib/ansible/modules/packaging/language/easy_install.py
lib/ansible/modules/packaging/language/gem.py lib/ansible/modules/packaging/language/gem.py
lib/ansible/modules/packaging/language/maven_artifact.py lib/ansible/modules/packaging/language/maven_artifact.py
lib/ansible/modules/packaging/language/pear.py lib/ansible/modules/packaging/language/pear.py