]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/dbconn.py
get bootstrap working again
[dak.git] / daklib / dbconn.py
index 21c9cc626a82956b8e75fb207073cf0abb692e09..3fad3f50dbba4701bdce5cabaee80eba51c06096 100755 (executable)
@@ -478,7 +478,7 @@ class DBConn(Singleton):
 
         return map(lambda x: x[0], c.fetchall())
 
-    def insert_content_paths(self, package, fullpaths):
+    def insert_content_paths(self, bin_id, fullpaths):
         """
         Make sure given path is associated with given binary id
 
@@ -492,6 +492,42 @@ 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: