diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2005-09-23 21:35:27 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2005-09-23 21:35:27 +0000 |
commit | dc85e4452b48beb7790c510e40759c12fcb05b0b (patch) | |
tree | e37cdf4706ed6a5535b0126264cc3487d450f18b /src/lib/Server/Plugins/Pkgmgr.py | |
parent | eec73f3979d507617ecf2df59d3d242b58487aa7 (diff) | |
download | bcfg2-dc85e4452b48beb7790c510e40759c12fcb05b0b.tar.gz bcfg2-dc85e4452b48beb7790c510e40759c12fcb05b0b.tar.bz2 bcfg2-dc85e4452b48beb7790c510e40759c12fcb05b0b.zip |
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
Diffstat (limited to 'src/lib/Server/Plugins/Pkgmgr.py')
-rw-r--r-- | src/lib/Server/Plugins/Pkgmgr.py | 20 |
1 files changed, 15 insertions, 5 deletions
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 |