From 7064020367daa0a16cbc120271f6f1aef4b60043 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Jan 07 2020 09:32:39 +0000 Subject: PR#1893: raise GenericError on existing build reservation Merges #1893 https://pagure.io/koji/pull-request/1893 Fixes: #1888 https://pagure.io/koji/issue/1888 CGInitBuild doesn't raise GenericError if build already exists. --- diff --git a/hub/kojihub.py b/hub/kojihub.py index fad86d4..6f205b8 100644 --- a/hub/kojihub.py +++ b/hub/kojihub.py @@ -5797,7 +5797,7 @@ def clear_reservation(build_id): def cg_init_build(cg, data): """Create (reserve) a build_id for given data. - If build already exists, init_build will raise GenericError + If build or reservation already exists, init_build will raise GenericError :param str cg: content generator name :param dict data: build data same as for new_build, for given usecase @@ -5814,6 +5814,11 @@ def cg_init_build(cg, data): # CGs shouldn't have to worry about epoch data.setdefault('epoch', None) build_id = new_build(data, strict=False) + + # check potentially existing token + if get_reservation_token(build_id): + raise koji.GenericError("Build is already reserved") + # store token token = generate_token() insert = InsertProcessor(table='build_reservations')