Change the error return type for bad limit= and offset=.
Each element in the errors value is now a dict, with a msg field and an
id field. The id field contains a value out of errors.py that can be
used by the front end to key on. The msg field is the same as what's
been there.
The idea is to keep the number of IDs somewhat limited so there's not a
huge number of things for the front end to know.
(cherry picked from commit 9677b012da
)
This commit is contained in:
parent
6c3b0b3cd2
commit
2efbd7cae5
21
src/pylorax/api/errors.py
Normal file
21
src/pylorax/api/errors.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# lorax-composer API server
|
||||||
|
#
|
||||||
|
# Copyright (C) 2018 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# Returned from the API when ?limit= or ?offset= is given something that does
|
||||||
|
# not convert into an integer.
|
||||||
|
BAD_LIMIT_OR_OFFSET = "BadLimitOrOffset"
|
@ -983,6 +983,7 @@ from pylorax.sysutils import joinpaths
|
|||||||
from pylorax.api.checkparams import checkparams
|
from pylorax.api.checkparams import checkparams
|
||||||
from pylorax.api.compose import start_build, compose_types
|
from pylorax.api.compose import start_build, compose_types
|
||||||
from pylorax.api.crossdomain import crossdomain
|
from pylorax.api.crossdomain import crossdomain
|
||||||
|
from pylorax.api.errors import * # pylint: disable=wildcard-import
|
||||||
from pylorax.api.projects import projects_list, projects_info, projects_depsolve
|
from pylorax.api.projects import projects_list, projects_info, projects_depsolve
|
||||||
from pylorax.api.projects import modules_list, modules_info, ProjectsError, repo_to_source
|
from pylorax.api.projects import modules_list, modules_info, ProjectsError, repo_to_source
|
||||||
from pylorax.api.projects import get_repo_sources, delete_repo_source, source_to_repo, dnf_repo_to_file_repo
|
from pylorax.api.projects import get_repo_sources, delete_repo_source, source_to_repo, dnf_repo_to_file_repo
|
||||||
@ -1024,7 +1025,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(status=False, errors=[str(e)]), 400
|
return jsonify(status=False, errors=[{"id": BAD_LIMIT_OR_OFFSET, "msg": str(e)}]), 400
|
||||||
|
|
||||||
with api.config["GITLOCK"].lock:
|
with api.config["GITLOCK"].lock:
|
||||||
blueprints = take_limits([f[:-5] for f in list_branch_files(api.config["GITLOCK"].repo, branch)], offset, limit)
|
blueprints = take_limits([f[:-5] for f in list_branch_files(api.config["GITLOCK"].repo, branch)], offset, limit)
|
||||||
@ -1113,7 +1114,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(status=False, errors=[str(e)]), 400
|
return jsonify(status=False, errors=[{"id": BAD_LIMIT_OR_OFFSET, "msg": str(e)}]), 400
|
||||||
|
|
||||||
blueprints = []
|
blueprints = []
|
||||||
errors = []
|
errors = []
|
||||||
@ -1465,7 +1466,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(status=False, errors=[str(e)]), 400
|
return jsonify(status=False, errors=[{"id": BAD_LIMIT_OR_OFFSET, "msg": str(e)}]), 400
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with api.config["DNFLOCK"].lock:
|
with api.config["DNFLOCK"].lock:
|
||||||
@ -1663,7 +1664,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(status=False, errors=[str(e)]), 400
|
return jsonify(status=False, errors=[{"id": BAD_LIMIT_OR_OFFSET, "msg": str(e)}]), 400
|
||||||
|
|
||||||
if module_names:
|
if module_names:
|
||||||
module_names = module_names.split(",")
|
module_names = module_names.split(",")
|
||||||
|
Loading…
Reference in New Issue
Block a user