From 517ed8e8cc978b9990bc5d82a988a10025cd7fe1 Mon Sep 17 00:00:00 2001 From: Yatsevich Valerya Date: Sat, 31 Jan 2026 16:40:19 +0300 Subject: [PATCH 1/2] add cancel_job method for dataproc cluster --- yandexcloud/_wrappers/dataproc/__init__.py | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/yandexcloud/_wrappers/dataproc/__init__.py b/yandexcloud/_wrappers/dataproc/__init__.py index d72ef26b..7062ca3b 100644 --- a/yandexcloud/_wrappers/dataproc/__init__.py +++ b/yandexcloud/_wrappers/dataproc/__init__.py @@ -797,3 +797,38 @@ def create_pyspark_job( response_type=job_pb.Job, meta_type=job_service_pb.CreateJobMetadata, ) + + def cancel_job( + self, + cluster_id=None, + job_id=None, + ): + """ + Cancel Job in Yandex.Cloud Data Proc cluster. + + :param cluster_id: ID of the cluster to run job in. + Will try to take the ID from Dataproc Hook object if it specified. + :type cluster_id: str + :param job_id: ID the job. + :type name: str + + """ + cluster_id = cluster_id or self.cluster_id + if not cluster_id: + raise RuntimeError("Cluster id must be specified.") + + if not job_id: + raise RuntimeError("Job id must be specified.") + + self.log.info("Cancelling job. Cluster ID: %s, Job ID: %s", cluster_id, job_id) + request = job_service_pb.CancelJobRequest( + cluster_id=cluster_id, + job_id=job_id, + ) + return self.sdk.create_operation_and_get_result( + request, + service=job_service_grpc_pb.JobServiceStub, + method_name="Cancel", + response_type=job_pb.Job, + meta_type=job_service_pb.CreateJobMetadata, + ) From 4c1b65067cc952c05dd23a4027e94d4eef3eaf7b Mon Sep 17 00:00:00 2001 From: Yatsevich Valerya Date: Sat, 31 Jan 2026 17:15:22 +0300 Subject: [PATCH 2/2] fix description --- yandexcloud/_wrappers/dataproc/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yandexcloud/_wrappers/dataproc/__init__.py b/yandexcloud/_wrappers/dataproc/__init__.py index 7062ca3b..57d09577 100644 --- a/yandexcloud/_wrappers/dataproc/__init__.py +++ b/yandexcloud/_wrappers/dataproc/__init__.py @@ -810,7 +810,7 @@ def cancel_job( Will try to take the ID from Dataproc Hook object if it specified. :type cluster_id: str :param job_id: ID the job. - :type name: str + :type job_id: str """ cluster_id = cluster_id or self.cluster_id