From 87845b76c094360c16021db3c05f5214611ef0b1 Mon Sep 17 00:00:00 2001 From: Serhii Dimchenko Date: Tue, 5 Sep 2023 15:39:49 +0200 Subject: [PATCH] Fixed linters --- dbt/adapters/athena/lakeformation.py | 27 ++++++++++++++------------- tests/unit/test_lakeformation.py | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/dbt/adapters/athena/lakeformation.py b/dbt/adapters/athena/lakeformation.py index 061fe87e..9fc8047b 100644 --- a/dbt/adapters/athena/lakeformation.py +++ b/dbt/adapters/athena/lakeformation.py @@ -35,11 +35,12 @@ def __init__(self, lf_client: LakeFormationClient, relation: AthenaRelation, lf_ self.lf_tags_columns = lf_tags_config.tags_columns def process_lf_tags_database(self) -> None: - database_resource = {"Database": {"Name": self.database}} - response = self.lf_client.add_lf_tags_to_resource( - Resource=database_resource, LFTags=[{"TagKey": k, "TagValues": [v]} for k, v in self.lf_tags.items()] - ) - logger.debug(self._parse_lf_response(response, None, self.lf_tags)) + if self.lf_tags: + database_resource = {"Database": {"Name": self.database}} + response = self.lf_client.add_lf_tags_to_resource( + Resource=database_resource, LFTags=[{"TagKey": k, "TagValues": [v]} for k, v in self.lf_tags.items()] + ) + self._parse_and_log_lf_response(response, None, self.lf_tags) def process_lf_tags(self) -> None: table_resource = {"Table": {"DatabaseName": self.database, "Name": self.table}} @@ -72,7 +73,7 @@ def _remove_lf_tags_columns(self, existing_lf_tags: GetResourceLFTagsResponseTyp response = self.lf_client.remove_lf_tags_from_resource( Resource=resource, LFTags=[{"TagKey": tag_key, "TagValues": [tag_value]}] ) - logger.debug(self._parse_lf_response(response, columns, {tag_key: tag_value}, "remove")) + self._parse_and_log_lf_response(response, columns, {tag_key: tag_value}, "remove") def _apply_lf_tags_table( self, table_resource: ResourceTypeDef, existing_lf_tags: GetResourceLFTagsResponseTypeDef @@ -91,13 +92,13 @@ def _apply_lf_tags_table( response = self.lf_client.remove_lf_tags_from_resource( Resource=table_resource, LFTags=[{"TagKey": k, "TagValues": v} for k, v in to_remove.items()] ) - logger.debug(self._parse_lf_response(response, None, self.lf_tags, "remove")) + self._parse_and_log_lf_response(response, None, self.lf_tags, "remove") if self.lf_tags: response = self.lf_client.add_lf_tags_to_resource( Resource=table_resource, LFTags=[{"TagKey": k, "TagValues": [v]} for k, v in self.lf_tags.items()] ) - logger.debug(self._parse_lf_response(response, None, self.lf_tags)) + self._parse_and_log_lf_response(response, None, self.lf_tags) def _apply_lf_tags_columns(self) -> None: if self.lf_tags_columns: @@ -110,15 +111,15 @@ def _apply_lf_tags_columns(self) -> None: Resource=resource, LFTags=[{"TagKey": tag_key, "TagValues": [tag_value]}], ) - logger.debug(self._parse_lf_response(response, columns, {tag_key: tag_value})) + self._parse_and_log_lf_response(response, columns, {tag_key: tag_value}) - def _parse_lf_response( + def _parse_and_log_lf_response( self, response: Union[AddLFTagsToResourceResponseTypeDef, RemoveLFTagsFromResourceResponseTypeDef], columns: Optional[List[str]] = None, lf_tags: Optional[Dict[str, str]] = None, - verb: str = "add" - ) -> str: + verb: str = "add", + ) -> None: table_appendix = f".{self.table}" if self.table else "" columns_appendix = f" for columns {columns}" if columns else "" resource_msg = self.database + table_appendix + columns_appendix @@ -129,7 +130,7 @@ def _parse_lf_response( error = failure.get("Error", {}).get("ErrorMessage") logger.error(f"Failed to {verb} {tag} for " + resource_msg + f" - {error}") raise DbtRuntimeError(base_msg) - return f"Success: {verb} LF tags {lf_tags} to " + resource_msg + logger.debug(f"Success: {verb} LF tags {lf_tags} to " + resource_msg) class FilterConfig(BaseModel): diff --git a/tests/unit/test_lakeformation.py b/tests/unit/test_lakeformation.py index d5025e2b..356fdf88 100644 --- a/tests/unit/test_lakeformation.py +++ b/tests/unit/test_lakeformation.py @@ -59,4 +59,4 @@ def test__parse_lf_response(self, response, columns, lf_tags, verb, expected): relation = AthenaRelation.create(database=DATA_CATALOG_NAME, schema=DATABASE_NAME, identifier="tbl_name") lf_client = boto3.client("lakeformation", region_name=AWS_REGION) manager = LfTagsManager(lf_client, relation, LfTagsConfig()) - assert manager._parse_lf_response(response, columns, lf_tags, verb) == expected + assert manager._parse_and_log_lf_response(response, columns, lf_tags, verb) == expected