X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_accepted.py;h=e55ac54d0a320cd53e4cc92e932103392aecdacd;hb=4053937754287e909af9017a9b191d48ef567f40;hp=07d611d5f0bac72c2d88f48de6f7288bc94c599b;hpb=7977dd3c83fd5f1c03ec1e5d79df90ca2663354c;p=dak.git diff --git a/dak/process_accepted.py b/dak/process_accepted.py index 07d611d5..e55ac54d 100755 --- a/dak/process_accepted.py +++ b/dak/process_accepted.py @@ -29,8 +29,13 @@ ############################################################################### -import errno, fcntl, os, sys, time, re -import apt_pkg +import errno +import fcntl +import os +import sys +import time +import re +import apt_pkg, commands from daklib import database from daklib import logging from daklib import queue @@ -97,8 +102,10 @@ class Urgency_Log: else: os.unlink(self.log_filename) + ############################################################################### + def reject (str, prefix="Rejected: "): global reject_message if str: @@ -163,7 +170,7 @@ def init(): ('n',"no-action","Dinstall::Options::No-Action"), ('p',"no-lock", "Dinstall::Options::No-Lock"), ('s',"no-mail", "Dinstall::Options::No-Mail"), - ('d',"directory", "Dinstall::Options::Directory")] + ('d',"directory", "Dinstall::Options::Directory", "HasArg")] for i in ["automatic", "help", "no-action", "no-lock", "no-mail", "version", "directory"]: @@ -183,13 +190,7 @@ def init(): if len(changes_files) > 0: utils.warn("Directory provided so ignoring files given on command line") - dir = Cnf["Dinstall::Options::Directory"] - try: - # Much of the rest of p-a depends on being in the right place - os.chdir(dir) - changes_files = [x for x in os.listdir(dir) if x.endswith('.changes')] - except OSError, e: - utils.fubar("Failed to read list from directory %s (%s)" % (dir, e)) + changes_files = utils.get_changes_files(Cnf["Dinstall::Options::Directory"]) Upload = queue.Upload(Cnf) projectB = Upload.projectB @@ -389,6 +390,12 @@ def install (): suite_id = database.get_suite_id(suite) projectB.query("INSERT INTO bin_associations (suite, bin) VALUES (%d, currval('binaries_id_seq'))" % (suite_id)) + if not database.copy_temporary_contents(package, version, architecture, newfile, reject): + print "REJECT\n" + reject_message, + projectB.query("ROLLBACK") + raise MissingContents, "No contents stored for package %s, and couldn't determine contents of %s" % (package, newfile ) + + orig_tar_id = Upload.pkg.orig_tar_id orig_tar_location = Upload.pkg.orig_tar_location @@ -432,7 +439,6 @@ def install (): utils.copy(pkg.changes_file, Cnf["Dir::Root"] + dest) for dest in copy_dot_dak.keys(): utils.copy(Upload.pkg.changes_file[:-8]+".dak", dest) - projectB.query("COMMIT WORK") # Move the .changes into the 'done' directory