Skip to content

Commit ef974ca

Browse files
committed
Instance pool fix for handing driver_instance_pool_id
This PR is to support the optional driver_instance_pool_id attribute that can be present with cluster pool specs.
1 parent 3de69f9 commit ef974ca

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

dbclient/ClustersClient.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def __init__(self, configs, checkpoint_service):
3131
'autotermination_minutes',
3232
'enable_elastic_disk',
3333
'instance_pool_id',
34+
'driver_instance_pool_id',
3435
'policy_id',
3536
'pinned_by_user_name',
3637
'creator_user_name',
@@ -58,7 +59,30 @@ def cleanup_cluster_pool_configs(self, cluster_json, cluster_creator, is_job_clu
5859
cluster_json.pop('enable_elastic_disk', None)
5960
# map old pool ids to new pool ids
6061
old_pool_id = cluster_json['instance_pool_id']
61-
cluster_json['instance_pool_id'] = pool_id_dict.get[old_pool_id]
62+
new_pool_id = pool_id_dict.get(old_pool_id)
63+
64+
if old_pool_id and new_pool_id:
65+
cluster_json['instance_pool_id'] = new_pool_id
66+
else:
67+
logging.warning(
68+
f"Instance pool mapped to src/dest :{old_pool_id}/{new_pool_id} is not available." +
69+
"It may have been deleted; cluster will use defaults.")
70+
cluster_json.pop("instance_pool_id")
71+
72+
old_driver_pool_id = cluster_json.get('driver_instance_pool_id')
73+
# driver_instance_pool_id is optional. if present, try to map new id.
74+
if old_driver_pool_id:
75+
new_driver_pool_id = pool_id_dict.get(old_driver_pool_id)
76+
if new_driver_pool_id:
77+
cluster_json['driver_instance_pool_id'] = new_driver_pool_id
78+
else:
79+
# if new driver pool for respective source driver pool id is not available,
80+
# reset to default configs.
81+
logging.warning(
82+
f"Driver Instance pool mapped to src/dest :{old_driver_pool_id}/{new_driver_pool_id}" +
83+
"is not available.It may have been deleted; cluster will use defaults.")
84+
cluster_json.pop("instance_pool_id")
85+
cluster_json.pop("driver_instance_pool_id")
6286

6387
if not is_job_cluster:
6488
# add custom tag for original cluster creator for cost tracking

migration_pipeline.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def add_dir_diff_task(name, dir_path, config, suffix=None, parents=None):
257257
# ClustersExportTask
258258
add_diff_task("validate-clusters", "clusters.log", DiffConfig(
259259
primary_key="cluster_name",
260-
ignored_keys=["cluster_id", "policy_id", "instance_pool_id", "spark_version"],
260+
ignored_keys=["cluster_id", "policy_id", "instance_pool_id", "driver_instance_pool_id", "spark_version"],
261261
children={
262262
"aws_attributes": DiffConfig(
263263
ignored_keys=["zone_id"]

0 commit comments

Comments
 (0)