mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-23 12:31:54 +00:00
chore(sqs): clean up code (#8366)
This commit is contained in:
@@ -51,7 +51,7 @@ class SQS(AWSService):
|
||||
def _get_queue_attributes(self):
|
||||
try:
|
||||
logger.info("SQS - describing queue attributes...")
|
||||
valid_queues = []
|
||||
non_existing_queues = []
|
||||
for queue in self.queues:
|
||||
try:
|
||||
regional_client = self.regional_clients[queue.region]
|
||||
@@ -73,7 +73,6 @@ class SQS(AWSService):
|
||||
== "true"
|
||||
):
|
||||
queue.kms_key_id = "SqsManagedSseEnabled"
|
||||
valid_queues.append(queue)
|
||||
except ClientError as error:
|
||||
if (
|
||||
error.response["Error"]["Code"]
|
||||
@@ -82,17 +81,16 @@ class SQS(AWSService):
|
||||
logger.warning(
|
||||
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
)
|
||||
non_existing_queues.append(queue)
|
||||
else:
|
||||
logger.error(
|
||||
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
)
|
||||
valid_queues.append(queue)
|
||||
except Exception as error:
|
||||
logger.error(
|
||||
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
)
|
||||
valid_queues.append(queue)
|
||||
self.queues = valid_queues
|
||||
self.queues = [q for q in self.queues if q not in non_existing_queues]
|
||||
except Exception as error:
|
||||
logger.error(
|
||||
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
||||
|
||||
@@ -4,6 +4,7 @@ from uuid import uuid4
|
||||
|
||||
import botocore
|
||||
from boto3 import client
|
||||
from botocore.exceptions import ClientError
|
||||
from moto import mock_aws
|
||||
|
||||
from prowler.providers.aws.services.sqs.sqs_service import SQS
|
||||
@@ -114,3 +115,42 @@ class Test_SQS_Service:
|
||||
assert sqs.queues[0].region == AWS_REGION_EU_WEST_1
|
||||
assert sqs.queues[0].policy
|
||||
assert sqs.queues[0].kms_key_id == test_key
|
||||
|
||||
@mock_aws
|
||||
def test_get_queue_attributes_nonexistent_queue(self):
|
||||
aws_provider = set_mocked_aws_provider([AWS_REGION_EU_WEST_1])
|
||||
sqs_service = SQS(aws_provider)
|
||||
|
||||
queue_url = f"https://sqs.{AWS_REGION_EU_WEST_1}.amazonaws.com/{AWS_ACCOUNT_NUMBER}/{test_queue}"
|
||||
sqs_service.queues = [
|
||||
type(
|
||||
"Queue",
|
||||
(),
|
||||
{
|
||||
"id": queue_url,
|
||||
"name": test_queue,
|
||||
"arn": test_queue_arn,
|
||||
"region": AWS_REGION_EU_WEST_1,
|
||||
},
|
||||
)()
|
||||
]
|
||||
|
||||
def mock_get_queue_attributes(**kwargs):
|
||||
raise ClientError(
|
||||
{
|
||||
"Error": {
|
||||
"Code": "AWS.SimpleQueueService.NonExistentQueue",
|
||||
"Message": "The specified queue does not exist.",
|
||||
}
|
||||
},
|
||||
"GetQueueAttributes",
|
||||
)
|
||||
|
||||
with patch.object(
|
||||
sqs_service.regional_clients[AWS_REGION_EU_WEST_1],
|
||||
"get_queue_attributes",
|
||||
side_effect=mock_get_queue_attributes,
|
||||
):
|
||||
sqs_service._get_queue_attributes()
|
||||
|
||||
assert sqs_service.queues == []
|
||||
|
||||
Reference in New Issue
Block a user