mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-23 20:42:02 +00:00
feat(aisearch): use Check_Report_Azure constructor properly in AISearch checks (#6506)
This commit is contained in:
committed by
GitHub
parent
1c4426ea4b
commit
c056d39775
@@ -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
|
||||
|
||||
+4
-5
@@ -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."
|
||||
|
||||
|
||||
+4
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user