From 176498ab57dc14a7c14a58b490aa16319f0cf638 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Fri, 4 Sep 2020 12:42:57 -0400 Subject: [PATCH] scripts/ci/gitlab-pipeline-status: use more descriptive exceptions For two very different error conditions. Signed-off-by: Cleber Rosa Message-Id: <20200904164258.240278-7-crosa@redhat.com> Signed-off-by: Thomas Huth --- scripts/ci/gitlab-pipeline-status | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/ci/gitlab-pipeline-status b/scripts/ci/gitlab-pipeline-status index ced488f27c..628150ce0b 100755 --- a/scripts/ci/gitlab-pipeline-status +++ b/scripts/ci/gitlab-pipeline-status @@ -23,6 +23,14 @@ import time import sys +class CommunicationFailure(Exception): + """Failed to communicate to gitlab.com APIs.""" + + +class NoPipelineFound(Exception): + """Communication is successfull but pipeline is not found.""" + + def get_local_branch_commit(branch='staging'): """ Returns the commit sha1 for the *local* branch named "staging" @@ -50,14 +58,14 @@ def get_pipeline_status(project_id, commit_sha1): connection.request('GET', url=url) response = connection.getresponse() if response.code != http.HTTPStatus.OK: - raise ValueError("Failed to receive a successful response") + raise CommunicationFailure("Failed to receive a successful response") json_response = json.loads(response.read()) # As far as I can tell, there should be only one pipeline for the same # project + commit. If this assumption is false, we can add further # filters to the url, such as username, and order_by. if not json_response: - raise ValueError("No pipeline found") + raise NoPipelineFound("No pipeline found") return json_response[0]