X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fqueue.py;h=f912bef19aec4a97470859463e7eae627b1bf65c;hb=cfe38485d37a03806a751988d0ef38e98fe90845;hp=f5f3c65c9e5729c65663072bb578eb3a98a8abcc;hpb=db83ad2307b5d733bcd189a9f4ffa578a9e71444;p=dak.git diff --git a/daklib/queue.py b/daklib/queue.py index f5f3c65c..f912bef1 100755 --- a/daklib/queue.py +++ b/daklib/queue.py @@ -1058,7 +1058,7 @@ class Upload(object): # TODO: Dynamically generate this list for queue_name in [ "byhand", "new", "proposedupdates", "oldproposedupdates", "embargoed", "unembargoed" ]: queue = get_policy_queue(queue_name, session) - if queue and os.path.exists(queue.path, f): + if queue and os.path.exists(os.path.join(queue.path, f)): self.rejects.append("%s file already exists in the %s queue." % (f, queue_name)) if not re_taint_free.match(f): @@ -1217,7 +1217,7 @@ class Upload(object): # Only a limited list of source formats are allowed in each suite for dist in self.pkg.changes["distribution"].keys(): - allowed = [ x.format_name for x in get_suite_src_formats(dist, session) ] + allowed = [ x.format_name for x in dist.srcformats ] if self.pkg.dsc["format"] not in allowed: self.rejects.append("%s: source format '%s' not allowed in %s (accepted: %s) " % (dsc_filename, self.pkg.dsc["format"], dist, ", ".join(allowed))) @@ -1318,8 +1318,8 @@ class Upload(object): # Extract the source try: unpacked = UnpackedSource(dsc_filename) - except: - self.rejects.append("'dpkg-source -x' failed for %s." % dsc_filename) + except Exception, e: + self.rejects.append("'dpkg-source -x' failed for %s. (%s)" % (dsc_filename, str(e))) return if not cnf.Find("Dir::BTSVersionTrack"): @@ -1502,16 +1502,16 @@ class Upload(object): continue # Look in some other queues for the file - queues = ('New', 'Byhand', 'ProposedUpdates', - 'OldProposedUpdates', 'Embargoed', 'Unembargoed') + queue_names = ['new', 'byhand', + 'proposedupdates', 'oldproposedupdates', + 'embargoed', 'unembargoed'] - for queue in queues: - if not cnf.get('Dir::Queue::%s' % queue): + for queue_name in queue_names: + queue = get_policy_queue(queue_name, session) + if not queue: continue - queuefile_path = os.path.join( - cnf['Dir::Queue::%s' % queue], filename - ) + queuefile_path = os.path.join(queue.path, filename) if not os.path.exists(queuefile_path): # Does not exist in this queue @@ -2754,12 +2754,15 @@ distribution.""" orig_files[dsc_name]["path"] = old_file orig_files[dsc_name]["location"] = x.location.location_id else: - # TODO: Record the queues and info in the DB so we don't hardcode all this crap + # TODO: Determine queue list dynamically # Not there? Check the queue directories... - for directory in [ "New", "Byhand", "ProposedUpdates", "OldProposedUpdates", "Embargoed", "Unembargoed" ]: - if not Cnf.has_key("Dir::Queue::%s" % (directory)): + for queue_name in [ "byhand", "new", "proposedupdates", "oldproposedupdates", "embargoed", "unembargoed" ]: + queue = get_policy_queue(queue_name, session) + if not queue: continue - in_otherdir = os.path.join(Cnf["Dir::Queue::%s" % (directory)], dsc_name) + + in_otherdir = os.path.join(queue.path, dsc_name) + if os.path.exists(in_otherdir): in_otherdir_fh = utils.open_file(in_otherdir) actual_md5 = apt_pkg.md5sum(in_otherdir_fh) @@ -2806,10 +2809,10 @@ distribution.""" source_epochless_version = re_no_epoch.sub('', source_version) dsc_filename = "%s_%s.dsc" % (source_package, source_epochless_version) found = False - for q in ["Embargoed", "Unembargoed", "Newstage"]: - if cnf.has_key("Dir::Queue::%s" % (q)): - if os.path.exists(cnf["Dir::Queue::%s" % (q)] + '/' + dsc_filename): - found = True + for queue_name in ["embargoed", "unembargoed", "newstage"]: + queue = get_policy_queue(queue_name, session) + if queue and os.path.exists(os.path.join(queue.path, dsc_filename)): + found = True if not found: self.rejects.append("no source found for %s %s (%s)." % (source_package, source_version, f))