minor changes for handling a packagesack and/or list of package objects as the pkglis...
authorSeth Vidal <skvidal@fedoraproject.org>
Fri, 8 Aug 2008 19:40:46 +0000 (15:40 -0400)
committerSeth Vidal <skvidal@fedoraproject.org>
Fri, 8 Aug 2008 19:40:46 +0000 (15:40 -0400)
the repo from also rename the xml_dump functions - eventually going to remove them.

createrepo/__init__.py
createrepo/utils.py
createrepo/yumbased.py

index 93d094a4abe37765738c5ec50dcb438dc44a0d86..bebea276ee50127fe03d386329ee82af58bf2f82 100644 (file)
@@ -27,6 +27,8 @@ import tempfile
 
 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
@@ -320,8 +322,9 @@ class MetaDataGenerator:
             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)
@@ -450,19 +453,24 @@ class MetaDataGenerator:
                     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)
index 1dc3b0cc39ea6046a2dc150cb6eaf2b911212590..3dd349b01693c30403d2fc0a6a0fab4a669e927f 100644 (file)
@@ -156,6 +156,7 @@ def encodefiletypelist(filetypelist):
     return result
 
 
+
 class MDError(Exception):
     def __init__(self, value=None):
         Exception.__init__(self)
index 6c462c64e936aa425743308ee0b158214cea61b9..09f7a8c18434958fdb7e62e3eac9082f4abffac0 100644 (file)
@@ -389,14 +389,14 @@ class CreateRepoPackage(YumLocalPackage):
             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)
@@ -404,7 +404,7 @@ class CreateRepoPackage(YumLocalPackage):
         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)