From 6e211fc467df102e144b4b2a9c89d5b9c4070992 Mon Sep 17 00:00:00 2001 From: Serhii Shepel Date: Wed, 21 Jun 2023 16:24:40 +0300 Subject: [PATCH] Implemented DLT pipeline update details and list of DLT pipeline events methods. --- databricks_cli/pipelines/api.py | 6 ++++++ databricks_cli/sdk/service.py | 34 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/databricks_cli/pipelines/api.py b/databricks_cli/pipelines/api.py index e6fe720c..0340bde1 100644 --- a/databricks_cli/pipelines/api.py +++ b/databricks_cli/pipelines/api.py @@ -86,6 +86,12 @@ def start_update(self, pipeline_id, full_refresh=None, headers=None): def stop(self, pipeline_id, headers=None): self.client.stop(pipeline_id, headers) + def get_update_details(self, pipeline_id, update_id): + return self.client.get_update_details(pipeline_id, update_id) + + def list_events(self, pipeline_id, query_filter=None): + return self.client.list_events(pipeline_id, query_filter) + def _upload_libraries_and_update_settings(self, settings, settings_dir): settings = copy.deepcopy(settings) lib_objects = LibraryObject.from_json(settings.get('libraries', [])) diff --git a/databricks_cli/sdk/service.py b/databricks_cli/sdk/service.py index 8083e932..853106b2 100755 --- a/databricks_cli/sdk/service.py +++ b/databricks_cli/sdk/service.py @@ -1561,6 +1561,40 @@ def stop(self, pipeline_id=None, headers=None): headers=headers, ) + def get_update_details(self, pipeline_id=None, update_id=None, headers=None): + _data = {} + return self.client.perform_query( + 'GET', + '/pipelines/{pipeline_id}/updates/{update_id}'.format(pipeline_id=pipeline_id, update_id=update_id), + data=_data, + headers=headers, + ) + + def list_events(self, pipeline_id, query_filter=None): + def get_list_events(page_token=None, max_results=None, order_by=None): + _data = {} + if page_token: + _data["page_token"] = page_token + if max_results: + _data["max_results"] = max_results + if order_by: + _data["order_by"] = order_by + if query_filter: + _data["filter"] = query_filter + return self.client.client.perform_query( + 'GET', + '/pipelines/{pipeline_id}/events'.format(pipeline_id=pipeline_id), + data=_data + ) + + response = get_list_events(pipeline_id, query_filter) + events = response.get("statuses", []) + + while "next_page_token" in response: + response = get_list_events(page_token=response["next_page_token"]) + events.extend(response.get("statuses", [])) + return events + class ReposService(object): __git_providers__ = {