From 8a6ab74265e57d483e101ae38f9524bfbe7f83f9 Mon Sep 17 00:00:00 2001 From: Keshav Mohta <68001229+keshavmohta09@users.noreply.github.com> Date: Wed, 12 Mar 2025 17:24:52 +0530 Subject: [PATCH] Fixes #20007 - DBT Cloud Ingestion Fail (#20162) --- .../ingestion/ometa/mixins/lineage_mixin.py | 14 +++++------ .../metadata/ingestion/sink/metadata_rest.py | 7 ++++++ .../ui/src/generated/entity/data/pipeline.ts | 24 +++++++++++++++++++ .../ui/src/locale/languages/de-de.json | 4 +--- 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py b/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py index 5adc2c18296..17c5fb379ec 100644 --- a/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py +++ b/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py @@ -171,13 +171,9 @@ class OMetaLineageMixin(Generic[T]): except APIError as err: logger.debug(traceback.format_exc()) - logger.error( - "Error %s trying to PUT lineage for %s: %s", - err.status_code, - data.model_dump_json(), - str(err), - ) - raise err + error = f"Error {err.status_code} trying to PUT lineage for {data.model_dump_json()}: {str(err)}" + logger.error(error) + return {"error": error} from_entity_lineage = self.get_lineage_by_id( data.edge.fromEntity.type, str(data.edge.fromEntity.id.root) @@ -397,6 +393,10 @@ class OMetaLineageMixin(Generic[T]): resp = self.add_lineage( lineage_request.right, check_patch=check_patch ) + if resp.get("error"): + logger.error(resp["error"]) + continue + entity_name = resp.get("entity", {}).get("name") for node in resp.get("nodes", []): logger.info( diff --git a/ingestion/src/metadata/ingestion/sink/metadata_rest.py b/ingestion/src/metadata/ingestion/sink/metadata_rest.py index 6fc020067bf..0b8e04c2bb0 100644 --- a/ingestion/src/metadata/ingestion/sink/metadata_rest.py +++ b/ingestion/src/metadata/ingestion/sink/metadata_rest.py @@ -251,6 +251,13 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods @_run_dispatch.register def write_lineage(self, add_lineage: AddLineageRequest) -> Either[Dict[str, Any]]: created_lineage = self.metadata.add_lineage(add_lineage, check_patch=True) + if created_lineage.get("error"): + return Either( + left=StackTraceError( + name="AddLineageRequestError", error=created_lineage["error"] + ) + ) + return Either(right=created_lineage["entity"]["fullyQualifiedName"]) @_run_dispatch.register diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts index 6f2c7439594..b8a27a73d71 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts @@ -258,6 +258,7 @@ export interface Style { * Description of the change. */ export interface ChangeDescription { + changeSummary?: { [key: string]: ChangeSummary }; /** * Names of fields added during the version changes. */ @@ -276,6 +277,29 @@ export interface ChangeDescription { previousVersion?: number; } +export interface ChangeSummary { + changedAt?: number; + /** + * Name of the user or bot who made this change + */ + changedBy?: string; + changeSource?: ChangeSource; + [property: string]: any; +} + +/** + * The source of the change. This will change based on the context of the change (example: + * manual vs programmatic) + */ +export enum ChangeSource { + Automated = "Automated", + Derived = "Derived", + Ingested = "Ingested", + Manual = "Manual", + Propagated = "Propagated", + Suggested = "Suggested", +} + export interface FieldChange { /** * Name of the entity field that changed. diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json index d6540417725..3c3c170cbea 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json @@ -501,8 +501,6 @@ "execution-time": "Ausführungszeit", "exit-fit-to-screen": "Vollbild verlassen", "exit-full-screen": "Vollbildmodus beenden", - "exit-version-history": "Exit Version History", - "expand": "Expand", "exit-version-history": "Versionshistorie verlassen", "expand": "Erweitern", "expand-all": "Alles erweitern", @@ -1182,8 +1180,8 @@ "show": "Anzeigen", "show-deleted": "Gelöschte anzeigen", "show-deleted-entity": "{{entity}} anzeigen", - "show-less-lowercase": "Weniger anzeigen", "show-less": "Weniger anzeigen", + "show-less-lowercase": "Weniger anzeigen", "show-log-plural": "Logs anzeigen", "show-more": "Mehr anzeigen", "show-more-entity": "Mehr {{entity}} anzeigen",