From dc85e4452b48beb7790c510e40759c12fcb05b0b Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Fri, 23 Sep 2005 21:35:27 +0000 Subject: fix multi-regex stuff (Logical change 1.319) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1300 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Pkgmgr.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/lib/Server/Plugins/Pkgmgr.py b/src/lib/Server/Plugins/Pkgmgr.py index 02e64db2e..338464523 100644 --- a/src/lib/Server/Plugins/Pkgmgr.py +++ b/src/lib/Server/Plugins/Pkgmgr.py @@ -26,16 +26,26 @@ class PackageEntry(XMLFileBacked): # most attribs will be set from pkg self.packages[pkg.get('name')]['url'] = "%s/%s" % (location.get('uri'), pkg.get('simplefile')) elif pkg.attrib.has_key("file"): - for ptype in self.splitters: - mdata = self.splitters[ptype].match(pkg.get('file')) + if self.splitters.has_key(pkg.get('type')): + mdata = self.splitters[pkg.get('type')].match(pkg.get('file')) if not mdata: + syslog(LOG_ERR, "Failed to match pkg %s" % pkg.get('file')) continue pkgname = mdata.group('name') self.packages[pkgname] = mdata.groupdict() self.packages[pkgname]['url'] = location.get('uri') + '/' + pkg.get('file') - self.packages[pkgname]['type'] = ptype - break - syslog(LOG_ERR, "Failed to match pkg %s" % pkg.get('file')) + else: + derived = [(ptype, self.splitters[ptype].match(pkg.get('file')).groupdict()) + for ptype in self.splitters if self.splitters[ptype].match(pkg.get('file'))] + if not derived: + syslog("Failed to match pkg %s" % pkg.get('file')) + else: + (ptype, mdata) = derived[0] + print mdata + pkgname = mdata['name'] + self.packages[pkgname] = mdata + self.packages[pkgname]['url'] = location.get('uri') + '/' + pkg.get('file') + self.packages[pkgname]['type'] = ptype else: self.packages[pkg.get('name')] = pkg.attrib -- cgit v1.2.3-1-g7c22