from yum import misc, Errors
from yum.sqlutils import executeSQL
+from yum.packageSack import MetaSack
+from yum.packages import YumAvailablePackage
import rpmUtils.transaction
from utils import _, errorprint, MDError
packages = self.conf.pkglist
else:
packages = self.getFileList(self.package_dir, '.rpm')
-
- packages = self.trimRpms(packages)
+
+ if not isinstance(packages, MetaSack):
+ packages = self.trimRpms(packages)
self.pkgcount = len(packages)
self.openMetadataDocs()
self.writeMetadataDocs(packages)
reldir = os.path.join(self.conf.basedir, directory)
else:
reldir = pkgpath
+
+ if not isinstance(pkg, YumAvailablePackage):
+
+ try:
+ po = self.read_in_package(pkg, pkgpath=pkgpath, reldir=reldir)
+ except MDError, e:
+ # need to say something here
+ self.callback.errorlog("\nError %s: %s\n" % (pkg, e))
+ continue
+ else:
+ po = pkg
- try:
- po = self.read_in_package(pkg, pkgpath=pkgpath, reldir=reldir)
- except MDError, e:
- # need to say something here
- self.callback.errorlog("\nError %s: %s\n" % (pkg, e))
- continue
if self.conf.database_only:
po.do_sqlite_dump(self.md_sqlite)
else:
- self.primaryfile.write(po.do_primary_xml_dump())
- self.flfile.write(po.do_filelists_xml_dump())
- self.otherfile.write(po.do_other_xml_dump())
+ self.primaryfile.write(po.xml_dump_primary_metadata())
+ self.flfile.write(po.xml_dump_filelists_metadata())
+ self.otherfile.write(po.xml_dump_other_metadata())
else:
if self.conf.verbose:
self.callback.log(_("Using data from old metadata for %s") % pkg)
del c
return msg
- def do_primary_xml_dump(self):
+ def xml_dump_primary_metadata(self):
msg = """\n<package type="rpm">"""
msg += self._dump_base_items()
msg += self._dump_format_items()
msg += """\n</package>"""
return msg
- def do_filelists_xml_dump(self):
+ def xml_dump_filelists_metadata(self):
msg = """\n<package pkgid="%s" name="%s" arch="%s">
<version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
self.arch, self.epoch, self.ver, self.rel)
msg += "</package>\n"
return msg
- def do_other_xml_dump(self):
+ def xml_dump_other_metadata(self):
msg = """\n<package pkgid="%s" name="%s" arch="%s">
<version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
self.arch, self.epoch, self.ver, self.rel)