feat(aisearch): use Check_Report_Azure constructor properly in AISearch checks (#6506)

This commit is contained in:
Rubén De la Torre Vico
2025-01-14 18:37:01 +01:00
committed by GitHub
parent 1c4426ea4b
commit c056d39775
4 changed files with 13 additions and 9 deletions
@@ -1,6 +1,5 @@
from dataclasses import dataclass
from azure.mgmt.search import SearchManagementClient
from pydantic import BaseModel
from prowler.lib.logger import logger
from prowler.providers.azure.azure_provider import AzureProvider
@@ -23,6 +22,7 @@ class AISearch(AzureService):
aisearch_services[subscription].update(
{
aisearch_service.id: AISearchService(
id=aisearch_service.id,
name=aisearch_service.name,
location=aisearch_service.location,
public_network_access=(
@@ -41,8 +41,8 @@ class AISearch(AzureService):
return aisearch_services
@dataclass
class AISearchService:
class AISearchService(BaseModel):
id: str
name: str
location: str
public_network_access: bool
@@ -12,12 +12,11 @@ class aisearch_service_not_publicly_accessible(Check):
subscription_name,
aisearch_services,
) in aisearch_client.aisearch_services.items():
for aisearch_service_id, aisearch_service in aisearch_services.items():
report = Check_Report_Azure(self.metadata())
for aisearch_service in aisearch_services.values():
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=aisearch_service
)
report.subscription = subscription_name
report.resource_name = aisearch_service.name
report.resource_id = aisearch_service_id
report.location = aisearch_service.location
report.status = "FAIL"
report.status_extended = f"AISearch Service {aisearch_service.name} from subscription {subscription_name} allows public access."
@@ -35,6 +35,7 @@ class Test_AISearch_service_not_publicly_accessible:
aisearch_client.aisearch_services = {
AZURE_SUBSCRIPTION_ID: {
aisearch_service_id: AISearchService(
id=aisearch_service_id,
name=aisearch_service_name,
location="westeurope",
public_network_access=True,
@@ -61,6 +62,7 @@ class Test_AISearch_service_not_publicly_accessible:
result[0].status_extended
== f"AISearch Service {aisearch_service_name} from subscription {AZURE_SUBSCRIPTION_ID} allows public access."
)
assert result[0].resource_id == aisearch_service_id
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
assert result[0].resource_name == aisearch_service_name
assert result[0].location == "westeurope"
@@ -72,6 +74,7 @@ class Test_AISearch_service_not_publicly_accessible:
aisearch_client.aisearch_services = {
AZURE_SUBSCRIPTION_ID: {
aisearch_service_id: AISearchService(
id=aisearch_service_id,
name=aisearch_service_name,
location="westeurope",
public_network_access=False,
@@ -98,6 +101,7 @@ class Test_AISearch_service_not_publicly_accessible:
result[0].status_extended
== f"AISearch Service {aisearch_service_name} from subscription {AZURE_SUBSCRIPTION_ID} does not allows public access."
)
assert result[0].resource_id == aisearch_service_id
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
assert result[0].resource_name == aisearch_service_name
assert result[0].resource_id == aisearch_service_id
@@ -14,6 +14,7 @@ def mock_storage_get_aisearch_services(_):
return {
AZURE_SUBSCRIPTION_ID: {
"aisearch_service_id-1": AISearchService(
id="aisearch_service_id-1",
name="name",
location="westeurope",
public_network_access=True,