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

43 lines
1.2 KiB
Python

import logging
import os
from urllib.parse import quote
import requests
log = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
gms_server = os.getenv("DATAHUB_GMS_URL", "http://localhost:8080")
token = os.getenv("DATAHUB_GMS_TOKEN")
business_attribute_urn = "urn:li:businessAttribute:customer_id"
url = f"{gms_server}/entities/{quote(business_attribute_urn, safe='')}"
headers = {}
if token:
headers["Authorization"] = f"Bearer {token}"
response = requests.get(url, headers=headers)
if response.status_code == 200:
entity = response.json()
log.info(f"Business Attribute: {business_attribute_urn}")
log.info(f"Response: {entity}")
aspects = entity.get("aspects", {})
if "businessAttributeInfo" in aspects:
info = aspects["businessAttributeInfo"]["value"]
log.info(f"Name: {info.get('name')}")
log.info(f"Description: {info.get('description')}")
log.info(f"Type: {info.get('type')}")
if "ownership" in aspects:
ownership = aspects["ownership"]["value"]
owners = ownership.get("owners", [])
log.info(f"Owners: {[owner['owner'] for owner in owners]}")
else:
log.error(
f"Failed to fetch business attribute: {response.status_code} - {response.text}"
)