From 6e4131fee41c008c46042a13ad691004db66d7c6 Mon Sep 17 00:00:00 2001 From: Sergio Garcia <38561120+sergargar@users.noreply.github.com> Date: Fri, 26 May 2023 17:15:49 +0200 Subject: [PATCH] fix(ecr): handle LifecyclePolicyNotFoundException (#2411) Co-authored-by: Pepe Fagoaga --- .../providers/aws/services/ecr/ecr_service.py | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/prowler/providers/aws/services/ecr/ecr_service.py b/prowler/providers/aws/services/ecr/ecr_service.py index ba15ce8e..39e6596d 100644 --- a/prowler/providers/aws/services/ecr/ecr_service.py +++ b/prowler/providers/aws/services/ecr/ecr_service.py @@ -103,15 +103,27 @@ class ECR: if regional_client.region in self.registries: for repository in self.registries[regional_client.region].repositories: client = self.regional_clients[repository.region] - policy = client.get_lifecycle_policy(repositoryName=repository.name) - if "lifecyclePolicyText" in policy: - repository.lifecycle_policy = policy["lifecyclePolicyText"] + try: + policy = client.get_lifecycle_policy( + repositoryName=repository.name + ) + if "lifecyclePolicyText" in policy: + repository.lifecycle_policy = policy["lifecyclePolicyText"] + except ClientError as error: + if ( + error.response["Error"]["Code"] + == "LifecyclePolicyNotFoundException" + ): + logger.warning( + f"{regional_client.region} --" + f" {error.__class__.__name__}[{error.__traceback__.tb_lineno}]:" + f" {error}" + ) except Exception as error: - if "LifecyclePolicyNotFoundException" not in str(error): - logger.error( - f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" - ) + logger.error( + f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) def __get_image_details__(self, regional_client): logger.info("ECR - Getting images details...")