mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-14 00:57:09 +00:00
* Fix #6248: Use PUT API instead of POST for tag & tagCategory * Restructure yield_tag topology * Renamed method to create_or_update
This commit is contained in:
parent
53930a9253
commit
9adaec1b3a
@ -75,7 +75,7 @@ class OMetaTagMixin:
|
|||||||
path = f"{category_name}"
|
path = f"{category_name}"
|
||||||
return self._get(entity=entity, path=path, fields=fields)
|
return self._get(entity=entity, path=path, fields=fields)
|
||||||
|
|
||||||
def update_tag_category(
|
def create_or_update_tag_category(
|
||||||
self, category_name: str, tag_category_body: CreateTagCategoryRequest
|
self, category_name: str, tag_category_body: CreateTagCategoryRequest
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Method to update a tag category
|
"""Method to update a tag category
|
||||||
@ -117,7 +117,7 @@ class OMetaTagMixin:
|
|||||||
path = f"{category_name}/{primary_tag_fqn}"
|
path = f"{category_name}/{primary_tag_fqn}"
|
||||||
return self._get(entity=entity, path=path, fields=fields)
|
return self._get(entity=entity, path=path, fields=fields)
|
||||||
|
|
||||||
def update_primary_tag(
|
def create_or_update_primary_tag(
|
||||||
self,
|
self,
|
||||||
category_name: str,
|
category_name: str,
|
||||||
primary_tag_fqn: str,
|
primary_tag_fqn: str,
|
||||||
|
|||||||
@ -40,6 +40,7 @@ from metadata.generated.schema.entity.data.topic import Topic
|
|||||||
from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
|
from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
|
||||||
OpenMetadataConnection,
|
OpenMetadataConnection,
|
||||||
)
|
)
|
||||||
|
from metadata.generated.schema.entity.tags.tagCategory import Tag
|
||||||
from metadata.generated.schema.entity.teams.role import Role
|
from metadata.generated.schema.entity.teams.role import Role
|
||||||
from metadata.generated.schema.entity.teams.team import Team
|
from metadata.generated.schema.entity.teams.team import Team
|
||||||
from metadata.generated.schema.type.entityReference import EntityReference
|
from metadata.generated.schema.type.entityReference import EntityReference
|
||||||
@ -56,6 +57,7 @@ from metadata.ingestion.ometa.client import APIError
|
|||||||
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
||||||
from metadata.ingestion.source.dashboard.dashboard_service import DashboardUsage
|
from metadata.ingestion.source.dashboard.dashboard_service import DashboardUsage
|
||||||
from metadata.ingestion.source.database.database_service import DataModelLink
|
from metadata.ingestion.source.database.database_service import DataModelLink
|
||||||
|
from metadata.utils import fqn
|
||||||
from metadata.utils.logger import ingestion_logger
|
from metadata.utils.logger import ingestion_logger
|
||||||
from metadata.utils.sql_lineage import (
|
from metadata.utils.sql_lineage import (
|
||||||
_create_lineage_by_table_name,
|
_create_lineage_by_table_name,
|
||||||
@ -461,14 +463,23 @@ class MetadataRestSink(Sink[Entity]):
|
|||||||
|
|
||||||
def write_tag_category(self, record: OMetaTagAndCategory):
|
def write_tag_category(self, record: OMetaTagAndCategory):
|
||||||
try:
|
try:
|
||||||
self.metadata.create_tag_category(tag_category_body=record.category_name)
|
self.metadata.create_or_update_tag_category(
|
||||||
|
tag_category_body=record.category_name,
|
||||||
|
category_name=record.category_name.name.__root__,
|
||||||
|
)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.debug(traceback.format_exc())
|
logger.debug(traceback.format_exc())
|
||||||
logger.error(err)
|
logger.error(err)
|
||||||
try:
|
try:
|
||||||
self.metadata.create_primary_tag(
|
self.metadata.create_or_update_primary_tag(
|
||||||
category_name=record.category_name.name.__root__,
|
category_name=record.category_name.name.__root__,
|
||||||
primary_tag_body=record.category_details,
|
primary_tag_body=record.category_details,
|
||||||
|
primary_tag_fqn=fqn.build(
|
||||||
|
metadata=self.metadata,
|
||||||
|
entity_type=Tag,
|
||||||
|
tag_category_name=record.category_name.name.__root__,
|
||||||
|
tag_name=record.category_details.name.__root__,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.debug(traceback.format_exc())
|
logger.debug(traceback.format_exc())
|
||||||
|
|||||||
@ -123,8 +123,6 @@ class BigquerySource(CommonDbSourceService):
|
|||||||
:param _:
|
:param _:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
if not self.source_config.includeTags:
|
|
||||||
return
|
|
||||||
taxonomies = PolicyTagManagerClient().list_taxonomies(
|
taxonomies = PolicyTagManagerClient().list_taxonomies(
|
||||||
parent=f"projects/{self.project_id}/locations/{self.service_connection.taxonomyLocation}"
|
parent=f"projects/{self.project_id}/locations/{self.service_connection.taxonomyLocation}"
|
||||||
)
|
)
|
||||||
|
|||||||
@ -125,7 +125,7 @@ class DatabaseServiceTopology(ServiceTopology):
|
|||||||
NodeStage(
|
NodeStage(
|
||||||
type_=OMetaTagAndCategory,
|
type_=OMetaTagAndCategory,
|
||||||
context="tags",
|
context="tags",
|
||||||
processor="yield_tag",
|
processor="yield_tag_details",
|
||||||
ack_sink=False,
|
ack_sink=False,
|
||||||
nullable=True,
|
nullable=True,
|
||||||
cache_all=True,
|
cache_all=True,
|
||||||
@ -265,6 +265,13 @@ class DatabaseServiceSource(DBTMixin, TopologyRunnerMixin, Source, ABC):
|
|||||||
From topology. To be run for each schema
|
From topology. To be run for each schema
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def yield_tag_details(self, schema_name: str) -> Iterable[OMetaTagAndCategory]:
|
||||||
|
"""
|
||||||
|
From topology. To be run for each schema
|
||||||
|
"""
|
||||||
|
if self.source_config.includeTags:
|
||||||
|
yield from self.yield_tag(schema_name) or []
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def yield_view_lineage(
|
def yield_view_lineage(
|
||||||
self, table_name_and_type: Tuple[str, TableType]
|
self, table_name_and_type: Tuple[str, TableType]
|
||||||
|
|||||||
@ -126,7 +126,7 @@ class OMetaTagMixinPut(TestCase):
|
|||||||
categoryType="Descriptive", description="test tag", name=f"{rand_name}"
|
categoryType="Descriptive", description="test tag", name=f"{rand_name}"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.metadata.update_tag_category(CATEGORY_NAME, updated_tag_category)
|
self.metadata.create_or_update_tag_category(CATEGORY_NAME, updated_tag_category)
|
||||||
|
|
||||||
assert True
|
assert True
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ class OMetaTagMixinPut(TestCase):
|
|||||||
description="test tag", name=f"{rand_name}"
|
description="test tag", name=f"{rand_name}"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.metadata.update_primary_tag(
|
self.metadata.create_or_update_primary_tag(
|
||||||
CATEGORY_NAME, PRIMARY_TAG_NAME, updated_primary_tag
|
CATEGORY_NAME, PRIMARY_TAG_NAME, updated_primary_tag
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user