Merge pull request #6220 from trevorah/ansible.git
apt_repository: autoinstall python-apt if not available
This commit is contained in:
commit
f6a02d9b2c
1 changed files with 15 additions and 2 deletions
|
@ -86,6 +86,16 @@ except ImportError:
|
||||||
|
|
||||||
VALID_SOURCE_TYPES = ('deb', 'deb-src')
|
VALID_SOURCE_TYPES = ('deb', 'deb-src')
|
||||||
|
|
||||||
|
def install_python_apt(module):
|
||||||
|
|
||||||
|
if not module.check_mode:
|
||||||
|
apt_get_path = module.get_bin_path('apt-get')
|
||||||
|
if apt_get_path:
|
||||||
|
rc, so, se = module.run_command('%s update && %s install python-apt -y -q' % (apt_get_path, apt_get_path))
|
||||||
|
if rc == 0:
|
||||||
|
global apt, apt_pkg
|
||||||
|
import apt
|
||||||
|
import apt_pkg
|
||||||
|
|
||||||
class InvalidSource(Exception):
|
class InvalidSource(Exception):
|
||||||
pass
|
pass
|
||||||
|
@ -337,12 +347,15 @@ def main():
|
||||||
repo=dict(required=True),
|
repo=dict(required=True),
|
||||||
state=dict(choices=['present', 'absent'], default='present'),
|
state=dict(choices=['present', 'absent'], default='present'),
|
||||||
update_cache = dict(aliases=['update-cache'], type='bool', default='yes'),
|
update_cache = dict(aliases=['update-cache'], type='bool', default='yes'),
|
||||||
|
# this should not be needed, but exists as a failsafe
|
||||||
|
install_python_apt=dict(required=False, default="yes", type='bool'),
|
||||||
),
|
),
|
||||||
supports_check_mode=True,
|
supports_check_mode=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
if not HAVE_PYTHON_APT:
|
params = module.params
|
||||||
module.fail_json(msg='Could not import python modules: apt_pkg. Please install python-apt package.')
|
if params['install_python_apt'] and not HAVE_PYTHON_APT and not module.check_mode:
|
||||||
|
install_python_apt(module)
|
||||||
|
|
||||||
repo = module.params['repo']
|
repo = module.params['repo']
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
|
|
Loading…
Reference in a new issue