From: Frédéric Péters Date: Sun, 25 Sep 2022 21:54:54 +0000 (+0200) Subject: pige: do not stay stuck on missing path X-Git-Tag: v2023~17 X-Git-Url: https://git.0d.be/?p=panikdb.git;a=commitdiff_plain;h=ac4b792b60a94890b66862f1b2af1ae7a9562b6b pige: do not stay stuck on missing path --- diff --git a/panikdb/pige/management/commands/pige_jobs.py b/panikdb/pige/management/commands/pige_jobs.py index ed9234b..2ba217c 100644 --- a/panikdb/pige/management/commands/pige_jobs.py +++ b/panikdb/pige/management/commands/pige_jobs.py @@ -30,13 +30,16 @@ class Command(BaseCommand): if not os.path.exists(download_path): if verbosity: print('creating', download_path) - with create_process_from_spec(spec, output=download_path) as proc: - proc.wait() pige_request.download_timestamp = now() - if proc.returncode != 0: - pige_request.status = 'download-error (%s)' % proc.returncode - else: - pige_request.status = 'downloaded' + try: + with create_process_from_spec(spec, output=download_path) as proc: + proc.wait() + if proc.returncode != 0: + pige_request.status = 'download-error (%s)' % proc.returncode + else: + pige_request.status = 'downloaded' + except Exception as e: + pige_request.status = 'process-error (%s)' % e else: pige_request.download_timestamp = now() pige_request.status = 'downloaded' # was already there diff --git a/panikdb/pige/utils.py b/panikdb/pige/utils.py index 11fc355..966d3a4 100644 --- a/panikdb/pige/utils.py +++ b/panikdb/pige/utils.py @@ -80,12 +80,14 @@ def create_process_from_spec(spec, output='-', *args, **kwargs): path = os.path.join(base_dir, start.strftime(PATH_LAYOUT)) if not path: filenames = [x for x in os.listdir('.')] - else: + elif os.path.exists(path): filenames = [os.path.join(path, x) for x in os.listdir(path)] if end.hour < start.hour: path = os.path.join(base_dir, end.strftime(PATH_LAYOUT)) if os.path.exists(path): filenames.extend([os.path.join(path, x) for x in os.listdir(path)]) + else: + raise Exception('missing directory: %s' % path) filenames = [x for x in filenames if os.path.splitext(x)[-1] in ('.ogg', '.flac', '.wav')] filenames = [