mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-28 10:25:20 +00:00
Fix: dbt multi owner support from manifest (#21233)
This commit is contained in:
parent
9ec424a3fa
commit
5a3d40f643
@ -150,29 +150,37 @@ class DbtSource(DbtServiceSource):
|
|||||||
Returns dbt owner
|
Returns dbt owner
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
owner = None
|
owner_ref = None
|
||||||
dbt_owner = None
|
dbt_owner = None
|
||||||
if catalog_node:
|
if catalog_node:
|
||||||
dbt_owner = catalog_node.metadata.owner
|
dbt_owner = catalog_node.metadata.owner
|
||||||
if manifest_node:
|
if manifest_node:
|
||||||
dbt_owner = manifest_node.meta.get(DbtCommonEnum.OWNER.value)
|
dbt_owner = manifest_node.meta.get(DbtCommonEnum.OWNER.value)
|
||||||
if dbt_owner:
|
if dbt_owner and isinstance(dbt_owner, str):
|
||||||
owner = self.metadata.get_reference_by_name(
|
owner_ref = self.metadata.get_reference_by_name(
|
||||||
name=dbt_owner, is_owner=True
|
name=dbt_owner, is_owner=True
|
||||||
|
) or self.metadata.get_reference_by_email(email=dbt_owner)
|
||||||
|
if owner_ref:
|
||||||
|
return owner_ref
|
||||||
|
logger.warning(
|
||||||
|
"Unable to ingest owner from DBT since no user or"
|
||||||
|
f" team was found with name {dbt_owner}"
|
||||||
)
|
)
|
||||||
|
elif dbt_owner and isinstance(dbt_owner, list):
|
||||||
if owner:
|
owner_list = EntityReferenceList(root=[])
|
||||||
return owner
|
for owner_name in dbt_owner:
|
||||||
|
owner_ref = self.metadata.get_reference_by_name(
|
||||||
# If owner is not found, try to find the owner in OMD using email
|
name=owner_name, is_owner=True
|
||||||
owner = self.metadata.get_reference_by_email(email=dbt_owner)
|
) or self.metadata.get_reference_by_email(email=owner_name)
|
||||||
|
if owner_ref:
|
||||||
if not owner:
|
owner_list.root.extend(owner_ref.root)
|
||||||
logger.warning(
|
else:
|
||||||
"Unable to ingest owner from DBT since no user or"
|
logger.warning(
|
||||||
f" team was found with name {dbt_owner}"
|
"Unable to ingest owner from DBT since no user or"
|
||||||
)
|
f" team was found with name {owner_name}"
|
||||||
return owner
|
)
|
||||||
|
if owner_list.root:
|
||||||
|
return owner_list
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
logger.debug(traceback.format_exc())
|
logger.debug(traceback.format_exc())
|
||||||
logger.warning(f"Unable to ingest owner from DBT due to: {exc}")
|
logger.warning(f"Unable to ingest owner from DBT due to: {exc}")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user