condor_dag_checker
Process provided DAG file(s) for syntactical and logical issues.
Synopsis
condor_dag_checker [-help]
condor_dag_checker [OPTIONS] DAG_File [DAG_File …]
condor_dag_checker [-AllowIllegalChars] [-UseDagDir] [-[No]JoinNodes] [-json | -Statistics] [-CheckExternalFiles] [-CheckJDL] [-CheckScripts] [-CheckSubDags] [-Strict]
Description
Process provided DAG file(s) for any issues that would prevent the creation and execution of a DAG. Issues include, but are not limited to, incorrect DAG command syntax, referencing undefined nodes, and cyclic dependencies.
Options
- -AllowIllegalChars
Allow use of illegal characters in node names.
- -CheckExternalFiles
Process external submit and Sub-DAG files if they exist.
- -CheckJDL
Best effort process node submit descriptions similar to condor_submit -dry-run
- -CheckScripts
Check that node scripts exist.
- -CheckSubDags
Best effort process Sub-DAG files.
- -[No]JoinNodes
Enable/Disable use of join nodes in produced DAG. Enabled by default.
- -json
Print results into JSON format.
- -Statistics
Print statistics about the parsed DAG.
- -Strict
Require external files checked to exists during processing or be considered an error.
- -UseDagDir
Switch into the DAG file’s directory prior to parsing.
General Remarks
This tool by default does not check any external files that are used by the DAG (i.e. scripts, submit files, Sub-DAGs) because these can be dynamically generated during DAGMan’s lifetime. Using -CheckExternalFiles will enable this tool to also process Sub-DAGs and submit files (akin to condor_submit -dry-run). This is best effort and only process the external files if they exist. Use -Strict to report an error if these external files do not exist.
This tool will process files specified by the INCLUDE and SPLICE commands.
Exit Status
0 - Success (No issues detected in DAG files(s))
1 - Failure (Issue detected with DAG file(s))
2 - Tool execution failure
Examples
Example checking DAG file diamond.dag for issues:
$ condor_dag_checker diamond.dag
Example getting statistics about DAG file diamond.dag:
$ condor_dag_checker -statistics diamond.dag
Example getting JSON formatted information about DAG file diamond.dag:
$ condor_dag_checker -json diamond.dag
Example checking multiple DAG files for issues:
$ condor_dag_checker first.dag second.dag third.dag
Example use DAG file directories during processing:
$ condor_dag_checker -usedagdir subdir1/simple.dag subdir2/simple.dag
Example comparing DAG file with and without join nodes:
$ condor_dag_checker -stat -JoinNodes sample.dag
$ condor_dag_checker -stat -NoJoinNodes sample.dag
Example processing Sub-DAGs best effort:
$ condor_dag_checker -CheckSubDags russian-nested.dag
Example processing node submit descriptions best effort:
$ condor_dag_checker -CheckJDL sample.dag
Example verifying all node scripts exist:
$ condor_dag_checker -CheckScripts sample.dag
Example checking all external files for existence and validity:
$ condor_dag_checker -CheckExternalFiles -strict sample.dag
See Also
None
Availability
Linux, MacOS, Windows
Introduced in v24.10.1 of HTCondor