in ansible/roles/slurm/files/scripts/conf.py [0:0]
def conflines(cloud_parameters, lkp: util.Lookup) -> str:
scripts_dir = lkp.cfg.install_dir or dirs.scripts
no_comma_params = cloud_parameters.no_comma_params or False
any_gpus = any(
lkp.template_info(nodeset.instance_template).gpu_count > 0
for nodeset in lkp.cfg.nodeset.values()
)
any_tpu = any(
tpu_nodeset is not None
for part in lkp.cfg.partitions.values()
for tpu_nodeset in part.partition_nodeset_tpu
)
any_dynamic = any(bool(p.partition_feature) for p in lkp.cfg.partitions.values())
comma_params = {
"PrivateData": [
"cloud",
],
"LaunchParameters": [
"enable_nss_slurm",
"use_interactive_step",
],
"SlurmctldParameters": [
"cloud_reg_addrs" if any_dynamic or any_tpu else "cloud_dns",
"enable_configless",
"idle_on_node_suspend",
],
"SchedulerParameters": [
"bf_continue",
"salloc_wait_nodes",
"ignore_prefer_validation",
],
"GresTypes": [
"gpu" if any_gpus else None,
],
}
prolog_path = Path(dirs.custom_scripts / "prolog.d")
epilog_path = Path(dirs.custom_scripts / "epilog.d")
default_tree_width = 65533 if any_dynamic else None
conf_options = {
**(comma_params if not no_comma_params else {}),
"Prolog": f"{prolog_path}/*" if lkp.cfg.prolog_scripts else None,
"Epilog": f"{epilog_path}/*" if lkp.cfg.epilog_scripts else None,
"SuspendProgram": f"{scripts_dir}/suspend.py",
"ResumeProgram": f"{scripts_dir}/resume.py",
"ResumeFailProgram": f"{scripts_dir}/suspend.py",
"ResumeRate": cloud_parameters.get("resume_rate", 0),
"ResumeTimeout": cloud_parameters.get("resume_timeout", 300),
"SuspendRate": cloud_parameters.get("suspend_rate", 0),
"SuspendTimeout": cloud_parameters.get("suspend_timeout", 300),
"TreeWidth": cloud_parameters.get("tree_width", default_tree_width),
"JobSubmitPlugins": "lua" if any_tpu else None,
"TopologyPlugin": cloud_parameters.get("topology_plugin", "topology/tree"),
}
return dict_to_conf(conf_options, delim="\n")