From 725115c951371dc1cb93cc695811a01506926e90 Mon Sep 17 00:00:00 2001 From: gitstart Date: Thu, 7 Jul 2022 12:04:00 +0000 Subject: [PATCH 1/2] Refactor and fix AWS secret manager invalid exception Co-authored-by: gitstart-airflow Co-authored-by: gitstart Co-authored-by: Vannes Wijaya <42536665+vanneswijaya@users.noreply.github.com> Co-authored-by: Ekene Izukanne --- .../amazon/aws/secrets/secrets_manager.py | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/airflow/providers/amazon/aws/secrets/secrets_manager.py b/airflow/providers/amazon/aws/secrets/secrets_manager.py index 0ee73bc330fed..d706c8238f7ac 100644 --- a/airflow/providers/amazon/aws/secrets/secrets_manager.py +++ b/airflow/providers/amazon/aws/secrets/secrets_manager.py @@ -245,6 +245,7 @@ def _get_secret(self, path_prefix, secret_id: str) -> Optional[str]: :param path_prefix: Prefix for the Path to get Secret :param secret_id: Secret Key """ + error_msg = "An error occurred when calling the get_secret_value operation" if path_prefix: secrets_path = self.build_path(path_prefix, secret_id, self.sep) else: @@ -257,15 +258,32 @@ def _get_secret(self, path_prefix, secret_id: str) -> Optional[str]: return response.get('SecretString') except self.client.exceptions.ResourceNotFoundException: self.log.debug( - "An error occurred (ResourceNotFoundException) when calling the " - "get_secret_value operation: " + f"ResourceNotFoundException: {error_msg}: " "Secret %s not found.", secret_id, ) return None - except self.client.exceptions.AccessDeniedException: + except self.client.exceptions.InvalidParameterException: self.log.debug( - "An error occurred (AccessDeniedException) when calling the get_secret_value operation", + f"InvalidParameterException: {error_msg}", + exc_info=True, + ) + return None + except self.client.exceptions.InvalidRequestException: + self.log.debug( + f"InvalidRequestException: {error_msg}", + exc_info=True, + ) + return None + except self.client.exceptions.DecryptionFailure: + self.log.debug( + f"DecryptionFailure: {error_msg}", + exc_info=True, + ) + return None + except self.client.exceptions.InternalServiceError: + self.log.debug( + f"InternalServiceError: {error_msg}", exc_info=True, ) return None From e0a41a75fbf84f0c561c5ce1bdca2ec9c43dec4d Mon Sep 17 00:00:00 2001 From: gitstart-airflow Date: Fri, 8 Jul 2022 11:20:44 +0000 Subject: [PATCH 2/2] use printf-style string format in logging Co-authored-by: gitstart-airflow Co-authored-by: gitstart-bot Co-authored-by: Ekene Izukanne Co-authored-by: Vannes Wijaya <42536665+vanneswijaya@users.noreply.github.com> --- .../amazon/aws/secrets/secrets_manager.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/airflow/providers/amazon/aws/secrets/secrets_manager.py b/airflow/providers/amazon/aws/secrets/secrets_manager.py index d706c8238f7ac..047772ea1d96b 100644 --- a/airflow/providers/amazon/aws/secrets/secrets_manager.py +++ b/airflow/providers/amazon/aws/secrets/secrets_manager.py @@ -258,32 +258,36 @@ def _get_secret(self, path_prefix, secret_id: str) -> Optional[str]: return response.get('SecretString') except self.client.exceptions.ResourceNotFoundException: self.log.debug( - f"ResourceNotFoundException: {error_msg}: " - "Secret %s not found.", + "ResourceNotFoundException: %s. Secret %s not found.", + error_msg, secret_id, ) return None except self.client.exceptions.InvalidParameterException: self.log.debug( - f"InvalidParameterException: {error_msg}", + "InvalidParameterException: %s", + error_msg, exc_info=True, ) return None except self.client.exceptions.InvalidRequestException: self.log.debug( - f"InvalidRequestException: {error_msg}", + "InvalidRequestException: %s", + error_msg, exc_info=True, ) return None except self.client.exceptions.DecryptionFailure: self.log.debug( - f"DecryptionFailure: {error_msg}", + "DecryptionFailure: %s", + error_msg, exc_info=True, ) return None except self.client.exceptions.InternalServiceError: self.log.debug( - f"InternalServiceError: {error_msg}", + "InternalServiceError: %s", + error_msg, exc_info=True, ) return None