Skip to content

Commit 59d35ce

Browse files
committed
dataproc start/stop operations
1 parent 0b76570 commit 59d35ce

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

yandexcloud/_wrappers/dataproc/__init__.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,43 @@ def delete_cluster(self, cluster_id=None):
474474
meta_type=cluster_service_pb.DeleteClusterMetadata,
475475
)
476476

477+
def stop_cluster(self, cluster_id=None, decommission_timeout=0):
478+
"""
479+
Stop Yandex.Cloud Data Proc cluster.
480+
:param cluster_id: ID of the cluster to stop.
481+
:type cluster_id: str
482+
:param decommission_timeout: Timeout to gracefully decommission nodes during downscaling. In seconds.
483+
:type decommission_timeout: int
484+
"""
485+
cluster_id = cluster_id or self.cluster_id
486+
if not cluster_id:
487+
raise RuntimeError("Cluster id must be specified.")
488+
489+
request = cluster_service_pb.StopClusterRequest(cluster_id=cluster_id, decommission_timeout=decommission_timeout)
490+
return self.sdk.create_operation_and_get_result(
491+
request,
492+
service=cluster_service_grpc_pb.ClusterServiceStub,
493+
method_name="Stop",
494+
meta_type=cluster_service_pb.StopClusterMetadata,
495+
)
496+
497+
def start_cluster(self, cluster_id=None):
498+
"""
499+
Start Yandex.Cloud Data Proc cluster.
500+
:param cluster_id: ID of the cluster to start.
501+
:type cluster_id: str
502+
"""
503+
cluster_id = cluster_id or self.cluster_id
504+
if not cluster_id:
505+
raise RuntimeError("Cluster id must be specified.")
506+
request = cluster_service_pb.StartClusterRequest(cluster_id=cluster_id)
507+
return self.sdk.create_operation_and_get_result(
508+
request,
509+
service=cluster_service_grpc_pb.ClusterServiceStub,
510+
method_name="Start",
511+
meta_type=cluster_service_pb.StartClusterMetadata,
512+
)
513+
477514
def create_hive_job(
478515
self,
479516
query=None,

0 commit comments

Comments
 (0)