Skip to content

Commit 16597b1

Browse files
committed
Fix #27079: [BUG] S3 Ingestion Failure: Pydantic ValidationError 'ext… (#27180)
* Fix #27079: [BUG] S3 Ingestion Failure: Pydantic ValidationError 'extra_forbidden' for BucketArn in S3BucketResponse * Address comments
1 parent 2ac973f commit 16597b1

4 files changed

Lines changed: 23 additions & 18 deletions

File tree

ingestion/src/metadata/ingestion/source/mlmodel/sagemaker/metadata.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import traceback
1414
from typing import Iterable, List, Optional
1515

16-
from pydantic import BaseModel, ConfigDict, Field, ValidationError
16+
from pydantic import BaseModel, Field, ValidationError
1717

1818
from metadata.generated.schema.api.data.createMlModel import CreateMlModelRequest
1919
from metadata.generated.schema.entity.data.mlmodel import (
@@ -53,10 +53,6 @@
5353

5454

5555
class SageMakerModel(BaseModel):
56-
model_config = ConfigDict(
57-
extra="forbid",
58-
)
59-
6056
name: str = Field(..., description="Model name", title="Model Name")
6157
arn: str = Field(..., description="Model ARN in AWS account", title="Model ARN")
6258
creation_timestamp: str = Field(

ingestion/src/metadata/ingestion/source/storage/gcs/models.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from datetime import datetime
1515
from typing import List, Optional
1616

17-
from pydantic import BaseModel, Extra, Field
17+
from pydantic import BaseModel, ConfigDict, Field
1818

1919
from metadata.generated.schema.entity.data.container import (
2020
ContainerDataModel,
@@ -29,9 +29,6 @@ class GCSBucketResponse(BaseModel):
2929
Class modelling a response received from gcs_client.list_buckets operation
3030
"""
3131

32-
class Config:
33-
extra = Extra.forbid
34-
3532
name: str = Field(..., description="Bucket name")
3633
project_id: str = Field(..., description="Project ID")
3734
creation_date: Optional[datetime] = Field(
@@ -45,8 +42,9 @@ class GCSContainerDetails(BaseModel):
4542
Class mapping container details used to create the container requests
4643
"""
4744

48-
class Config:
49-
extra = Extra.forbid
45+
model_config = ConfigDict(
46+
extra="forbid",
47+
)
5048

5149
name: str = Field(..., description="Bucket name")
5250
prefix: str = Field(..., description="Prefix for the container")

ingestion/src/metadata/ingestion/source/storage/s3/models.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ class S3BucketResponse(BaseModel):
2929
Class modelling a response received from s3_client.list_buckets operation
3030
"""
3131

32-
model_config = ConfigDict(
33-
extra="forbid",
34-
)
35-
3632
name: str = Field(..., description="Bucket name", alias="Name")
3733
creation_date: Optional[datetime] = Field(
3834
None,

ingestion/tests/unit/topology/storage/test_s3_storage.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,24 @@
8383
}
8484
MOCK_S3_BUCKETS_RESPONSE = {
8585
"Buckets": [
86-
{"Name": "test_transactions", "CreationDate": datetime.datetime(2000, 1, 1)},
87-
{"Name": "test_sales", "CreationDate": datetime.datetime(2000, 2, 2)},
88-
{"Name": "events", "CreationDate": datetime.datetime(2000, 3, 3)},
86+
{
87+
"Name": "test_transactions",
88+
"CreationDate": datetime.datetime(2000, 1, 1),
89+
"BucketArn": "arn:aws:s3:::test_transactions",
90+
"BucketRegion": "us-east-1",
91+
},
92+
{
93+
"Name": "test_sales",
94+
"CreationDate": datetime.datetime(2000, 2, 2),
95+
"BucketArn": "arn:aws:s3:::test_sales",
96+
"BucketRegion": "us-east-1",
97+
},
98+
{
99+
"Name": "events",
100+
"CreationDate": datetime.datetime(2000, 3, 3),
101+
"BucketArn": "arn:aws:s3:::events",
102+
"BucketRegion": "us-east-1",
103+
},
89104
]
90105
}
91106
MOCK_S3_METADATA_FILE_RESPONSE = {

0 commit comments

Comments
 (0)