summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2012-11-01 02:24:57 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-30 01:22:51 +0100
commit540e2bc637ac99e60bc236a62ff8e885a705b562 (patch)
treedfb366966e353f3613413d7965775eb009842191
parentbe0714757cbd4dc4748855e72bcec4476fd07e38 (diff)
downloadbcfg2-540e2bc637ac99e60bc236a62ff8e885a705b562.tar.gz
bcfg2-540e2bc637ac99e60bc236a62ff8e885a705b562.tar.bz2
bcfg2-540e2bc637ac99e60bc236a62ff8e885a705b562.zip
Packages: get version number from repository
-rw-r--r--src/lib/Server/Plugins/Packages/Apt.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/Server/Plugins/Packages/Apt.py b/src/lib/Server/Plugins/Packages/Apt.py
index f76bf7fa1..d999e21c8 100644
--- a/src/lib/Server/Plugins/Packages/Apt.py
+++ b/src/lib/Server/Plugins/Packages/Apt.py
@@ -16,6 +16,7 @@ class AptSource(Source):
def __init__(self, basepath, xsource, config):
Source.__init__(self, basepath, xsource, config)
self.pkgnames = set()
+ self.versions = dict()
self.url_map = [{'rawurl': self.rawurl, 'url': self.url,
'version': self.version,
@@ -23,13 +24,14 @@ class AptSource(Source):
def save_state(self):
cache = file(self.cachefile, 'wb')
- cPickle.dump((self.pkgnames, self.deps, self.provides),
+ cPickle.dump((self.pkgnames, self.deps, self.provides,
+ self.versions),
cache, 2)
cache.close()
def load_state(self):
data = file(self.cachefile)
- self.pkgnames, self.deps, self.provides = cPickle.load(data)
+ self.pkgnames, self.deps, self.provides, self.versions = cPickle.load(data)
def filter_unknown(self, unknown):
filtered = set([u for u in unknown if u.startswith('choice')])
@@ -50,6 +52,7 @@ class AptSource(Source):
def read_files(self):
bdeps = dict()
bprov = dict()
+ self.versions = dict()
if self.recommended:
depfnames = ['Depends', 'Pre-Depends', 'Recommends']
else:
@@ -66,6 +69,7 @@ class AptSource(Source):
if barch not in bdeps:
bdeps[barch] = dict()
bprov[barch] = dict()
+ self.versions[barch] = dict()
try:
reader = gzip.GzipFile(fname)
except:
@@ -100,6 +104,8 @@ class AptSource(Source):
if dname not in bprov[barch]:
bprov[barch][dname] = set()
bprov[barch][dname].add(pkgname)
+ elif words[0] == 'Version':
+ self.versions[barch][pkgname] = words[1].rstrip().strip()
self.deps['global'] = dict()
self.provides['global'] = dict()