[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] Move more objects into get_packages_from_ftp()



Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
---
 dak/override.py           |    5 +----
 dak/override_disparity.py |    6 +-----
 daklib/utils.py           |   25 +++++++++++++++++++++----
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/dak/override.py b/dak/override.py
index ddb829b..75edbb5 100755
--- a/dak/override.py
+++ b/dak/override.py
@@ -66,9 +66,7 @@ def check_override_compliance(package, priority, suite, cnf, session):
     arches -= set(["source", "all"])
     for arch in arches:
         for component in components:
-            temp_filename = utils.get_packages_from_ftp(cnf['Dir::Root'], suite, component, arch)
-            packages = utils.open_file(temp_filename)
-            Packages = apt_pkg.ParseTagFile(packages)
+            Packages = utils.get_packages_from_ftp(cnf['Dir::Root'], suite, component, arch)
             while Packages.Step():
                 package_name = Packages.Section.Find("Package")
                 dep_list = Packages.Section.Find("Depends")
@@ -82,7 +80,6 @@ def check_override_compliance(package, priority, suite, cnf, session):
                             for i in d:
                                 if i[0] == package:
                                     rdepends.add(package_name)
-            os.unlink(temp_filename)
 
     query = """SELECT o.package, p.level, p.priority
                FROM override o
diff --git a/dak/override_disparity.py b/dak/override_disparity.py
index 383766e..fd3bc50 100755
--- a/dak/override_disparity.py
+++ b/dak/override_disparity.py
@@ -87,9 +87,7 @@ def main():
     arches -= set(['source', 'all'])
     for arch in arches:
         for component in components:
-            temp_filename = utils.get_packages_from_ftp(cnf['Dir::Root'], suite, component, arch)
-            packages_file = utils.open_file(temp_filename)
-            Packages = apt_pkg.ParseTagFile(packages_file)
+            Packages = utils.get_packages_from_ftp(cnf['Dir::Root'], suite, component, arch)
             while Packages.Step():
                 package = Packages.Section.Find('Package')
                 dep_list = Packages.Section.Find('Depends')
@@ -101,7 +99,6 @@ def main():
                             if not depends.has_key(package):
                                 depends[package] = set()
                             depends[package].add(i[0])
-            os.unlink(temp_filename)
 
     priorities = {}
     query = """SELECT DISTINCT o.package, p.level, p.priority, m.name
@@ -115,7 +112,6 @@ def main():
                AND ba.suite = s.id
                AND p.level <> 0""" % suite
     packages = session.execute(query)
-    session.commit()
 
     out = {}
     if Options.has_key('file'):
diff --git a/daklib/utils.py b/daklib/utils.py
index dffad27..b5e090d 100755
--- a/daklib/utils.py
+++ b/daklib/utils.py
@@ -1576,10 +1576,24 @@ def parse_wnpp_bug_file(file = "/srv/ftp-master.debian.org/scripts/masterfiles/w
 
 def get_packages_from_ftp(root, suite, component, architecture):
     """
-    Returns a filename containing data collected by aggregating Packages.gz files
-    gathered for each architecture.
+    Returns an object containing apt_pkg-parseable data collected by
+    aggregating Packages.gz files gathered for each architecture.
+
+    @type root: string
+    @param root: path to ftp archive root directory
+
+    @type suite: string
+    @param suite: suite to extract files from
+
+    @type component: string
+    @param component: component to extract files from
+
+    @type architecture: string
+    @param architecture: architecture to extract files from
+
+    @rtype: TagFile
+    @return: apt_pkg class containing package data
 
-    Returned file has to be manually deleted afterwards.
     """
     filename = "%s/dists/%s/%s/binary-%s/Packages.gz" % (root, suite, component, architecture)
     (fd, temp_file) = temp_filename()
@@ -1591,4 +1605,7 @@ def get_packages_from_ftp(root, suite, component, architecture):
         (result, output) = commands.getstatusoutput("gunzip -c %s >> %s" % (filename, temp_file))
         if (result != 0):
             fubar("Gunzip invocation failed!\n%s\n" % (output), result)
-    return temp_file
+    packages = open_file(temp_file)
+    Packages = apt_pkg.ParseTagFile(packages)
+    os.unlink(temp_file)
+    return Packages
-- 
1.5.6.5


Reply to: