summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/Pkgmgr.py
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2005-09-23 21:35:27 +0000
committerNarayan Desai <desai@mcs.anl.gov>2005-09-23 21:35:27 +0000
commitdc85e4452b48beb7790c510e40759c12fcb05b0b (patch)
treee37cdf4706ed6a5535b0126264cc3487d450f18b /src/lib/Server/Plugins/Pkgmgr.py
parenteec73f3979d507617ecf2df59d3d242b58487aa7 (diff)
downloadbcfg2-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.py20
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