Skip to content

Commit 6ebd37b

Browse files
Add some tests for owner-config and enhance this feat
1 parent 8a7d7e8 commit 6ebd37b

18 files changed

+557
-437
lines changed

ingestion/src/metadata/ingestion/source/database/common_db_source.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,14 @@ def yield_database(
225225
tags=self.get_database_tag_labels(database_name=database_name),
226226
owners=self.get_database_owner_ref(database_name),
227227
)
228+
# Store database owner in context for schema/table inheritance
229+
database_owner_ref = self.get_database_owner_ref(database_name)
230+
if database_owner_ref and database_owner_ref.root:
231+
database_owner_name = database_owner_ref.root[0].name
232+
self.context.get().upsert("database_owner", database_owner_name)
233+
else:
234+
# Clear context to avoid residual owner from previous database
235+
self.context.get().upsert("database_owner", None)
228236

229237
yield Either(right=database_request)
230238
self.register_record_database_request(database_request=database_request)
@@ -281,6 +289,14 @@ def yield_database_schema(
281289
tags=self.get_schema_tag_labels(schema_name=schema_name),
282290
owners=self.get_schema_owner_ref(schema_name),
283291
)
292+
# Store schema owner in context for table inheritance
293+
schema_owner_ref = self.get_schema_owner_ref(schema_name)
294+
if schema_owner_ref and schema_owner_ref.root:
295+
schema_owner_name = schema_owner_ref.root[0].name
296+
self.context.get().upsert("schema_owner", schema_owner_name)
297+
else:
298+
# Clear schema_owner if not present, tables will inherit from database_owner
299+
self.context.get().upsert("schema_owner", None)
284300

285301
yield Either(right=schema_request)
286302
self.register_record_schema_request(schema_request=schema_request)

ingestion/src/metadata/ingestion/source/database/database_service.py

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -633,12 +633,8 @@ def get_schema_owner_ref(self, schema_name: str) -> Optional[EntityReferenceList
633633
EntityReferenceList with owner or None
634634
"""
635635
try:
636-
parent_owner = None
637-
database_entity = getattr(self.context.get(), "database_entity", None)
638-
if database_entity:
639-
db_owners = database_entity.owners
640-
if db_owners and db_owners.root:
641-
parent_owner = db_owners.root[0].name
636+
# Read database_owner directly from context
637+
parent_owner = getattr(self.context.get(), "database_owner", None)
642638

643639
schema_fqn = f"{self.context.get().database}.{schema_name}"
644640

@@ -678,14 +674,10 @@ def get_owner_ref(self, table_name: str) -> Optional[EntityReferenceList]:
678674
EntityReferenceList with owner or None
679675
"""
680676
try:
681-
parent_owner = None
682-
database_schema_entity = getattr(
683-
self.context.get(), "database_schema_entity", None
684-
)
685-
if database_schema_entity:
686-
schema_owners = database_schema_entity.owners
687-
if schema_owners and schema_owners.root:
688-
parent_owner = schema_owners.root[0].name
677+
# Prioritize schema_owner, fallback to database_owner for inheritance
678+
parent_owner = getattr(self.context.get(), "schema_owner", None)
679+
if not parent_owner:
680+
parent_owner = getattr(self.context.get(), "database_owner", None)
689681

690682
table_fqn = f"{self.context.get().database}.{self.context.get().database_schema}.{table_name}"
691683

ingestion/tests/integration/owner_config_tests/QUICK-START.md

Lines changed: 0 additions & 288 deletions
This file was deleted.

0 commit comments

Comments
 (0)