X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_accepted.py;h=0d5a5387e3fbcf556c96872608d93cfc843f9005;hb=d95b0a148ea38f20e44c1833bb21901f856c4f04;hp=5e09243ffa545b22f836f9e2fa57191e4cfd31d2;hpb=92ed7fbd0802e5c0b4ab9d7efe57fea0e6cc8594;p=dak.git diff --git a/dak/process_accepted.py b/dak/process_accepted.py index 5e09243f..0d5a5387 100755 --- a/dak/process_accepted.py +++ b/dak/process_accepted.py @@ -274,9 +274,13 @@ def install (): # Begin a transaction; if we bomb out anywhere between here and the COMMIT WORK below, the DB will not be changed. projectB.query("BEGIN WORK") - # Check the hashes are all present: HACK: Can go away once all dak files - # are known to be newer than the shasum changes - utils.ensure_hashes(changes, dsc, files, dsc_files) + # Ensure that we have all the hashes we need below. + rejmsg = utils.ensure_hashes(changes, dsc, files, dsc_files) + if len(rejmsg) > 0: + # There were errors. Print them and SKIP the changes. + for msg in rejmsg: + utils.warn(msg) + return # Add the .dsc file to the DB for file in files.keys(): @@ -314,7 +318,7 @@ def install (): files_id = database.get_files_id(filename, dsc_files[dsc_file]["size"], dsc_files[dsc_file]["md5sum"], dsc_location_id) # FIXME: needs to check for -1/-2 and or handle exception if files_id == None: - files_id = database.set_files_id (filename, dsc_files[dsc_file]["size"], dsc_files[dsc_file]["md5sum"], files[file]["sha1sum"], files[file]["sha256sum"], dsc_location_id) + files_id = database.set_files_id (filename, dsc_files[dsc_file]["size"], dsc_files[dsc_file]["md5sum"], files[dsc_file]["sha1sum"], files[dsc_file]["sha256sum"], dsc_location_id) projectB.query("INSERT INTO dsc_files (source, file) VALUES (currval('source_id_seq'), %d)" % (files_id)) # Add the src_uploaders to the DB @@ -404,7 +408,7 @@ def install (): if new_files_id == None: utils.copy(old_filename, Cnf["Dir::Pool"] + new_filename) new_files_id = database.set_files_id(new_filename, file_size, file_md5sum, file_sha1sum, file_sha256sum, dsc_location_id) - projectB.query("UPDATE dsc_files SET file = %s WHERE source = %s AND file = %s" % (new_files_id, source_id, orig_tar_id)) + projectB.query("UPDATE dsc_files SET file = %s WHERE source = %s AND file = %s" % (new_files_id, database.get_source_id(changes["source"], changes["version"]), orig_tar_id)) # Install the files into the pool for file in files.keys():