api: add support for /projects/depsolve

This commit is contained in:
Ondřej Budai 2019-11-12 20:26:25 +01:00 committed by Tom Gundersen
parent 9076f68f7b
commit 36ccb110b3
4 changed files with 92 additions and 13 deletions

View file

@ -71,14 +71,11 @@ if command == "dump":
elif command == "depsolve":
base = create_base(arguments.get("repos", {}))
errors = []
for pkgspec in arguments["package-specs"]:
try:
base.install_specs([pkgspec])
except dnf.exceptions.MarkingError as e:
errors.append((pkgspec, str(e)))
if errors:
formatted_errors = ", ".join((f"{package} ({err})" for package, err in errors))
exit_with_dnf_error("MarkingError", f"The following package(s) had problems: {formatted_errors}")
try:
base.install_specs(arguments["package-specs"])
except dnf.exceptions.MarkingErrors as e:
exit_with_dnf_error("MarkingErrors", f"Error occurred when marking packages for installation: {e}")
try:
base.resolve()