@@ -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
0 commit comments