@@ -263,3 +263,53 @@ def test_sequence_steps_from_job_task_with_new_cluster(
263
263
required_step_ids = [1 ],
264
264
),
265
265
]
266
+
267
+
268
+ def test_sequence_steps_from_job_task_with_non_existing_cluster (
269
+ ws , simple_dependency_resolver , mock_path_lookup , admin_locator
270
+ ) -> None :
271
+ """Sequence a job with a task that references a non-existing cluster.
272
+
273
+ Sequence:
274
+ 1. Cluster # TODO: Do we still expect this reference?
275
+ 2. Task
276
+ 3. Job
277
+ """
278
+ ws .clusters .get .side_effect = ResourceDoesNotExist ("Unknown cluster" )
279
+ task = jobs .Task (task_key = "test-task" , existing_cluster_id = "non-existing-id" )
280
+ settings = jobs .JobSettings (name = "test-job" , tasks = [task ])
281
+ job = jobs .Job (job_id = 1234 , settings = settings )
282
+ sequencer = MigrationSequencer (ws , admin_locator )
283
+ sequencer .register_job (job )
284
+
285
+ steps = list (sequencer .generate_steps ())
286
+
287
+ assert steps == [
288
+ MigrationStep (
289
+ step_id = 2 ,
290
+ step_number = 0 ,
291
+ object_type = "CLUSTER" ,
292
+ object_id = "non-existing-id" ,
293
+ object_name = "non-existing-id" ,
294
+ object_owner = "John Doe" ,
295
+ required_step_ids = [],
296
+ ),
297
+ MigrationStep (
298
+ step_id = 1 ,
299
+ step_number = 0 ,
300
+ object_type = "TASK" ,
301
+ object_id = "1234/test-task" ,
302
+ object_name = "test-task" ,
303
+ object_owner = "John Doe" ,
304
+ required_step_ids = [2 ],
305
+ ),
306
+ MigrationStep (
307
+ step_id = 0 ,
308
+ step_number = 1 ,
309
+ object_type = "JOB" ,
310
+ object_id = "1234" ,
311
+ object_name = "test-job" ,
312
+ object_owner = "John Doe" ,
313
+ required_step_ids = [1 ],
314
+ ),
315
+ ]
0 commit comments