"""Move a changes file to a different queue and mark as approved for the
source queue"""
- chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one()
- chg.approved_for = srcqueue.policy_queue_id
+ try:
+ chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one()
+ except NoResultFound:
+ return False
+
+ chg.approved_for_id = srcqueue.policy_queue_id
for f in chg.files:
# update the changes_pending_files row
f.queue = destqueue
- utils.move(os.path.join(srcqueue.path, f.filename), destqueue.path, perms=int(destqueue.perms, 8))
+ # Only worry about unprocessed files
+ if not f.processed:
+ utils.move(os.path.join(srcqueue.path, f.filename), destqueue.path, perms=int(destqueue.perms, 8))
- utils.move(os.path.join(new.path, upload.pkg.changes_file), destqueue.path, perms=int(destqueue.perms, 8))
+ utils.move(os.path.join(srcqueue.path, upload.pkg.changes_file), destqueue.path, perms=int(destqueue.perms, 8))
chg.in_queue = destqueue
session.commit()
+ return True
+
__all__.append('changes_to_queue')
-def new_accept(upload, session):
+def new_accept(upload, dry_run, session):
print "ACCEPT"
- cnf = Config()
- if not Options["No-Action"]:
+
+ if not dry_run:
+ cnf = Config()
+
(summary, short_summary) = upload.build_summaries()
# XXX: mhy: I think this is wrong as these are all attributes on the
else:
# Just a normal upload, accept it...
(summary, short_summary) = upload.build_summaries()
- srcqueue = get_policy_queue('new', session)
destqueue = get_policy_queue('newstage', session)
+ srcqueue = get_policy_queue_from_path(upload.pkg.directory, session)
+
+ if not srcqueue:
+ # Assume NEW and hope for the best
+ srcqueue = get_policy_queue('new', session)
+
changes_to_queue(upload, srcqueue, destqueue, session)
__all__.append('new_accept')