X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fdbconn.py;h=b29137221672d7f698fd7459a1f12c0a2ff1c630;hb=1e1457bde3318c6605b4c97d4299803fdaf8e774;hp=2c4d1a0e470747d07371b60e2484584567067f72;hpb=b7e5c9a6deda1018da9023d1d01acec86e165ba4;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index 2c4d1a0e..b2913722 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -203,8 +203,8 @@ class DBConn(Singleton): Returns database id for given override C{type}. Results are kept in a cache during runtime to minimize database queries. - @type type: string - @param type: The name of the override type + @type override_type: string + @param override_type: The name of the override type @rtype: int @return: the database id for the given override type @@ -398,11 +398,11 @@ class DBConn(Singleton): else: row = cursor.fetchone() - if row[1] != size or row[2] != md5sum: + if row[1] != int(size) or row[2] != md5sum: res = -2 else: - self.caches[cachename].SetValue(values, row[0]) + self.caches['files'].SetValue(values, row[0]) res = row[0] return res @@ -500,10 +500,10 @@ class DBConn(Singleton): @type bin_id: int @param bin_id: the id of the binary - @type fullpath: string - @param fullpath: the path of the file being associated with the binary + @type fullpaths: list + @param fullpaths: the list of paths of the file being associated with the binary - @return True upon success + @return: True upon success """ c = self.db_con.cursor() @@ -514,6 +514,8 @@ class DBConn(Singleton): for fullpath in fullpaths: (path, file) = os.path.split(fullpath) + if path.startswith( "./" ): + path = path[2:] # Get the necessary IDs ... file_id = self.get_or_set_contents_file_id(file) path_id = self.get_or_set_contents_path_id(path) @@ -539,20 +541,22 @@ class DBConn(Singleton): @type fullpaths: list @param fullpaths: the list of paths of the file being associated with the binary - @return True upon success + @return: True upon success """ c = self.db_con.cursor() c.execute("BEGIN WORK") try: - arch_id = self.get_architecture_id(package[Architecture]) + arch_id = self.get_architecture_id(package['Architecture']) - # Remove any already existing recorded files for this package + # Remove any already existing recorded files for this package c.execute("""DELETE FROM pending_content_associations WHERE package=%(Package)s AND version=%(Version)s - AND arch_id=%d""" % arch_id, package ) + AND architecture=%(ArchID)s""", {'Package': package['Package'], + 'Version': package['Version'], + 'ArchID': arch_id}) for fullpath in fullpaths: (path, file) = os.path.split(fullpath)