From 947bcca8ea8c86e8af2a6b1c623b5e2c6167c86c Mon Sep 17 00:00:00 2001 From: tcezard Date: Thu, 28 Mar 2024 11:21:22 +0000 Subject: [PATCH] Check that the copy to remote mongo actually copied anything --- eva-accession-release-automation/requirements.txt | 2 +- .../copy_accessioning_collections_to_embassy.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/eva-accession-release-automation/requirements.txt b/eva-accession-release-automation/requirements.txt index 1546ff9f5..31582abfa 100644 --- a/eva-accession-release-automation/requirements.txt +++ b/eva-accession-release-automation/requirements.txt @@ -1,4 +1,4 @@ -ebi_eva_common_pyutils==0.5.6 +ebi_eva_common_pyutils[internal]==0.6.5 click==7.1.2 pytz==2022.6 pyyaml==5.3.1 diff --git a/eva-accession-release-automation/run_release_in_embassy/copy_accessioning_collections_to_embassy.py b/eva-accession-release-automation/run_release_in_embassy/copy_accessioning_collections_to_embassy.py index 059530df1..6bf3ab244 100644 --- a/eva-accession-release-automation/run_release_in_embassy/copy_accessioning_collections_to_embassy.py +++ b/eva-accession-release-automation/run_release_in_embassy/copy_accessioning_collections_to_embassy.py @@ -18,6 +18,7 @@ import sys import traceback +from ebi_eva_common_pyutils.command_utils import run_command_with_output from ebi_eva_common_pyutils.config_utils import get_mongo_uri_for_eva_profile from ebi_eva_common_pyutils.metadata_utils import get_metadata_connection_handle from ebi_eva_common_pyutils.mongo_utils import copy_db @@ -47,6 +48,13 @@ "submittedVariantOperationEntity": "inactiveObjects.tax" } +def remote_db_is_empty(local_forwarded_port, assembly_accession, destination_db_name): + logger.info(f"check if: {assembly_accession} has been copied") + command = f"mongosh --eval 'use {destination_db_name}' --eval 'db.stats()' --port {local_forwarded_port} " \ + "| grep 'dataSize' | awk '{print substr($2,1,length($2)-1)}'" + output = run_command_with_output(command) + return output.strip() == '0' + def mongo_data_copy_to_remote_host(local_forwarded_port, private_config_xml_file, profile, assembly_accession, taxonomy_id, collections_to_copy_map, dump_dir, destination_db_name): @@ -119,6 +127,8 @@ def copy_accessioning_collections_to_embassy(private_config_xml_file, profile, t mongo_data_copy_to_remote_host(mongo_port, private_config_xml_file, profile, assembly_accession, taxonomy_id, collections_to_copy_map, dump_dir, destination_db_name) exit_code = 0 + if remote_db_is_empty(mongo_port, assembly_accession, destination_db_name): + raise Exception except Exception as ex: logger.error("Encountered an error while copying species data to Embassy for assemblies in " + release_info["tempmongo_instance"] + "\n" + traceback.format_exc())