datahub/metadata-ingestion/examples/library/glossary_node_add_owner.py

43 lines
1.1 KiB
Python

import logging
from datahub.emitter.mcp import MetadataChangeProposalWrapper
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.metadata._urns.urn_defs import CorpUserUrn, GlossaryNodeUrn
from datahub.metadata.schema_classes import (
OwnerClass,
OwnershipClass,
OwnershipTypeClass,
)
log = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
# Create a glossary node URN
node_urn = GlossaryNodeUrn("Finance")
# Define the owner
owner_urn = CorpUserUrn("jdoe")
# Create ownership aspect
# This makes jdoe a TECHNICAL_OWNER of the Finance glossary node
ownership = OwnershipClass(
owners=[
OwnerClass(
owner=str(owner_urn),
type=OwnershipTypeClass.TECHNICAL_OWNER,
)
]
)
# Create the metadata change proposal
event = MetadataChangeProposalWrapper(
entityUrn=str(node_urn),
aspect=ownership,
)
# Emit to DataHub
rest_emitter = DatahubRestEmitter(gms_server="http://localhost:8080")
rest_emitter.emit(event)
log.info(f"Added owner {owner_urn} to glossary node {node_urn}")