return u
def tagByName(self, tag):
- return self.hdr[tag]
+ data = self.hdr[tag]
+ if type(data) is types.ListType:
+ if len(data) > 0:
+ return data[0]
+ else:
+ return ''
+ else:
+ return data
def listTagByName(self, tag):
"""take a tag that should be a list and make sure it is one"""
return lst
-def generateXML(doc, node, rpmObj, sumtype):
+def generateXML(doc, node, formatns, rpmObj, sumtype):
"""takes an xml doc object and a package metadata entry node, populates a
package node with the md information"""
ns = node.ns()
if rpmObj.localurl is not None:
location.newProp('xml:base', rpmObj.localurl)
location.newProp('href', rpmObj.relativepath)
- format = pkgNode.newChild(None, 'format', None)
- formatns = format.newNs('http://linux.duke.edu/metadata/rpm', 'rpm')
+ format = pkgNode.newChild(ns, 'format', None)
+ #formatns = format.newNs('http://linux.duke.edu/metadata/rpm', 'rpm')
+ #format.setNs(ns)
for tag in ['license', 'vendor', 'group', 'buildhost', 'sourcerpm']:
value = rpmObj.tagByName(tag)
value = utf8String(value)
basedoc = libxml2.newDoc("1.0")
baseroot = basedoc.newChild(None, "metadata", None)
basens = baseroot.newNs('http://linux.duke.edu/metadata/common', None)
+ formatns = baseroot.newNs('http://linux.duke.edu/metadata/rpm', 'rpm')
baseroot.setNs(basens)
basefilepath = os.path.join(cmds['tempdir'], cmds['primaryfile'])
basefile = _gzipOpen(basefilepath, 'w')
basefile.write('<?xml version="1.0" encoding="UTF-8"?>\n')
- basefile.write('<metadata xmlns="http://linux.duke.edu/metadata/common" packages="%s">\n' %
+ basefile.write('<metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="%s">\n' %
pkgcount)
# setup the file list doc
continue
else:
try:
- node = dumpMetadata.generateXML(basedoc, baseroot, mdobj, cmds['sumtype'])
+ node = dumpMetadata.generateXML(basedoc, baseroot, formatns, mdobj, cmds['sumtype'])
except dumpMetadata.MDError, e:
errorprint(_('\nAn error occurred creating primary metadata: %s') % e)
continue