]> git.donarmstrong.com Git - dak.git/blobdiff - daklib/dbconn.py
Revert "for the time we test, modify the path to a non-world-visible one"
[dak.git] / daklib / dbconn.py
index 5bd1d76595717043fb744d1715d33612e8d9c442..3fad3f50dbba4701bdce5cabaee80eba51c06096 100755 (executable)
@@ -452,7 +452,33 @@ class DBConn(Singleton):
 
         return id
 
-    def insert_content_paths(self, package, fullpaths):
+    def get_suite_architectures(self, suite):
+        """
+        Returns list of architectures for C{suite}.
+
+        @type suite: string, int
+        @param suite: the suite name or the suite_id
+
+        @rtype: list
+        @return: the list of architectures for I{suite}
+        """
+
+        suite_id = None
+        if type(suite) == str:
+            suite_id = self.get_suite_id(suite)
+        elif type(suite) == int:
+            suite_id = suite
+        else:
+            return None
+
+        c = self.db_con.cursor()
+        c.execute( """SELECT a.arch_string FROM suite_architectures sa
+                      JOIN architecture a ON (a.id = sa.architecture)
+                      WHERE suite='%s'""" % suite_id )
+
+        return map(lambda x: x[0], c.fetchall())
+
+    def insert_content_paths(self, bin_id, fullpaths):
         """
         Make sure given path is associated with given binary id
 
@@ -466,11 +492,47 @@ class DBConn(Singleton):
 
         c = self.db_con.cursor()
 
+        c.execute("BEGIN WORK")
+        try:
+
+            for fullpath in fullpaths:
+                (path, file) = os.path.split(fullpath)
+
+                # Get the necessary IDs ...
+                file_id = self.get_or_set_contents_file_id(file)
+                path_id = self.get_or_set_contents_path_id(path)
+
+                c.execute("""INSERT INTO content_associations
+                               (binary_pkg, filepath, filename)
+                           VALUES ( '%d', '%d', '%d')""" % (bin_id, path_id, file_id) )
+
+            c.execute("COMMIT")
+            return True
+        except:
+            traceback.print_exc()
+            c.execute("ROLLBACK")
+            return False
+
+    def insert_pending_content_paths(self, package, fullpaths):
+        """
+        Make sure given paths are temporarily associated with given
+        package
+
+        @type package: dict
+        @param package: the package to associate with should have been read in from the binary control file
+        @type fullpaths: list
+        @param fullpaths: the list of paths of the file being associated with the binary
+
+        @return True upon success
+        """
+
+        c = self.db_con.cursor()
+
         c.execute("BEGIN WORK")
         try:
 
                 # Remove any already existing recorded files for this package
-            c.execute("""DELETE FROM temp_content_associations
+            c.execute("""DELETE FROM pending_content_associations
                          WHERE package=%(Package)s
                          AND version=%(Version)s""", package )
 
@@ -481,7 +543,7 @@ class DBConn(Singleton):
                 file_id = self.get_or_set_contents_file_id(file)
                 path_id = self.get_or_set_contents_path_id(path)
 
-                c.execute("""INSERT INTO temp_content_associations
+                c.execute("""INSERT INTO pending_content_associations
                                (package, version, filepath, filename)
                            VALUES (%%(Package)s, %%(Version)s, '%d', '%d')""" % (path_id, file_id),
                           package )