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