From f926992ef6b7725784529fe70f2d643e6b21d751 Mon Sep 17 00:00:00 2001
From: jws52 <jws52@cam.ac.uk>
Date: Mon, 9 Oct 2023 16:35:39 +0100
Subject: [PATCH] refactior: Adaptable query of past job successes

---
 coordinator/ProcessorUtils.py | 43 +++++++++++++++++------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/coordinator/ProcessorUtils.py b/coordinator/ProcessorUtils.py
index c068364..cb34994 100644
--- a/coordinator/ProcessorUtils.py
+++ b/coordinator/ProcessorUtils.py
@@ -260,6 +260,25 @@ def query_proceed(necessary_file,description):
 
     return True
 
+def query_component_success(config_i,job_run: str, job_to_check: str):
+    '''Checks if a coordinator jobs has already completed successfully. If not,
+    it raises an error.'''
+
+    # check if deposition data is readily available
+    dep_success_file = Template(config_i[job_run][job_to_check]['SuccessFileTemplate']).substitute(**config_i)
+    try:
+        query_proceed(dep_success_file,'deposition')
+    except:
+        
+        if 'AlternativeSuccessFileTemplate' not in config_i[job_run][job_to_check]:
+            logger.warning(f"No AlternativeSuccessFileTemplate to check for")
+            endScript(premature=True)
+
+        dep_success_file_alt = Template(config_i[job_run][job_to_check]['AlternativeSuccessFileTemplate']).substitute(**config_i)
+        query_proceed(dep_success_file_alt,job_to_check.lower())
+
+    return True
+
 def query_past_successes(input_args: dict):
     '''Checks if deposition and environment jobs are already completed
     successfully. If not, it raises an error.'''
@@ -279,29 +298,9 @@ def query_past_successes(input_args: dict):
         config_i['StartString'] = input_args['start_date']
 
         # check if deposition data is readily available
-        dep_success_file = Template(config_i[component]['Deposition']['SuccessFileTemplate']).substitute(**config_i)
-        try:
-            query_proceed(dep_success_file,'deposition')
-        except:
-            
-            if 'AlternativeSuccessFileTemplate' not in config_i[component]['Deposition']:
-                logger.warning(f"No AlternativeSuccessFileTemplate to check for")
-                endScript(premature=True)
-
-            dep_success_file_alt = Template(config_i[component]['Deposition']['AlternativeSuccessFileTemplate']).substitute(**config_i)
-            query_proceed(dep_success_file_alt,'deposition')
+        query_component_success(config_i,component,'Deposition')
 
         # check if environment data is readily available
-        env_success_file = Template(config_i[component]['Environment']['SuccessFileTemplate']).substitute(**config_i)
-        try:
-            query_proceed(env_success_file,'environment')
-        except:
-
-            if 'AlternativeSuccessFileTemplate' not in config_i[component]['Environment']:
-                logger.warning(f"No AlternativeSuccessFileTemplate to check for")
-                endScript(premature=True)
-
-            env_success_file_alt = Template(config_i[component]['Environment']['AlternativeSuccessFileTemplate']).substitute(**config_i)
-            query_proceed(env_success_file_alt,'environment')
+        query_component_success(config_i,component,'Environment')
 
     return True
\ No newline at end of file
-- 
GitLab