Fix the error responses from lorax-composer
They are now all consistent, returning status 400, including a json object with status=flase, and an error message inside the error object.
This commit is contained in:
parent
60874d0197
commit
2e61bc8bf9
@ -949,7 +949,7 @@ def v0_api(api):
|
|||||||
limit = int(request.args.get("limit", "20"))
|
limit = int(request.args.get("limit", "20"))
|
||||||
offset = int(request.args.get("offset", "0"))
|
offset = int(request.args.get("offset", "0"))
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
with api.config["GITLOCK"].lock:
|
with api.config["GITLOCK"].lock:
|
||||||
recipes = take_limits(map(lambda f: f[:-5], list_branch_files(api.config["GITLOCK"].repo, branch)), offset, limit)
|
recipes = take_limits(map(lambda f: f[:-5], list_branch_files(api.config["GITLOCK"].repo, branch)), offset, limit)
|
||||||
@ -1020,7 +1020,7 @@ def v0_api(api):
|
|||||||
limit = int(request.args.get("limit", "20"))
|
limit = int(request.args.get("limit", "20"))
|
||||||
offset = int(request.args.get("offset", "0"))
|
offset = int(request.args.get("offset", "0"))
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
recipes = []
|
recipes = []
|
||||||
errors = []
|
errors = []
|
||||||
@ -1156,7 +1156,7 @@ def v0_api(api):
|
|||||||
old_recipe = read_recipe_commit(api.config["GITLOCK"].repo, branch, recipe_name, from_commit)
|
old_recipe = read_recipe_commit(api.config["GITLOCK"].repo, branch, recipe_name, from_commit)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error("(v0_recipes_diff) %s", str(e))
|
log.error("(v0_recipes_diff) %s", str(e))
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if to_commit == "WORKSPACE":
|
if to_commit == "WORKSPACE":
|
||||||
@ -1174,7 +1174,7 @@ def v0_api(api):
|
|||||||
new_recipe = read_recipe_commit(api.config["GITLOCK"].repo, branch, recipe_name, to_commit)
|
new_recipe = read_recipe_commit(api.config["GITLOCK"].repo, branch, recipe_name, to_commit)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error("(v0_recipes_diff) %s", str(e))
|
log.error("(v0_recipes_diff) %s", str(e))
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
diff = recipe_diff(old_recipe, new_recipe)
|
diff = recipe_diff(old_recipe, new_recipe)
|
||||||
return jsonify(diff=diff)
|
return jsonify(diff=diff)
|
||||||
@ -1295,14 +1295,14 @@ def v0_api(api):
|
|||||||
limit = int(request.args.get("limit", "20"))
|
limit = int(request.args.get("limit", "20"))
|
||||||
offset = int(request.args.get("offset", "0"))
|
offset = int(request.args.get("offset", "0"))
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with api.config["YUMLOCK"].lock:
|
with api.config["YUMLOCK"].lock:
|
||||||
available = projects_list(api.config["YUMLOCK"].yb)
|
available = projects_list(api.config["YUMLOCK"].yb)
|
||||||
except ProjectsError as e:
|
except ProjectsError as e:
|
||||||
log.error("(v0_projects_list) %s", str(e))
|
log.error("(v0_projects_list) %s", str(e))
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
projects = take_limits(available, offset, limit)
|
projects = take_limits(available, offset, limit)
|
||||||
return jsonify(projects=projects, offset=offset, limit=limit, total=len(available))
|
return jsonify(projects=projects, offset=offset, limit=limit, total=len(available))
|
||||||
@ -1316,7 +1316,7 @@ def v0_api(api):
|
|||||||
projects = projects_info(api.config["YUMLOCK"].yb, project_names.split(","))
|
projects = projects_info(api.config["YUMLOCK"].yb, project_names.split(","))
|
||||||
except ProjectsError as e:
|
except ProjectsError as e:
|
||||||
log.error("(v0_projects_info) %s", str(e))
|
log.error("(v0_projects_info) %s", str(e))
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
return jsonify(projects=projects)
|
return jsonify(projects=projects)
|
||||||
|
|
||||||
@ -1329,7 +1329,7 @@ def v0_api(api):
|
|||||||
deps = projects_depsolve(api.config["YUMLOCK"].yb, project_names.split(","))
|
deps = projects_depsolve(api.config["YUMLOCK"].yb, project_names.split(","))
|
||||||
except ProjectsError as e:
|
except ProjectsError as e:
|
||||||
log.error("(v0_projects_depsolve) %s", str(e))
|
log.error("(v0_projects_depsolve) %s", str(e))
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
return jsonify(projects=deps)
|
return jsonify(projects=deps)
|
||||||
|
|
||||||
@ -1342,7 +1342,7 @@ def v0_api(api):
|
|||||||
limit = int(request.args.get("limit", "20"))
|
limit = int(request.args.get("limit", "20"))
|
||||||
offset = int(request.args.get("offset", "0"))
|
offset = int(request.args.get("offset", "0"))
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
if module_names:
|
if module_names:
|
||||||
module_names = module_names.split(",")
|
module_names = module_names.split(",")
|
||||||
@ -1352,7 +1352,7 @@ def v0_api(api):
|
|||||||
available = modules_list(api.config["YUMLOCK"].yb, module_names)
|
available = modules_list(api.config["YUMLOCK"].yb, module_names)
|
||||||
except ProjectsError as e:
|
except ProjectsError as e:
|
||||||
log.error("(v0_modules_list) %s", str(e))
|
log.error("(v0_modules_list) %s", str(e))
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
modules = take_limits(available, offset, limit)
|
modules = take_limits(available, offset, limit)
|
||||||
return jsonify(modules=modules, offset=offset, limit=limit, total=len(available))
|
return jsonify(modules=modules, offset=offset, limit=limit, total=len(available))
|
||||||
@ -1366,7 +1366,7 @@ def v0_api(api):
|
|||||||
modules = modules_info(api.config["YUMLOCK"].yb, module_names.split(","))
|
modules = modules_info(api.config["YUMLOCK"].yb, module_names.split(","))
|
||||||
except ProjectsError as e:
|
except ProjectsError as e:
|
||||||
log.error("(v0_modules_info) %s", str(e))
|
log.error("(v0_modules_info) %s", str(e))
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
return jsonify(modules=modules)
|
return jsonify(modules=modules)
|
||||||
|
|
||||||
@ -1465,7 +1465,7 @@ def v0_api(api):
|
|||||||
"""Cancel a running compose and delete its results directory"""
|
"""Cancel a running compose and delete its results directory"""
|
||||||
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
||||||
if status is None:
|
if status is None:
|
||||||
return jsonify(status=False, msg="%s is not a valid build uuid" % uuid), 400
|
return jsonify(status=False, error={"msg":"%s is not a valid build uuid" % uuid}), 400
|
||||||
|
|
||||||
if status["queue_status"] not in ["WAITING", "RUNNING"]:
|
if status["queue_status"] not in ["WAITING", "RUNNING"]:
|
||||||
return jsonify(status=False, uuid=uuid, msg="Cannot cancel a build that is in the %s state" % status["queue_status"])
|
return jsonify(status=False, uuid=uuid, msg="Cannot cancel a build that is in the %s state" % status["queue_status"])
|
||||||
@ -1515,9 +1515,9 @@ def v0_api(api):
|
|||||||
"""Return a tar of the metadata for the build"""
|
"""Return a tar of the metadata for the build"""
|
||||||
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
||||||
if status is None:
|
if status is None:
|
||||||
return jsonify(status=False, msg="%s is not a valid build uuid" % uuid), 400
|
return jsonify(status=False, error={"msg":"%s is not a valid build uuid" % uuid}), 400
|
||||||
if status["queue_status"] not in ["FINISHED", "FAILED"]:
|
if status["queue_status"] not in ["FINISHED", "FAILED"]:
|
||||||
return jsonify(status=False, uuid=uuid, msg="Build not in FINISHED or FAILED.")
|
return jsonify(status=False, error={"msg":"Build %s not in FINISHED or FAILED state." % uuid}), 400
|
||||||
else:
|
else:
|
||||||
return Response(uuid_tar(api.config["COMPOSER_CFG"], uuid, metadata=True, image=False, logs=False),
|
return Response(uuid_tar(api.config["COMPOSER_CFG"], uuid, metadata=True, image=False, logs=False),
|
||||||
mimetype="application/x-tar",
|
mimetype="application/x-tar",
|
||||||
@ -1530,9 +1530,9 @@ def v0_api(api):
|
|||||||
"""Return a tar of the metadata and the results for the build"""
|
"""Return a tar of the metadata and the results for the build"""
|
||||||
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
||||||
if status is None:
|
if status is None:
|
||||||
return jsonify(status=False, msg="%s is not a valid build uuid" % uuid), 400
|
return jsonify(status=False, error={"msg":"%s is not a valid build uuid" % uuid}), 400
|
||||||
elif status["queue_status"] not in ["FINISHED", "FAILED"]:
|
elif status["queue_status"] not in ["FINISHED", "FAILED"]:
|
||||||
return jsonify(status=False, uuid=uuid, msg="Build not in FINISHED or FAILED.")
|
return jsonify(status=False, error={"msg":"Build %s not in FINISHED or FAILED state." % uuid}), 400
|
||||||
else:
|
else:
|
||||||
return Response(uuid_tar(api.config["COMPOSER_CFG"], uuid, metadata=True, image=True, logs=True),
|
return Response(uuid_tar(api.config["COMPOSER_CFG"], uuid, metadata=True, image=True, logs=True),
|
||||||
mimetype="application/x-tar",
|
mimetype="application/x-tar",
|
||||||
@ -1545,9 +1545,9 @@ def v0_api(api):
|
|||||||
"""Return a tar of the metadata for the build"""
|
"""Return a tar of the metadata for the build"""
|
||||||
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
||||||
if status is None:
|
if status is None:
|
||||||
return jsonify(status=False, msg="%s is not a valid build uuid"), 400
|
return jsonify(status=False, error={"msg":"%s is not a valid build uuid" % uuid}), 400
|
||||||
elif status["queue_status"] not in ["FINISHED", "FAILED"]:
|
elif status["queue_status"] not in ["FINISHED", "FAILED"]:
|
||||||
return jsonify(status=False, uuid=uuid, msg="Build not in FINISHED or FAILED.")
|
return jsonify(status=False, error={"msg":"Build %s not in FINISHED or FAILED state." % uuid}), 400
|
||||||
else:
|
else:
|
||||||
return Response(uuid_tar(api.config["COMPOSER_CFG"], uuid, metadata=False, image=False, logs=True),
|
return Response(uuid_tar(api.config["COMPOSER_CFG"], uuid, metadata=False, image=False, logs=True),
|
||||||
mimetype="application/x-tar",
|
mimetype="application/x-tar",
|
||||||
@ -1560,15 +1560,15 @@ def v0_api(api):
|
|||||||
"""Return the output image for the build"""
|
"""Return the output image for the build"""
|
||||||
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
||||||
if status is None:
|
if status is None:
|
||||||
return jsonify(status=False, msg="%s is not a valid build uuid" % uuid), 400
|
return jsonify(status=False, error={"msg":"%s is not a valid build uuid" % uuid}), 400
|
||||||
elif status["queue_status"] not in ["FINISHED", "FAILED"]:
|
elif status["queue_status"] not in ["FINISHED", "FAILED"]:
|
||||||
return jsonify(status=False, uuid=uuid, msg="Build not in FINISHED or FAILED.")
|
return jsonify(status=False, error={"msg":"Build %s not in FINISHED or FAILED state." % uuid}), 400
|
||||||
else:
|
else:
|
||||||
image_name, image_path = uuid_image(api.config["COMPOSER_CFG"], uuid)
|
image_name, image_path = uuid_image(api.config["COMPOSER_CFG"], uuid)
|
||||||
|
|
||||||
# Make sure it really exists
|
# Make sure it really exists
|
||||||
if not os.path.exists(image_path):
|
if not os.path.exists(image_path):
|
||||||
return jsonify(status=False, uuid=uuid, error={"msg":"Build %s is missing image file %s" % (uuid, image_name)}), 400
|
return jsonify(status=False, error={"msg":"Build %s is missing image file %s" % (uuid, image_name)}), 400
|
||||||
|
|
||||||
# Make the image name unique
|
# Make the image name unique
|
||||||
image_name = uuid + "-" + image_name
|
image_name = uuid + "-" + image_name
|
||||||
@ -1582,7 +1582,7 @@ def v0_api(api):
|
|||||||
try:
|
try:
|
||||||
size = int(request.args.get("size", "1024"))
|
size = int(request.args.get("size", "1024"))
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
return jsonify(error={"msg":str(e)}), 400
|
return jsonify(status=False, error={"msg":str(e)}), 400
|
||||||
|
|
||||||
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
status = uuid_status(api.config["COMPOSER_CFG"], uuid)
|
||||||
if status is None or status["queue_status"] == "WAITING":
|
if status is None or status["queue_status"] == "WAITING":
|
||||||
|
Loading…
Reference in New Issue
Block a user