mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Migrate remaining modules to use get_bin_path in module_common.py
* Migraed easy_install, pip, service, setup, and user. * Updated fail_json message in apt_repository * Fixed easy_install to not hardcode location of virtualenv in /usr/local/bin/. * Made handling of virtualenv more consistent between easy_install and pip.
This commit is contained in:
parent
4e7b67a45a
commit
e5a635672c
6 changed files with 24 additions and 63 deletions
|
@ -48,8 +48,7 @@ def main():
|
||||||
|
|
||||||
add_apt_repository = module.get_bin_path(ADD_APT_REPO)
|
add_apt_repository = module.get_bin_path(ADD_APT_REPO)
|
||||||
if add_apt_repository is None:
|
if add_apt_repository is None:
|
||||||
module.fail_json(msg='Unabled to find any of the following executables '
|
module.fail_json(msg='Unable to find executable %s' % ADD_APT_REPO)
|
||||||
'%s' % binaries)
|
|
||||||
|
|
||||||
repo = module.params['repo']
|
repo = module.params['repo']
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
|
|
|
@ -19,18 +19,6 @@
|
||||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
def _find_easy_install(env):
|
|
||||||
if env:
|
|
||||||
return os.path.join(env, 'bin', 'easy_install')
|
|
||||||
|
|
||||||
paths = ['/usr/local/bin', '/usr/bin']
|
|
||||||
|
|
||||||
for p in paths:
|
|
||||||
e = p + '/easy_install'
|
|
||||||
if os.path.exists(e):
|
|
||||||
return e
|
|
||||||
|
|
||||||
|
|
||||||
def _ensure_virtualenv(env, virtualenv):
|
def _ensure_virtualenv(env, virtualenv):
|
||||||
if os.path.exists(os.path.join(env, 'bin', 'activate')):
|
if os.path.exists(os.path.join(env, 'bin', 'activate')):
|
||||||
return 0, '', ''
|
return 0, '', ''
|
||||||
|
@ -62,14 +50,20 @@ def main():
|
||||||
|
|
||||||
name = module.params['name']
|
name = module.params['name']
|
||||||
env = module.params['virtualenv']
|
env = module.params['virtualenv']
|
||||||
easy_install = _find_easy_install(env)
|
easy_install = module.get_bin_path('easy_install', ['%s/bin' % env])
|
||||||
|
if easy_install is None:
|
||||||
|
module.fail_json(msg='easy_install is not installed')
|
||||||
|
|
||||||
rc = 0
|
rc = 0
|
||||||
err = ''
|
err = ''
|
||||||
out = ''
|
out = ''
|
||||||
|
|
||||||
if env:
|
if env:
|
||||||
rc_venv, out_venv, err_venv = _ensure_virtualenv(env, '/usr/local/bin/virtualenv')
|
virtualenv = module.get_bin_path('virtualenv')
|
||||||
|
if virtualenv is None:
|
||||||
|
module.fail_json(msg='virtualenv is not installed')
|
||||||
|
|
||||||
|
rc_venv, out_venv, err_venv = _ensure_virtualenv(env, virtualenv)
|
||||||
|
|
||||||
rc += rc_venv
|
rc += rc_venv
|
||||||
out += out_venv
|
out += out_venv
|
||||||
|
|
34
library/pip
34
library/pip
|
@ -27,32 +27,6 @@ def _get_full_name(name, version=None):
|
||||||
resp = name + '==' + version
|
resp = name + '==' + version
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
def _find_pip(module, env):
|
|
||||||
paths = ['/usr/local/bin', '/usr/bin']
|
|
||||||
|
|
||||||
if env:
|
|
||||||
paths = [os.path.join(env, 'bin')] + paths
|
|
||||||
|
|
||||||
for p in paths:
|
|
||||||
pe = p + '/pip'
|
|
||||||
if os.path.exists(pe):
|
|
||||||
return pe
|
|
||||||
|
|
||||||
module.fail_json(msg='pip is not installed')
|
|
||||||
|
|
||||||
|
|
||||||
def _find_virtualenv(module):
|
|
||||||
paths = ['/usr/local/bin', '/usr/bin']
|
|
||||||
|
|
||||||
for p in paths:
|
|
||||||
ve = p + '/virtualenv'
|
|
||||||
if os.path.exists(ve):
|
|
||||||
return ve
|
|
||||||
|
|
||||||
module.fail_json(msg='virtualenv is not installed')
|
|
||||||
|
|
||||||
|
|
||||||
def _ensure_virtualenv(module, env, virtualenv):
|
def _ensure_virtualenv(module, env, virtualenv):
|
||||||
if os.path.exists(os.path.join(env, 'bin', 'activate')):
|
if os.path.exists(os.path.join(env, 'bin', 'activate')):
|
||||||
return 0, '', ''
|
return 0, '', ''
|
||||||
|
@ -103,7 +77,9 @@ def main():
|
||||||
env = module.params['virtualenv']
|
env = module.params['virtualenv']
|
||||||
|
|
||||||
if env:
|
if env:
|
||||||
virtualenv = _find_virtualenv(module)
|
virtualenv = module.get_bin_path('virtualenv')
|
||||||
|
if virtualenv is None:
|
||||||
|
module.fail_json(msg='virtualenv is not installed')
|
||||||
|
|
||||||
rc_venv, out_venv, err_venv = _ensure_virtualenv(module, env, virtualenv)
|
rc_venv, out_venv, err_venv = _ensure_virtualenv(module, env, virtualenv)
|
||||||
|
|
||||||
|
@ -111,7 +87,9 @@ def main():
|
||||||
out += out_venv
|
out += out_venv
|
||||||
err += err_venv
|
err += err_venv
|
||||||
|
|
||||||
pip = _find_pip(module, env)
|
pip = module.get_bin_path('pip', ['%s/bin' % env])
|
||||||
|
if pip is None:
|
||||||
|
module.fail_json(msg='pip is not installed')
|
||||||
|
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
name = module.params['name']
|
name = module.params['name']
|
||||||
|
|
|
@ -39,10 +39,7 @@ def _find_binaries(m):
|
||||||
location[binary] = None
|
location[binary] = None
|
||||||
|
|
||||||
for binary in binaries:
|
for binary in binaries:
|
||||||
for path in paths:
|
location[binary] = m.get_bin_path(binary)
|
||||||
if os.path.exists(path + '/' + binary):
|
|
||||||
location[binary] = path + '/' + binary
|
|
||||||
break
|
|
||||||
|
|
||||||
if location.get('systemctl', None):
|
if location.get('systemctl', None):
|
||||||
CHKCONFIG = location['systemctl']
|
CHKCONFIG = location['systemctl']
|
||||||
|
|
|
@ -436,7 +436,9 @@ class LinuxNetwork(Network):
|
||||||
Network.__init__(self)
|
Network.__init__(self)
|
||||||
|
|
||||||
def populate(self):
|
def populate(self):
|
||||||
ip_path = self.get_ip_path()
|
ip_path = module.get_bin_path('ip')
|
||||||
|
if ip_path is None:
|
||||||
|
return self.facts
|
||||||
default_ipv4, default_ipv6 = self.get_default_interfaces(ip_path)
|
default_ipv4, default_ipv6 = self.get_default_interfaces(ip_path)
|
||||||
interfaces, ips = self.get_interfaces_info(ip_path, default_ipv4, default_ipv6)
|
interfaces, ips = self.get_interfaces_info(ip_path, default_ipv4, default_ipv6)
|
||||||
self.facts['interfaces'] = interfaces.keys()
|
self.facts['interfaces'] = interfaces.keys()
|
||||||
|
@ -448,15 +450,6 @@ class LinuxNetwork(Network):
|
||||||
self.facts['all_ipv6_addresses'] = ips['all_ipv6_addresses']
|
self.facts['all_ipv6_addresses'] = ips['all_ipv6_addresses']
|
||||||
return self.facts
|
return self.facts
|
||||||
|
|
||||||
def get_ip_path(self):
|
|
||||||
paths = ['/sbin/ip', '/usr/sbin/ip']
|
|
||||||
ip_path = None
|
|
||||||
for path in paths:
|
|
||||||
if os.path.exists(path):
|
|
||||||
ip_path = path
|
|
||||||
break
|
|
||||||
return ip_path
|
|
||||||
|
|
||||||
def get_default_interfaces(self, ip_path):
|
def get_default_interfaces(self, ip_path):
|
||||||
# Use the commands:
|
# Use the commands:
|
||||||
# ip -4 route get 8.8.8.8 -> Google public DNS
|
# ip -4 route get 8.8.8.8 -> Google public DNS
|
||||||
|
@ -730,6 +723,7 @@ def run_setup(module):
|
||||||
return setup_result
|
return setup_result
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
global module
|
||||||
module = AnsibleModule(
|
module = AnsibleModule(
|
||||||
argument_spec = dict()
|
argument_spec = dict()
|
||||||
)
|
)
|
||||||
|
|
|
@ -36,12 +36,11 @@ if os.path.exists('/etc/master.passwd'):
|
||||||
# That is, this won't work on FreeBSD.
|
# That is, this won't work on FreeBSD.
|
||||||
|
|
||||||
def get_bin_path(module, arg):
|
def get_bin_path(module, arg):
|
||||||
if os.path.exists('/usr/sbin/%s' % arg):
|
bin = module.get_bin_path(arg)
|
||||||
return '/usr/sbin/%s' % arg
|
if bin is None:
|
||||||
elif os.path.exists('/sbin/%s' % arg):
|
|
||||||
return '/sbin/%s' % arg
|
|
||||||
else:
|
|
||||||
module.fail_json(msg="Cannot find %s" % arg)
|
module.fail_json(msg="Cannot find %s" % arg)
|
||||||
|
else:
|
||||||
|
return bin
|
||||||
|
|
||||||
def user_del(module, user, **kwargs):
|
def user_del(module, user, **kwargs):
|
||||||
cmd = [get_bin_path(module, 'userdel')]
|
cmd = [get_bin_path(module, 'userdel')]
|
||||||
|
|
Loading…
Reference in a new issue