## Connection functions
def __createconn(self):
cnf = Config()
- connstr = "dbname=%s" % cnf["DB::Name"]
+ connstr = "dbname=%s" % "projectbstew" #cnf["DB::Name"]
+ print( "connstr: %s "% connstr)
if cnf["DB::Host"]:
connstr += " host=%s" % cnf["DB::Host"]
if cnf["DB::Port"] and cnf["DB::Port"] != "-1":
@return: the database id for the given suite
"""
- return int(self.__get_id('id', 'suite', 'suite_name', suite))
+ suiteid = self.__get_id('id', 'suite', 'suite_name', suite)
+ if suiteid is None:
+ return None
+ else:
+ return int(suiteid)
def get_section_id(self, section):
"""
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
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
@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()
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)
- c.execute("""INSERT INTO content_associations
+ c.execute("""INSERT INTO deb_contents
+
(binary_pkg, filepath, filename)
VALUES ( '%d', '%d', '%d')""" % (bin_id, path_id, file_id) )
@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'])
- # 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""", package )
+ AND version=%(Version)s
+ AND architecture=%(ArchID)s""", {'Package': package['Package'],
+ 'Version': package['Version'],
+ 'ArchID': arch_id})
for fullpath in fullpaths:
(path, file) = os.path.split(fullpath)
path_id = self.get_or_set_contents_path_id(path)
c.execute("""INSERT INTO pending_content_associations
- (package, version, filepath, filename)
- VALUES (%%(Package)s, %%(Version)s, '%d', '%d')""" % (path_id, file_id),
- package )
+ (package, version, architecture, filepath, filename)
+ VALUES (%%(Package)s, %%(Version)s, '%d', '%d', '%d')"""
+ % (arch_id, path_id, file_id), package )
+
c.execute("COMMIT")
return True
except: