in airavata_django_portal_sdk/experiment_util/intermediate_output.py [0:0]
def get_intermediate_output_data_products(request, experiment: ExperimentModel, output_name: str) -> List[DataProductModel]:
"""Return the DataProduct instance(s) for a experiment output."""
output_fetching_processes = _get_output_fetching_processes(experiment)
data_products = []
if (len(output_fetching_processes) > 0):
most_recent_completed_process_output = None
for process in output_fetching_processes:
# Skip over any processes that aren't completed
if (len(process.processStatuses) == 0 or process.processStatuses[-1].state != ProcessState.COMPLETED):
continue
for process_output in process.processOutputs:
if process_output.name == output_name:
most_recent_completed_process_output = process_output
break
if most_recent_completed_process_output is not None:
break
if most_recent_completed_process_output is not None:
data_product_uris = []
if most_recent_completed_process_output.value.startswith('airavata-dp://'):
data_product_uris = most_recent_completed_process_output.value.split(',')
for data_product_uri in data_product_uris:
data_product = request.airavata_client.getDataProduct(
request.authz_token, data_product_uri)
data_products.append(data_product)
return data_products