@@ -331,8 +331,8 @@ def _validate_init_finalize_job(self) -> MutableValidationResult:
331
331
validation_result .append_error (yaml_path = "jobs" , message = "No other job except for on_init/on_finalize job." )
332
332
333
333
def _is_isolated_job (_validate_job_name : str ) -> bool :
334
- # no input to validate job
335
334
_validate_job = self .jobs [_validate_job_name ]
335
+ # no input to validate job
336
336
for _input_name in _validate_job .inputs :
337
337
if not hasattr (_validate_job .inputs [_input_name ]._data , "_data_binding" ):
338
338
continue
@@ -349,19 +349,29 @@ def _is_isolated_job(_validate_job_name: str) -> bool:
349
349
return False
350
350
return True
351
351
352
+ def _is_control_flow_node (_validate_job_name : str ) -> bool :
353
+ from azure .ai .ml .entities ._builders .control_flow_node import ControlFlowNode
354
+
355
+ _validate_job = self .jobs [_validate_job_name ]
356
+ return issubclass (type (_validate_job ), ControlFlowNode )
357
+
352
358
# validate on_init
353
359
if on_init is not None :
354
360
if on_init not in self .jobs :
355
361
append_on_init_error (f"On_init job name { on_init } not exists in jobs." )
356
362
else :
357
- if not _is_isolated_job (on_init ):
363
+ if _is_control_flow_node (on_init ):
364
+ append_on_init_error ("On_init job should not be a control flow node." )
365
+ elif not _is_isolated_job (on_init ):
358
366
append_on_init_error ("On_init job should not have connection to other execution node." )
359
367
# validate on_finalize
360
368
if on_finalize is not None :
361
369
if on_finalize not in self .jobs :
362
370
append_on_finalize_error (f"On_finalize job name { on_finalize } not exists in jobs." )
363
371
else :
364
- if not _is_isolated_job (on_finalize ):
372
+ if _is_control_flow_node (on_finalize ):
373
+ append_on_finalize_error ("On_finalize job should not be a control flow node." )
374
+ elif not _is_isolated_job (on_finalize ):
365
375
append_on_finalize_error ("On_finalize job should not have connection to other execution node." )
366
376
return validation_result
367
377
0 commit comments