From eae6b6c8932496b374170e990a756ad1d4ac925c Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Thu, 24 Jun 2010 15:45:53 +0000 Subject: Packages: Add RawURL support for APT sources (Patch from Remi Broemeling for Ticket #896) Signed-off-by: Sol Jerome git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5958 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Packages.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/lib/Server/Plugins/Packages.py b/src/lib/Server/Plugins/Packages.py index 2e0b3bd4a..ac20ca1f0 100644 --- a/src/lib/Server/Plugins/Packages.py +++ b/src/lib/Server/Plugins/Packages.py @@ -384,7 +384,10 @@ class APTSource(Source): rawurl, blacklist, recommended): Source.__init__(self, basepath, url, version, arches, components, groups, rawurl, blacklist, recommended) - self.cachefile = self.escape_url(self.url + '@' + version) + '.data' + if not self.rawurl: + self.cachefile = self.escape_url(self.url + '@' + self.version) + '.data' + else: + self.cachefile = self.escape_url(self.rawurl) + '.data' self.pkgnames = set() def save_state(self): @@ -398,17 +401,14 @@ class APTSource(Source): self.pkgnames, self.deps, self.provides = cPickle.load(data) def get_urls(self): - return ["%sdists/%s/%s/binary-%s/Packages.gz" % \ - (self.url, self.version, part, arch) for part in self.components \ - for arch in self.arches] + if not self.rawurl: + return ["%sdists/%s/%s/binary-%s/Packages.gz" % \ + (self.url, self.version, part, arch) for part in self.components \ + for arch in self.arches] + else: + return ["%sPackages.gz" % (self.rawurl)] urls = property(get_urls) - def get_aptsrc(self): - return ["deb %s %s %s" % (self.url, self.version, - " ".join(self.components)), - "deb-src %s %s %s" % (self.url, self.version, - " ".join(self.components))] - def read_files(self): bdeps = dict() bprov = dict() @@ -417,7 +417,12 @@ class APTSource(Source): else: depfnames = ['Depends', 'Pre-Depends'] for fname in self.files: - barch = [x for x in fname.split('@') if x.startswith('binary-')][0][7:] + if not self.rawurl: + barch = [x for x in fname.split('@') if x.startswith('binary-')][0][7:] + else: + # RawURL entries assume that they only have one + # element and that it is the architecture of the source. + barch = self.arches[0] if barch not in bdeps: bdeps[barch] = dict() bprov[barch] = dict() -- cgit v1.2.3-1-g7c22