changes = upload.pkg.changes
cnf = Config()
+ # Check for a valid distribution
+ upload.check_distributions()
+
# Make a copy of distribution we can happily trample on
changes["suite"] = copy.copy(changes["distribution"])
oinv, suite, ninv, override)
del changes["suite"][suite]
changes["suite"][override] = 1
- # Validate suites
- for suite in changes["suite"].keys():
- if get_suite(suite, session) is None:
- utils.fubar("%s has invalid suite '%s' (possibly overriden). say wha?" % (changes, suite))
# The main NEW processing loop
done = 0
try:
check_daily_lock()
done = add_overrides (new, upload, session)
+ do_accept(upload, session)
Logger.log(["NEW ACCEPT: %s" % (upload.pkg.changes_file)])
except CantGetLockError:
print "Hello? Operator! Give me the number for 911!"
elif answer == 'E' and not Options["Trainee"]:
new = edit_overrides (new, upload, session)
elif answer == 'M' and not Options["Trainee"]:
- upload.pkg.remove_known_changes()
aborted = upload.do_reject(manual=1,
reject_message=Options["Manual-Reject"],
note=get_new_comments(changes.get("source", ""), session=session))
if not aborted:
+ upload.pkg.remove_known_changes()
Logger.log(["NEW REJECT: %s" % (upload.pkg.changes_file)])
done = 1
elif answer == 'N':
finally:
os.unlink(path)
+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))
+
+
+
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 = newstage.policy_queue_id
for f in chg.files:
# update the changes_pending_files row
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(newstage)
+ utils.move(os.path.join(new.path, upload.pkg.changes_file), newstage.path, perms=int(newstage.perms, 8))
+ chg.in_queue = newstage
+ session.commit()
def _accept(upload, session):
if Options["No-Action"]:
try:
with lock_package(u.pkg.changes["source"]):
- if not recheck(u, session):
- return
-
- # FIXME: This does need byhand checks added!
- new = determine_new(u.pkg.changes, files)
- if new:
- do_new(u, session)
- else:
- do_accept(u, session)
+ 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)
+ if new:
+ do_new(u, session)
+ else:
+ try:
+ check_daily_lock()
+ do_accept(u, session)
+ except CantGetLockError:
+ print "Hello? Operator! Give me the number for 911!"
+ print "Dinstall in the locked area, cant process packages, come back later"
# (new, byhand) = check_status(files)
# if new or byhand:
# if new: