[yum-commits] yum/repoMDObject.py

zpavlas at osuosl.org zpavlas at osuosl.org
Tue Jul 23 14:03:28 UTC 2013


 yum/repoMDObject.py |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

New commits:
commit 4b787ee72609966ffcdcd178df047f3bf143f2c3
Author: Zdenek Pavlas <zpavlas at redhat.com>
Date:   Thu Jul 11 14:19:44 2013 +0200

    RepoMD: parse and dump <delta> elements.

diff --git a/yum/repoMDObject.py b/yum/repoMDObject.py
index 88b82dc..97e6797 100755
--- a/yum/repoMDObject.py
+++ b/yum/repoMDObject.py
@@ -39,6 +39,7 @@ class RepoData:
         self.dbversion = None
         self.size      = None
         self.opensize  = None
+        self.deltas    = []
 
         if elem:
             self.parse(elem)
@@ -70,6 +71,10 @@ class RepoData:
                 self.size = child.text
             elif child_name == 'open-size':
                 self.opensize = child.text
+            elif child_name == 'delta':
+                delta = RepoData(child)
+                delta.type = self.type
+                self.deltas.append(delta)
 
     def dump_xml(self):
         msg = ""
@@ -103,10 +108,21 @@ class RepoData:
                                                  xmlname)
                 msg += d_xml
 
+        for delta in self.deltas:
+            # change tag to "delta" and increase indent
+            body = '\n  '.join(delta.dump_xml().split('\n')[1:-2])
+            msg += '  <delta>\n  %s\n  </delta>\n' % body
+
         bottom = """</data>\n"""
         msg += bottom
         return msg
         
+    def getDelta(self, old_timestamp):
+        old_timestamp = int(old_timestamp)
+        for deltamd in self.deltas:
+            if int(deltamd.timestamp) <= old_timestamp:
+                return deltamd
+
 class RepoMD:
     """represents the repomd xml file"""
     


More information about the Yum-commits mailing list