[yum-commits] yum/repoMDObject.py

zpavlas at osuosl.org zpavlas at osuosl.org
Mon Jul 15 12:19:51 UTC 2013


 yum/repoMDObject.py |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 6a65f13183ee77a32f68c65ce5f47025f84509c7
Author: Zdenek Pavlas <zpavlas at redhat.com>
Date:   Thu Jul 11 14:11:06 2013 +0200

    RepoMD: fix "distro" tag parsing/dumping
    
    md = yum.repoMDObject.RepoMD('foo', '/path-to/fedora/repomd.xml')
    md.dump_xml() => traceback
    
    We parse self.tags['distro'] to a dict, but dump_xml() assumes it's
    a list of 2-tuples (API users probably set it that way).
    Just handle both.

diff --git a/yum/repoMDObject.py b/yum/repoMDObject.py
index 97256c6..88b82dc 100755
--- a/yum/repoMDObject.py
+++ b/yum/repoMDObject.py
@@ -234,7 +234,14 @@ class RepoMD:
             for item in self.tags['repo']:
                 tag = """   <repo>%s</repo>\n""" % (to_xml(item))
                 tags += tag
-            for (cpeid, item) in self.tags['distro']:
+            distro = self.tags['distro']
+            if isinstance(distro, dict):
+                lst = []
+                for cpeid in sorted(distro):
+                    for item in sorted(distro[cpeid]):
+                        lst.append((cpeid, item))
+                distro = lst
+            for (cpeid, item) in distro:
                 if cpeid:
                     tag = """   <distro cpeid="%s">%s</distro>\n""" % (
                                 to_xml(cpeid, attrib=True), to_xml(item))


More information about the Yum-commits mailing list