finally:
os.unlink(path)
-def changes_to_unchecked(upload, session):
- """move a changes file to unchecked"""
- unchecked = get_policy_queue('unchecked', session );
+class clean_holding(object):
+ def __init__(self,pkg):
+ self.pkg = pkg
+
+ def __enter__(self):
+ pass
+
+ def __exit__(self, type, value, traceback):
+ h = Holding()
+
+ for f in self.pkg.files.keys():
+ if os.path.exists(os.path.join(h.holding_dir, f)):
+ os.unlink(os.path.join(h.holding_dir, f))
-# changes.in_queue = unchecked
+
+
+def changes_to_newstage(upload, session):
+ """move a changes file to newstage"""
+ new = get_policy_queue('new', session );
+ newstage = get_policy_queue('newstage', session );
+
+ # changes.in_queue = newstage
chg = session.query(DBChange).filter_by(changesname=os.path.basename(upload.pkg.changes_file)).one()
- chg.approved_for = unchecked.policy_queue_id
+ chg.approved_for = newstage.policy_queue_id
- for f in upload.pkg.files:
+ for f in chg.files:
# update the changes_pending_files row
- f.queue = unchecked
+ f.queue = newstage
+ utils.move(os.path.join(new.path, f.filename), newstage.path, perms=int(newstage.perms, 8))
- # actually move files
- upload.move_to_queue(unchecked)
+ utils.move(os.path.join(new.path, upload.pkg.changes_file), newstage.path, perms=int(newstage.perms, 8))
+ chg.in_queue = newstage
def _accept(upload, session):
if Options["No-Action"]:
return
(summary, short_summary) = upload.build_summaries()
-# upload.accept(summary, short_summary, targetqueue)
- changes_to_unchecked(upload, session)
+ # upload.accept(summary, short_summary, targetqueue)
+
+ changes_to_newstage(upload, session)
def do_accept(upload, session):
print "ACCEPT"
try:
with lock_package(u.pkg.changes["source"]):
- if not recheck(u, session):
- return
+ with clean_holding(u.pkg):
+ if not recheck(u, session):
+ return
# FIXME: This does need byhand checks added!
new = determine_new(u.pkg.changes, files)