]> git.0d.be Git - panikdb.git/commitdiff
pige: do not stay stuck on missing path
authorFrédéric Péters <fpeters@0d.be>
Sun, 25 Sep 2022 21:54:54 +0000 (23:54 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sun, 25 Sep 2022 21:54:54 +0000 (23:54 +0200)
panikdb/pige/management/commands/pige_jobs.py
panikdb/pige/utils.py

index ed9234bbf350ad7ab538fe6e6cd91a577af13167..2ba217cead63413d7dc07b8031483ad425497c6d 100644 (file)
@@ -30,13 +30,16 @@ class Command(BaseCommand):
             if not os.path.exists(download_path):
                 if verbosity:
                     print('creating', download_path)
             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()
                 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
             else:
                 pige_request.download_timestamp = now()
                 pige_request.status = 'downloaded'  # was already there
index 11fc3559231fbdcdff7357844ca175cc3524a889..966d3a49006f7d5b77a6fd8323ad9fae2cc53e03 100644 (file)
@@ -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('.')]
     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)])
         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 = [
 
     filenames = [x for x in filenames if os.path.splitext(x)[-1] in ('.ogg', '.flac', '.wav')]
     filenames = [