################################################################################
-def check_pkg (upload, upload_copy):
+def check_pkg (upload, upload_copy, session):
+ missing = []
save_stdout = sys.stdout
changes = os.path.join(upload_copy.directory, upload.changes.changesname)
suite_name = upload.target_suite.suite_name
+ handler = PolicyQueueUploadHandler(upload, session)
+ missing = [(m['type'], m["package"]) for m in handler.missing_overrides(hints=missing)]
try:
sys.stdout = os.popen("less -R -", 'w', 0)
print examine_package.display_changes(suite_name, changes)
for binary in upload.binaries:
binary_file = os.path.join(upload_copy.directory, os.path.basename(binary.poolfile.filename))
- print examine_package.check_deb(suite_name, binary_file)
+ examined = examine_package.check_deb(suite_name, binary_file)
+ # We always need to call check_deb to display package relations for every binary,
+ # but we print its output only if new overrides are being added.
+ if ("deb", binary.package) in missing:
+ print examined
print examine_package.output_package_relations()
except IOError as e:
if not has_unprocessed_byhand and not broken and not note:
if len(missing) == 0:
prompt = "Accept, "
+ answer = 'A'
else:
prompt = "Add overrides, "
if broken:
print "Hello? Operator! Give me the number for 911!"
print "Dinstall in the locked area, cant process packages, come back later"
elif answer == 'C':
- check_pkg(upload, upload_copy)
+ check_pkg(upload, upload_copy, session)
elif answer == 'E' and not Options["Trainee"]:
missing = edit_overrides (missing, upload, session)
elif answer == 'M' and not Options["Trainee"]:
reason = Options.get('Manual-Reject', '') + "\n"
- reason = reason + "\n".join(get_new_comments(upload.changes.source, session=session))
+ reason = reason + "\n".join([n.comment for n in get_new_comments(upload.changes.source, session=session)])
reason = get_reject_reason(reason)
if reason is not None:
Logger.log(["NEW REJECT", upload.changes.changesname])
handler.reject(reason)
done = True
elif answer == 'N':
- edit_note(get_new_comments(upload.changes.source, session=session),
- upload, session, bool(Options["Trainee"]))
+ if edit_note(get_new_comments(upload.changes.source, session=session),
+ upload, session, bool(Options["Trainee"])) == 0:
+ end()
+ sys.exit(0)
elif answer == 'P' and not Options["Trainee"]:
- prod_maintainer(get_new_comments(upload.changes.source, session=session),
- upload)
+ if prod_maintainer(get_new_comments(upload.changes.source, session=session),
+ upload) == 0:
+ end()
+ sys.exit(0)
Logger.log(["NEW PROD", upload.changes.changesname])
elif answer == 'R' and not Options["Trainee"]:
confirm = utils.our_raw_input("Really clear note (y/N)? ").lower()
Example: run mc in a tmux session to inspect the upload
- export DAK_INSPECT_UPLOAD='tmux new-session -d -s process-new 2>/dev/null; tmux new-window -t process-new:0 -k "cd {directory}; mc"'
+ export DAK_INSPECT_UPLOAD='tmux new-session -d -s process-new 2>/dev/null; tmux new-window -n "{changes}" -t process-new:0 -k "cd {directory}; mc"'
and run
WHERE package IN :sources
ORDER BY package, version"""
- r = session.execute(query, params=dict(sources=sources))
+ r = session.execute(query, params=dict(sources=tuple(sources)))
for i in r:
print "%s_%s\n%s\n(%s)\n\n\n" % (i[0], i[1], i[2], i[3])