From f8a57b4412bf00e7d38456a791ab843182f99b9f Mon Sep 17 00:00:00 2001 From: Alexander Presnyakov Date: Wed, 23 Jul 2025 16:38:15 +0000 Subject: [PATCH] BRM journal is always singular, do not apply suffix logic to it --- cmapi/cmapi_server/controllers/endpoints.py | 14 ++++++++++++-- cmapi/cmapi_server/test/test_em_endpoints.py | 16 ++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/cmapi/cmapi_server/controllers/endpoints.py b/cmapi/cmapi_server/controllers/endpoints.py index 870e07b35..9df64fe0d 100644 --- a/cmapi/cmapi_server/controllers/endpoints.py +++ b/cmapi/cmapi_server/controllers/endpoints.py @@ -748,7 +748,12 @@ class ExtentMapController: retry_count += 1 continue elem_current_suffix = ret.stdout.decode("utf-8").rstrip() - elem_current_filename = f'{EM_PATH_SUFFIX}/{elem_current_suffix}_{element}' + + suffix_for_file = elem_current_suffix + # The journal is always in the current directory, strip trailing A/B from suffix + if element == 'journal' and suffix_for_file.endswith(('A', 'B')): + suffix_for_file = suffix_for_file[:-1] + elem_current_filename = f'{EM_PATH_SUFFIX}/{suffix_for_file}_{element}' # TODO: Remove conditional once container dispatcher # uses non-root by default @@ -774,8 +779,13 @@ class ExtentMapController: ) elem_current_name = Path(MCS_BRM_CURRENT_PATH) elem_current_filename = elem_current_name.read_text().rstrip() + + suffix_for_file = elem_current_filename + # The journal is always in the current directory, strip trailing A/B from suffix + if element == 'journal' and suffix_for_file.endswith(('A', 'B')): + suffix_for_file = suffix_for_file[:-1] elem_current_file = Path( - f'{MCS_EM_PATH}/{elem_current_filename}_{element}' + f'{MCS_EM_PATH}/{suffix_for_file}_{element}' ) result = elem_current_file.read_bytes() diff --git a/cmapi/cmapi_server/test/test_em_endpoints.py b/cmapi/cmapi_server/test/test_em_endpoints.py index a166cc6e8..738e9d269 100644 --- a/cmapi/cmapi_server/test/test_em_endpoints.py +++ b/cmapi/cmapi_server/test/test_em_endpoints.py @@ -66,7 +66,13 @@ class TestEMEndpoints(unittest.TestCase): ["smcat", S3_BRM_CURRENT_PATH], stdout=subprocess.PIPE ) element_current_suffix = ret.stdout.decode("utf-8").rstrip() - element_current_filename = f'{EM_PATH_SUFFIX}/{element_current_suffix}_{element}' + + suffix_for_file = element_current_suffix + # Journal is always singular, so strip trailing A/B from suffix + if element == 'journal' and suffix_for_file.endswith(('A', 'B')): + suffix_for_file = suffix_for_file[:-1] + + element_current_filename = f'{EM_PATH_SUFFIX}/{suffix_for_file}_{element}' ret = subprocess.run( ["smcat", element_current_filename], stdout=subprocess.PIPE ) @@ -74,8 +80,14 @@ class TestEMEndpoints(unittest.TestCase): else: element_current_name = Path(MCS_BRM_CURRENT_PATH) element_current_filename = element_current_name.read_text().rstrip() + + suffix_for_file = element_current_filename + # Journal is always singular, so strip trailing A/B from suffix + if element == 'journal' and suffix_for_file.endswith(('A', 'B')): + suffix_for_file = suffix_for_file[:-1] + element_current_file = Path( - f'{MCS_EM_PATH}/{element_current_filename}_{element}' + f'{MCS_EM_PATH}/{suffix_for_file}_{element}' ) result = element_current_file.read_bytes() return result