Merge branch '5853-python-2.5-apt_repository-fix' of https://github.com/timurbatyrshin/ansible into timurbatyrshin-5853-python-2.5-apt_repository-fix
This commit is contained in:
commit
4ab996621d
2 changed files with 33 additions and 5 deletions
|
@ -384,7 +384,10 @@ def main():
|
||||||
try:
|
try:
|
||||||
cache = apt.Cache()
|
cache = apt.Cache()
|
||||||
if p['default_release']:
|
if p['default_release']:
|
||||||
apt_pkg.config['APT::Default-Release'] = p['default_release']
|
try:
|
||||||
|
apt_pkg.config['APT::Default-Release'] = p['default_release']
|
||||||
|
except AttributeError:
|
||||||
|
apt_pkg.Config['APT::Default-Release'] = p['default_release']
|
||||||
# reopen cache w/ modified config
|
# reopen cache w/ modified config
|
||||||
cache.open(progress=None)
|
cache.open(progress=None)
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,10 @@ apt_repository: repo='ppa:nginx/stable'
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import glob
|
import glob
|
||||||
import json
|
try:
|
||||||
|
import json
|
||||||
|
except ImportError:
|
||||||
|
import simplejson as json
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import tempfile
|
import tempfile
|
||||||
|
@ -110,14 +113,14 @@ class InvalidSource(Exception):
|
||||||
class SourcesList(object):
|
class SourcesList(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.files = {} # group sources by file
|
self.files = {} # group sources by file
|
||||||
self.default_file = apt_pkg.config.find_file('Dir::Etc::sourcelist')
|
self.default_file = self._apt_cfg_file('Dir::Etc::sourcelist')
|
||||||
|
|
||||||
# read sources.list if it exists
|
# read sources.list if it exists
|
||||||
if os.path.isfile(self.default_file):
|
if os.path.isfile(self.default_file):
|
||||||
self.load(self.default_file)
|
self.load(self.default_file)
|
||||||
|
|
||||||
# read sources.list.d
|
# read sources.list.d
|
||||||
for file in glob.iglob('%s/*.list' % apt_pkg.config.find_dir('Dir::Etc::sourceparts')):
|
for file in glob.iglob('%s/*.list' % self._apt_cfg_dir('Dir::Etc::sourceparts')):
|
||||||
self.load(file)
|
self.load(file)
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
|
@ -132,7 +135,7 @@ class SourcesList(object):
|
||||||
if '/' in filename:
|
if '/' in filename:
|
||||||
return filename
|
return filename
|
||||||
else:
|
else:
|
||||||
return os.path.abspath(os.path.join(apt_pkg.config.find_dir('Dir::Etc::sourceparts'), filename))
|
return os.path.abspath(os.path.join(self._apt_cfg_dir('Dir::Etc::sourceparts'), filename))
|
||||||
|
|
||||||
def _suggest_filename(self, line):
|
def _suggest_filename(self, line):
|
||||||
def _cleanup_filename(s):
|
def _cleanup_filename(s):
|
||||||
|
@ -176,6 +179,28 @@ class SourcesList(object):
|
||||||
|
|
||||||
return valid, enabled, source, comment
|
return valid, enabled, source, comment
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _apt_cfg_file(filespec):
|
||||||
|
'''
|
||||||
|
Wrapper for `apt_pkg` module for running with Python 2.5
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
result = apt_pkg.config.find_file(filespec)
|
||||||
|
except AttributeError:
|
||||||
|
result = apt_pkg.Config.FindFile(filespec)
|
||||||
|
return result
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _apt_cfg_dir(dirspec):
|
||||||
|
'''
|
||||||
|
Wrapper for `apt_pkg` module for running with Python 2.5
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
result = apt_pkg.config.find_dir(dirspec)
|
||||||
|
except AttributeError:
|
||||||
|
result = apt_pkg.Config.FindDir(dirspec)
|
||||||
|
return result
|
||||||
|
|
||||||
def load(self, file):
|
def load(self, file):
|
||||||
group = []
|
group = []
|
||||||
f = open(file, 'r')
|
f = open(file, 'r')
|
||||||
|
|
Loading…
Reference in a new issue