mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-14 00:57:09 +00:00
parent
8d739563f2
commit
4eadcfdc5d
@ -16,7 +16,7 @@ To be used by OpenMetadata class
|
|||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from typing import Optional, Type
|
from typing import Optional, Type
|
||||||
|
|
||||||
from metadata.generated.schema.entity.teams.team import Team
|
from metadata.generated.schema.entity.teams.team import Team, TeamType
|
||||||
from metadata.generated.schema.entity.teams.user import User
|
from metadata.generated.schema.entity.teams.user import User
|
||||||
from metadata.generated.schema.type.entityReference import EntityReference
|
from metadata.generated.schema.type.entityReference import EntityReference
|
||||||
from metadata.ingestion.api.common import T
|
from metadata.ingestion.api.common import T
|
||||||
@ -153,6 +153,7 @@ class OMetaUserMixin:
|
|||||||
from_count: int = 0,
|
from_count: int = 0,
|
||||||
size: int = 1,
|
size: int = 1,
|
||||||
fields: Optional[list] = None,
|
fields: Optional[list] = None,
|
||||||
|
is_owner: bool = False,
|
||||||
) -> Optional[EntityReference]:
|
) -> Optional[EntityReference]:
|
||||||
"""
|
"""
|
||||||
Get a User or Team Entity Reference by searching by its name
|
Get a User or Team Entity Reference by searching by its name
|
||||||
@ -172,6 +173,9 @@ class OMetaUserMixin:
|
|||||||
entity=Team, name=name, from_count=from_count, size=size, fields=fields
|
entity=Team, name=name, from_count=from_count, size=size, fields=fields
|
||||||
)
|
)
|
||||||
if maybe_team:
|
if maybe_team:
|
||||||
|
# if is_owner is True, we only want to return the team if it is a group
|
||||||
|
if is_owner and maybe_team.teamType != TeamType.Group:
|
||||||
|
return None
|
||||||
return EntityReference(
|
return EntityReference(
|
||||||
id=maybe_team.id.root,
|
id=maybe_team.id.root,
|
||||||
type=ENTITY_REFERENCE_TYPE_MAP[Team.__name__],
|
type=ENTITY_REFERENCE_TYPE_MAP[Team.__name__],
|
||||||
|
|||||||
@ -540,7 +540,9 @@ class DatabaseServiceSource(
|
|||||||
table_name=table_name,
|
table_name=table_name,
|
||||||
schema=self.context.get().database_schema,
|
schema=self.context.get().database_schema,
|
||||||
)
|
)
|
||||||
owner_ref = self.metadata.get_reference_by_name(name=owner_name)
|
owner_ref = self.metadata.get_reference_by_name(
|
||||||
|
name=owner_name, is_owner=True
|
||||||
|
)
|
||||||
return owner_ref
|
return owner_ref
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
logger.debug(traceback.format_exc())
|
logger.debug(traceback.format_exc())
|
||||||
|
|||||||
@ -151,7 +151,9 @@ class DbtSource(DbtServiceSource):
|
|||||||
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:
|
||||||
owner = self.metadata.get_reference_by_name(name=dbt_owner)
|
owner = self.metadata.get_reference_by_name(
|
||||||
|
name=dbt_owner, is_owner=True
|
||||||
|
)
|
||||||
if not owner:
|
if not owner:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Unable to ingest owner from DBT since no user or"
|
"Unable to ingest owner from DBT since no user or"
|
||||||
|
|||||||
@ -223,7 +223,7 @@ class OracleSource(StoredProcedureMixin, CommonDbSourceService):
|
|||||||
code=stored_procedure.definition,
|
code=stored_procedure.definition,
|
||||||
),
|
),
|
||||||
owner=self.metadata.get_reference_by_name(
|
owner=self.metadata.get_reference_by_name(
|
||||||
name=stored_procedure.owner.lower()
|
name=stored_procedure.owner.lower(), is_owner=True
|
||||||
),
|
),
|
||||||
databaseSchema=fqn.build(
|
databaseSchema=fqn.build(
|
||||||
metadata=self.metadata,
|
metadata=self.metadata,
|
||||||
|
|||||||
@ -411,7 +411,7 @@ class AirflowSource(PipelineServiceSource):
|
|||||||
until the next run.
|
until the next run.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
return self.metadata.get_reference_by_name(name=owner)
|
return self.metadata.get_reference_by_name(name=owner, is_owner=True)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
logger.warning(f"Error while getting details of user {owner} - {exc}")
|
logger.warning(f"Error while getting details of user {owner} - {exc}")
|
||||||
return None
|
return None
|
||||||
|
|||||||
@ -184,3 +184,8 @@ class OMetaUserTest(TestCase):
|
|||||||
self.team.id,
|
self.team.id,
|
||||||
self.metadata.get_reference_by_name(name="OPS Team").id,
|
self.metadata.get_reference_by_name(name="OPS Team").id,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# if team is not group, return none
|
||||||
|
self.assertIsNone(
|
||||||
|
self.metadata.get_reference_by_name(name="Organization", is_owner=True)
|
||||||
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user