From 674967eca1fa7b7c6658b0574d9b4e5c32efa335 Mon Sep 17 00:00:00 2001 From: Amador Pahim Date: Wed, 24 Aug 2016 12:53:42 +0200 Subject: [PATCH] avocado.core.jobdata remove sys.exit() from core module Raise an exception instead of sys.exit() inside the module and let callers deal with the exception. Signed-off-by: Amador Pahim --- avocado/core/jobdata.py | 7 +------ avocado/plugins/diff.py | 6 +++++- avocado/plugins/replay.py | 6 +++++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/avocado/core/jobdata.py b/avocado/core/jobdata.py index 87fc9436..14dc118e 100644 --- a/avocado/core/jobdata.py +++ b/avocado/core/jobdata.py @@ -20,9 +20,7 @@ import ast import glob import os import pickle -import sys -from . import exit_codes from .settings import settings from ..utils.path import init_dir @@ -168,10 +166,7 @@ def get_resultsdir(logdir, jobid): match_file = id_file matches += 1 if matches > 1: - from logging import getLogger - getLogger("avocado.app").error("hash '%s' is not unique " - "enough", jobid) - sys.exit(exit_codes.AVOCADO_JOB_FAIL) + raise ValueError("hash '%s' is not unique enough" % jobid) if matches == 1: return os.path.dirname(match_file) diff --git a/avocado/plugins/diff.py b/avocado/plugins/diff.py index 2f752bc1..2e82dda0 100644 --- a/avocado/plugins/diff.py +++ b/avocado/plugins/diff.py @@ -339,7 +339,11 @@ class Diff(CLICmd): logs_dir = settings.get_value('datadir.paths', 'logs_dir', default=None) logdir = os.path.expanduser(logs_dir) - resultsdir = jobdata.get_resultsdir(logdir, job_id) + try: + resultsdir = jobdata.get_resultsdir(logdir, job_id) + except ValueError as exception: + LOG.error(exception.message) + sys.exit(exit_codes.AVOCADO_JOB_FAIL) if resultsdir is None: LOG.error("Can't find job results directory for '%s' in '%s'", diff --git a/avocado/plugins/replay.py b/avocado/plugins/replay.py index dc25570d..55028a56 100644 --- a/avocado/plugins/replay.py +++ b/avocado/plugins/replay.py @@ -143,7 +143,11 @@ class Replay(CLI): logs_dir = settings.get_value('datadir.paths', 'logs_dir', default=None) logdir = os.path.expanduser(logs_dir) - resultsdir = jobdata.get_resultsdir(logdir, args.replay_jobid) + try: + resultsdir = jobdata.get_resultsdir(logdir, args.replay_jobid) + except ValueError as exception: + log.error(exception.message) + sys.exit(exit_codes.AVOCADO_JOB_FAIL) if resultsdir is None: log.error("Can't find job results directory in '%s'", logdir) -- GitLab