From 213292d46e8a65149d60117aec48e2a8c15fa83e Mon Sep 17 00:00:00 2001 From: Wai Phyo Date: Mon, 2 Jun 2025 09:43:46 -0700 Subject: [PATCH 1/3] feat: add daac_provider --- .../daac_archiver/daac_archiver_logic.py | 2 +- .../granules_to_es/granules_index_mapping.py | 3 +++ cumulus_lambda_functions/lib/uds_db/archive_index.py | 6 ++++-- cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py b/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py index 5e47771d..e41a97c3 100644 --- a/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py +++ b/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py @@ -117,7 +117,7 @@ def send_to_daac_internal(self, uds_cnm_json: dict): }, "identifier": uds_cnm_json['identifier'], "submissionTime": f'{TimeUtils.get_current_time()}Z', - "provider": granule_identifier.tenant, + "provider": daac_config['daac_provider'], "version": "1.6.0", # TODO this is hardcoded? "product": { "name": granule_identifier.granule, diff --git a/cumulus_lambda_functions/granules_to_es/granules_index_mapping.py b/cumulus_lambda_functions/granules_to_es/granules_index_mapping.py index 8b5ece1c..2fdc5021 100644 --- a/cumulus_lambda_functions/granules_to_es/granules_index_mapping.py +++ b/cumulus_lambda_functions/granules_to_es/granules_index_mapping.py @@ -9,6 +9,9 @@ class GranulesIndexMapping: "daac_data_version": { "type": "keyword" }, + "daac_provider": { + "type": "keyword" + }, "daac_role_arn": { "type": "keyword" }, diff --git a/cumulus_lambda_functions/lib/uds_db/archive_index.py b/cumulus_lambda_functions/lib/uds_db/archive_index.py index a25a9d31..f9ddb1a5 100644 --- a/cumulus_lambda_functions/lib/uds_db/archive_index.py +++ b/cumulus_lambda_functions/lib/uds_db/archive_index.py @@ -15,10 +15,11 @@ class UdsArchiveConfigIndex: basic_schema = { 'type': 'object', "additionalProperties": False, - 'required': ['daac_collection_id', 'daac_sns_topic_arn', 'daac_data_version', 'daac_role_arn', 'daac_role_session_name', + 'required': ['daac_collection_id', 'daac_sns_topic_arn', 'daac_provider', 'daac_data_version', 'daac_role_arn', 'daac_role_session_name', 'collection', 'ss_username', 'archiving_types'], 'properties': { 'daac_collection_id': {'type': 'string'}, + 'daac_provider': {'type': 'string'}, 'daac_sns_topic_arn': {'type': 'string'}, 'daac_data_version': {'type': 'string'}, 'daac_role_arn': {'type': 'string'}, @@ -31,11 +32,12 @@ class UdsArchiveConfigIndex: db_record_schema = { 'type': 'object', - 'required': ['daac_collection_name', 'daac_sns_topic_arn', 'daac_data_version', 'daac_role_arn', + 'required': ['daac_collection_name', 'daac_sns_topic_arn', 'daac_provider', 'daac_data_version', 'daac_role_arn', 'daac_role_session_name', 'collection', 'ss_username', 'archiving_types'], 'properties': { 'daac_collection_name': {'type': 'string'}, + 'daac_provider': {'type': 'string'}, 'daac_sns_topic_arn': {'type': 'string'}, 'daac_data_version': {'type': 'string'}, 'daac_role_arn': {'type': 'string'}, diff --git a/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py b/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py index 347e2e98..269e5177 100644 --- a/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py +++ b/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py @@ -17,6 +17,7 @@ class ArchivingTypesModel(BaseModel): class DaacUpdateModel(BaseModel): daac_collection_id: str + daac_provider: Optional[str] = None daac_data_version: Optional[str] = None daac_sns_topic_arn: Optional[str] = None daac_role_arn: Optional[str] = None @@ -26,6 +27,7 @@ class DaacUpdateModel(BaseModel): class DaacAddModel(BaseModel): daac_collection_id: str + daac_provider: str daac_data_version: str daac_sns_topic_arn: str daac_role_arn: str From ecb43ee3d750ef62328ba5e9d3f3b85ec6a93abc Mon Sep 17 00:00:00 2001 From: Wai Phyo Date: Mon, 2 Jun 2025 10:48:54 -0700 Subject: [PATCH 2/3] fix: make daac_provider optional --- cumulus_lambda_functions/lib/uds_db/archive_index.py | 4 ++-- cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cumulus_lambda_functions/lib/uds_db/archive_index.py b/cumulus_lambda_functions/lib/uds_db/archive_index.py index f9ddb1a5..fcf74f9d 100644 --- a/cumulus_lambda_functions/lib/uds_db/archive_index.py +++ b/cumulus_lambda_functions/lib/uds_db/archive_index.py @@ -15,7 +15,7 @@ class UdsArchiveConfigIndex: basic_schema = { 'type': 'object', "additionalProperties": False, - 'required': ['daac_collection_id', 'daac_sns_topic_arn', 'daac_provider', 'daac_data_version', 'daac_role_arn', 'daac_role_session_name', + 'required': ['daac_collection_id', 'daac_sns_topic_arn', 'daac_data_version', 'daac_role_arn', 'daac_role_session_name', 'collection', 'ss_username', 'archiving_types'], 'properties': { 'daac_collection_id': {'type': 'string'}, @@ -32,7 +32,7 @@ class UdsArchiveConfigIndex: db_record_schema = { 'type': 'object', - 'required': ['daac_collection_name', 'daac_sns_topic_arn', 'daac_provider', 'daac_data_version', 'daac_role_arn', + 'required': ['daac_collection_name', 'daac_sns_topic_arn', 'daac_data_version', 'daac_role_arn', 'daac_role_session_name', 'collection', 'ss_username', 'archiving_types'], 'properties': { diff --git a/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py b/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py index 269e5177..b5f54412 100644 --- a/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py +++ b/cumulus_lambda_functions/uds_api/dapa/daac_archive_crud.py @@ -27,7 +27,7 @@ class DaacUpdateModel(BaseModel): class DaacAddModel(BaseModel): daac_collection_id: str - daac_provider: str + daac_provider: Optional[str] = None daac_data_version: str daac_sns_topic_arn: str daac_role_arn: str @@ -106,7 +106,7 @@ def add_new_config(self): } ingesting_dict = { - **self.__request_body, + **{k: v for k, v in self.__request_body.items() if v is not None}, 'ss_username': self.__authorization_info['username'], 'collection': self.__collection_id, } From a7460e6e6fc419812547e985a288c6da2e118b1c Mon Sep 17 00:00:00 2001 From: Wai Phyo Date: Mon, 2 Jun 2025 11:42:11 -0700 Subject: [PATCH 3/3] fix; fallback to tenant if provider is missing --- cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py b/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py index e41a97c3..fbb910d7 100644 --- a/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py +++ b/cumulus_lambda_functions/daac_archiver/daac_archiver_logic.py @@ -117,7 +117,7 @@ def send_to_daac_internal(self, uds_cnm_json: dict): }, "identifier": uds_cnm_json['identifier'], "submissionTime": f'{TimeUtils.get_current_time()}Z', - "provider": daac_config['daac_provider'], + "provider": daac_config['daac_provider'] if 'daac_provider' in daac_config else granule_identifier.tenant, "version": "1.6.0", # TODO this is hardcoded? "product": { "name": granule_identifier.granule,