From 99ca01c4d91d3a987bad4b4a67f8822d01abdbf8 Mon Sep 17 00:00:00 2001 From: mo Date: Sat, 27 Jun 2026 12:29:44 +0200 Subject: [PATCH] chore(openmetadata): add inventory probe; full-stack ingestion verified (177 tables, +Kafka/S3/Superset) --- deploy/openmetadata/om_inventory.py | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 deploy/openmetadata/om_inventory.py diff --git a/deploy/openmetadata/om_inventory.py b/deploy/openmetadata/om_inventory.py new file mode 100644 index 0000000..2027984 --- /dev/null +++ b/deploy/openmetadata/om_inventory.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +"""Report what OpenMetadata currently knows vs nothing — services, dbs, schemas, tables.""" +import om_api as o + +st, d = o.login("admin@open-metadata.org", "admin") +tok = d["accessToken"] + + +def g(p): + return o.req("GET", p, token=tok)[1] + + +print("=== DATABASE SERVICES ===") +s = g("/api/v1/services/databaseServices?limit=100") +for sv in s.get("data", []): + name = sv["name"] + # tables under this service + t = g("/api/v1/tables?limit=1&service=" + name) + print(" %-22s type=%-12s tables=%s" % (name, sv.get("serviceType"), t.get("paging", {}).get("total"))) +print(" total services:", s.get("paging", {}).get("total")) + +print() +for kind in ("messagingServices", "pipelineServices", "storageServices", + "dashboardServices", "mlmodelServices", "searchServices", "apiServices"): + s = g("/api/v1/services/" + kind + "?limit=100") + names = [sv["name"] for sv in s.get("data", [])] + print("%-20s total=%s %s" % (kind, s.get("paging", {}).get("total"), names)) + +print() +print("=== DATABASES / SCHEMAS per service ===") +s = g("/api/v1/services/databaseServices?limit=100") +for sv in s.get("data", []): + name = sv["name"] + dbs = g("/api/v1/databases?service=" + name + "&limit=100") + for db in dbs.get("data", []): + dbfqn = db["fullyQualifiedName"] + sch = g("/api/v1/databaseSchemas?database=" + dbfqn + "&limit=100") + schnames = [x["name"] for x in sch.get("data", [])] + print(" %s.%s schemas=%s" % (name, db["name"], schnames)) + +print() +print("=== TABLES total:", g("/api/v1/tables?limit=1").get("paging", {}).get("total"))