File tree Expand file tree Collapse file tree 2 files changed +27
-1
lines changed
dask_kubernetes/operator/controller Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -492,7 +492,11 @@ async def retire_workers(
492492 namespace = namespace ,
493493 label_selector = {"dask.org/workergroup-name" : worker_group_name },
494494 )
495- return [w .name for w in workers [:- n_workers ]]
495+ return retire_workers_lifo (workers , n_workers )
496+
497+
498+ def retire_workers_lifo (workers , n_workers : int ) -> list [str ]:
499+ return [w .name for w in workers [- n_workers :]]
496500
497501
498502async def check_scheduler_idle (
Original file line number Diff line number Diff line change 2727from dask_kubernetes .operator .controller import (
2828 KUBERNETES_DATETIME_FORMAT ,
2929 get_job_runner_pod_name ,
30+ retire_workers_lifo ,
3031)
3132
3233if TYPE_CHECKING :
@@ -877,3 +878,24 @@ async def test_create_cluster_validates_name(
877878 async with gen_cluster (cluster_name = cluster_name ) as (_ , ns ):
878879 actual_status = await _get_cluster_status (k8s_cluster , ns , cluster_name )
879880 assert expected_status == actual_status
881+
882+
883+ @pytest .mark .anyio
884+ async def test_retire_workers_lifo ():
885+ class Worker :
886+ def __init__ (self , name ):
887+ self .name = name
888+
889+ workers = [
890+ Worker (name = "worker-1" ),
891+ Worker (name = "worker-2" ),
892+ Worker (name = "worker-3" ),
893+ Worker (name = "worker-4" ),
894+ Worker (name = "worker-5" ),
895+ ]
896+
897+ retired_workers = retire_workers_lifo (workers , 2 )
898+
899+ # Verify we got back exactly 2 workers and they are the last ones
900+ assert len (retired_workers ) == 2
901+ assert retired_workers == ["worker-4" , "worker-5" ]
You can’t perform that action at this time.
0 commit comments