From 52632bca9bf02d5dd9d4b41a9bf95d8f895b48ee Mon Sep 17 00:00:00 2001 From: Daniel Nemergut <dnemergu@nrao.edu> Date: Thu, 23 May 2024 14:22:48 -0400 Subject: [PATCH] Getting the telescope from a calibration's exec block (ALMA doesn't have one, so assuming ALMA rather than looking for one) --- .../aat_wrest/aat_wrest/metadata_wrester.py | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/apps/cli/utilities/aat_wrest/aat_wrest/metadata_wrester.py b/apps/cli/utilities/aat_wrest/aat_wrest/metadata_wrester.py index 671d2c335..82bf47c2b 100644 --- a/apps/cli/utilities/aat_wrest/aat_wrest/metadata_wrester.py +++ b/apps/cli/utilities/aat_wrest/aat_wrest/metadata_wrester.py @@ -360,11 +360,13 @@ class WrestWorkflowMetadata: query = """ SELECT sp.science_product_type, COALESCE(eb.telescope,im.telescope) as telescope, - spp.project_code + spp.project_code, + c.execution_block_id FROM science_products sp JOIN science_products_projects spp ON sp.science_product_locator = spp.science_product_locator LEFT JOIN execution_blocks eb ON sp.science_product_locator = eb.science_product_locator LEFT JOIN images im ON sp.science_product_locator = im.science_product_locator + LEFT JOIN calibrations c ON sp.science_product_locator = c.science_product_locator WHERE sp.science_product_locator = %(spl)s; """ make_json = {} @@ -388,9 +390,33 @@ class WrestWorkflowMetadata: cursor.execute(query, {"spl": spl}) data = cursor.fetchall() if data: + product_type = str(data[0][0]).lower().replace(" ", "_") + + # Get the telescope from a calibration's exec block (if applicable) + if product_type != 'calibration': + telescope = data[0][1] + else: + if not data[0][3]: + # ALMA doesn't have a calibrations.execution_block_id, could query with the alm_ous_id, but meh + telescope = 'ALMA' + else: + # Can get it from the EB + scope_query = """ + SELECT telescope + FROM execution_blocks + WHERE execution_block_id = %(eb_id)s; + """ + cursor.execute(scope_query, {"pg_id": data[0][3]}) + scope_data = cursor.fetchall() + if scope_data: + telescope = data[0][0] + else: + self.logger.error(f"ERROR: Failed to determine telescope from calibration's EB, got {data}") + return make_json + make_json = { - "product_type": str(data[0][0]).lower().replace(" ", "_"), - "telescope": data[0][1], + "product_type": product_type, + "telescope": telescope, "projectCode": data[0][2], } -- GitLab