diff options
author | Helmut Grohne <helmut@subdivi.de> | 2020-10-10 09:32:27 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2020-10-10 09:32:27 +0200 |
commit | 68d2f162c04f2405993f56290c579f35e0831480 (patch) | |
tree | 7848d9751c0b24e73f783610895a5d77af94bedd /webapp.py | |
parent | 0173c9575c7cf6f517264f77624206380a8e13cb (diff) | |
download | crossqa-68d2f162c04f2405993f56290c579f35e0831480.tar.gz |
webapp.py: improve parameter validation for /schedule
Allow scheduling any_arm64. Disallow scheduling garbage_any.
Diffstat (limited to 'webapp.py')
-rw-r--r-- | webapp.py | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -426,20 +426,20 @@ def request_schedule(): raise werkzeug.exceptions.BadRequest() if buildarch == "any": buildarch = None + if hostarch == "any": + hostarch = None with db.engine.connect() as conn: query = sqlalchemy.text(""" SELECT 1 FROM depstate WHERE source = :source;""") if not conn.execute(query, source=source).first(): raise werkzeug.exceptions.BadRequest() - if hostarch == "any": - hostarch = None - else: - query = sqlalchemy.text(""" - SELECT 1 FROM depcheck - WHERE buildarch = :buildarch AND hostarch = :hostarch;""") - if not conn.execute(query, buildarch=buildarch, - hostarch=hostarch).first(): - raise werkzeug.exceptions.BadRequest() + query = sqlalchemy.text(""" + SELECT 1 FROM depcheck + WHERE buildarch = ifnull(:buildarch, buildarch) + AND hostarch = ifnull(:hostarch, hostarch);""") + if not conn.execute(query, buildarch=buildarch, + hostarch=hostarch).first(): + raise werkzeug.exceptions.BadRequest() query = sqlalchemy.text(""" INSERT INTO buildrequests (source, buildarch, hostarch, requesttime) |